Разбираемся в тайтлах: кодер – программист – разработчик – инженер

0
1548
views

Перевод статьи Азата Мардана “Programmer vs. Software Engineer vs. Software Developer vs. Coder”.

Кодер, разработчик, инженер, программист

Всем привет! В этом посте я хотел бы разграничить тайтлы, которыми нас называют другие люди, а также и мы сами. В нашей отрасли существует большая путаница с названиями. Люди используют такие словосочетания как «инженер программного обеспечения», «разработчик ПО». Некоторые используют слова «программист» или «кодер». А иногда доходит даже до «ниндзя», «гуру» и «рок-звезда». Поэтому давайте рассмотрим разницу между этими названиями. Конечно, это только мое мнение, но я в этой индустрии уже 15 лет, так что я кое-что знаю.

Программист

Давайте начнем с «программиста». Итак, программист это человек, который занимается программированием. Верно? И обычно мы слышим это слово от тех, кто далек от технологий, кто не принадлежит к миру IT и кто не занимается разработкой программ.

Люди извне чаще всего называют нас программистами. Почему? Потому что они думают, что мы занимаемся лишь программированием. Серьезно? Неужели это все, что мы делаем? Это совершенно не так! В 2018-2019 это очень далеко от истины. Для разработки программ во многих случаях вам даже не нужно программировать. Есть определенные инструменты и фреймворки, так что в программировании нет нужды. Оно составляет лишь небольшую часть нашей работы.

Но когда я разговариваю с людьми из других сфер деятельности, например, с водителями Uber или официантками в ресторане, как мне объяснить им, чем я занимаюсь? Вот кто такой «программист», они знают. Но ни о каких инженерах ПО они не слышали. Они знают, что есть инженеры в сфере производства, архитектуры и строительства. Так что, назовись я инженером, они подумают, что я разрабатываю какие-то штуки на заводе или проектирую здания.

Нет, не стоит представляться разработчиком или инженером людям не из мира айти. Нам приходится тогда добавлять к этим названиям концовку в виде «…программного обеспечения», но и в этом случае нас могут не понять. А вот слово «программист» всем понятно.

Кодер

Теперь давайте поговорим о слове «кодер». Кто такой кодер? Он стоит на ступеньку ниже программиста. Кодеру не обязательно писать программы или конструировать системы программного обеспечения. Кодер пишет код, который может даже не быть программой! Потому что код может быть какой-нибудь тупой разметкой, а не мощным языком программирования. В таблицах Excel есть функции, а это тоже код! Ха-ха.

HTML это тоже код. Подумайте об HTML. Это очень простой язык разметки. В коде HTML есть эти угловые скобки, эти знаки «больше» и «меньше», т. е., HTML-теги, верно? Есть даже такие специальности как HTML-кодер или XML-кодер. Это может быть позиция очень, очень, очень низкого уровня, работая на которой, человек только и делает, что пишет div-ы и span-ы. А это даже не код программы.

Итак, человек, который занимается HTML, берет дизайн и переводит его в HTML.

Есть кодеры. Они могут быть HTML-кодерами или, если они пользуются каким-то другим кодом, – какими-то другими кодерами. Но они не пишут компьютерные программы. Кодеры не думают об интеграции, производительности, кластерах, облаках, готовности 99,999 и пользовательском опыте. Они просто выдают строки и строки статических листингов. Поэтому я и говорю, что это нижний уровень, ведь программирование требует больше навыков и знаний.

Возвращаясь к людям из других отраслей, они как раз могут назвать программиста кодером. Для них эти слова взаимозаменяемые. Аргх. Это потому, что они не знают тех нюансов, которые знаем мы с вами (вы же теперь знаете, верно?).

Разработчик

А теперь давайте по-быстрому разберемся с разработчиком программного обеспечения. Вкратце, разработчик ПО это больше, чем просто программист или кодер. Разработчик должен понимать все циклы разработки программ, а не только реализацию (что порой вообще не требует никакого программирования или написания кода). Реализация это малая часть серьезного программного продукта. Как пишется в книге «The Mythical Man-Month» (в русском переводе – «Мифический человеко-месяц, или Как создаются программные системы»), программирование должно занимать не больше 1/6 всего времени.

Разработчики программ должны собирать требования. Им нужно разговаривать с собственниками. Они проектируют масштабируемость и устойчивость всей системы. Они занимаются документированием, тестированием и поддержкой. Если это веб-приложение, разработчики должны подумать о балансировщиках нагрузки и аварийном восстановлении. А также о том, чтобы браузерная оптимизация была выполнена правильно.

Часто разработку ПО можно разделить на веб-разработку, разработку мобильных приложений, разработку в сфере интернета вещей. Однажды я напишу отдельный пост об этих подвидах разработки. Разработчики программ это лучшие из лучших. Например, если вы посмотрите на Amazon, то повсюду в компании будете встречать название профессии «Разработчик ПО». Они часто используют этот тайтл.

Инженер

Как насчет инженеров ПО? Они, по моему мнению, даже более продвинутые, чем разработчики. Почему? Инженером обычно называют человека, который имеет степень бакалавра или магистра по информатике и который много читает. Вдобавок к теоретическим знаниям (книги и курсы) у них также есть большой опыт. Они много знают и многое могут. Они знают все на очень высоком уровне: лучшие практики, алгоритмы, структуры данных, масштабируемость, языки (не один, а несколько!).

Стоит отметить, что в некоторых компаниях это может быть и не так, потому что названия должностей и рабочих функций в разных компаниях сильно отличаются. У некоторых нет должности «инженер ПО», потому что они используют «разработчик ПО» (Amazon). В других компаниях наоборот, используется «инженер ПО», а не «разрабочтик ПО».

Прочие названия

Наконец, «ниндзя», «гуру», «сенсей», «рок-звезда» и прочие бессмысленные слова не много сообщают о должности или навыках. Это может быть кто-то с опытом выше среднего, кто-то с выдающимися навыками в узкой области (например, рок-звезда в Solidity), или вообще джуниор, но выполняющий за низкую плату много разных функций в маленьком стартапе.

Да, эти слова слишком часто используются именно в стартапах, потому что их основатели хотят, чтобы их детища считали такими же крутыми и классными, как большие компании. Стартапы не могут предложить хорошую зарплату, но они предложат вам должность вице-президента или главного инженера. Выбирайте самую важную должность. Она будет хорошо смотреться в вашем резюме, когда вы будете искать новую работу (а так и будет). Новую работу в более стабильной и крупной компании, чем этот провальный стартап.

Таким образом, названия «инженер» и «разработчик» в большинстве случаев являются взаимозаменяемыми, но «инженер» звучит престижнее и более продвинуто, чем «разработчик». Большинство людей не из этой сферы деятельности поймут, если вы скажете «инженер ПО» или «разработки ПО». Главное, не забывайте добавлять это «ПО». Иначе они подумают, что вы занимаетесь проектированием недвижимости или курятников.



ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here