в чем разница между кодером и программистом
Чем кодер отличается от программиста
Основное отличие сводится к тому, что кодер — это строитель, исполнитель, который реализует заданный план, согласно инструкциям. Программист — это тот, кто способен создавать новое, выходить за рамки задачи для блага проекта в целом. Поговорим подробнее о том, что отличает эти два условных «вида».
Решающий фактор — профессиональная широта мышления
«Кодер — это человек, который пишет код по четко определенным спецификациям и выбранным заранее алгоритмам» — объясняет Екатерина Колесникова, IOS-разработчик студии мобильной разработки Trinity Digital.
Перед программистом стоят более широкие задачи. Написание кода — лишь одна из его возможных компетенций.
«Прежде чем приступить к разработке, нужно подумать над абстрактным решением задачи: если это касается UI, то продумать каждую деталь, если же касается проекта в целом — то хорошенько продумать архитектуру всего (или какого-то отдельного модуля, за который ты отвечаешь) продукта, чтобы в процессе работы и дальнейшей поддержке или модификации не возникало проблем. Программист должен думать гораздо шире своей задачи, но при этом углубляться в неё до той степени, на которой работает над задачей кодер» — говорит Денис Воротников, ведущий веб-программист Mercaux Inc.
Программист создает новое, кодер следует инструкции
В любой отрасли существуют исполнители и авторы идей.
«Исторически между рядовыми сотрудниками всегда существовало разделение функциональных обязанностей: были специалисты, выполняющие рутинные задачи по известным алгоритмам, и были специалисты, работающие без четко поставленного плана — они сами разрабатывали его для новой, ранее неизвестной задачи.
Примерами могут служить техники и инженеры, медсестры и врачи, лаборанты и ученые, подмастерья и мастера… Это же разделение мы видим сейчас и в IT-разработке. Существует ряд простых, понятных, повторяющихся задач, которые можно выполнить по четко поставленному механизму. Этим занимаются кодеры. Им противопоставлены программисты, которые разрабатывают новые алгоритмы в зависимости от поставленной задачи»— объясняет Евгений Потапов, генеральный директор компании ITSumma.
Программист может быть кодером, но не наоборот
Программист, который разрабатывает алгоритм может затем выполнить работу кодера — его непосредственную реализацию. Но он пишет конечные компоненты только в редких случаях.
Такая практика иногда встречается в IT-компаниях, что подтверждают слова Евгения Потапова, Генерального директора ITSumma: «В зависимости от расписания дежурств (или от поставленных задач) сотрудник нашей компании может решать сложные инженерные задачи, связанные с авариями на клиентских проектах, либо может заниматься простой задачей уровня „кодер“, поставленной клиентом».
Екатерина Колесникова из Trinity Digital отмечает, что «чистых» кодеров в наше время практически не осталось и призывает избавиться от предрассудков, связанных с этой градацией: «Я разработчик, но продолжаю считать, что программист отчасти является кодером».
Поэтому нужно различать случаи, когда человек временно выполняет рутинные задачи и когда он просто не способен «прыгнуть выше». А вы способны?
Будьте программистами : профессия «Веб-разработчик».
Основное отличие сводится к тому, что кодер — это строитель, исполнитель, который реализует заданный план, согласно инструкциям. Программист — это тот, кто способен создавать новое, выходить за рамки задачи для блага проекта в целом. Поговорим подробнее о том, что отличает эти два условных «вида».
Решающий фактор — профессиональная широта мышления
«Кодер — это человек, который пишет код по четко определенным спецификациям и выбранным заранее алгоритмам» — объясняет Екатерина Колесникова, IOS-разработчик студии мобильной разработки Trinity Digital.
Перед программистом стоят более широкие задачи. Написание кода — лишь одна из его возможных компетенций.
«Прежде чем приступить к разработке, нужно подумать над абстрактным решением задачи: если это касается UI, то продумать каждую деталь, если же касается проекта в целом — то хорошенько продумать архитектуру всего (или какого-то отдельного модуля, за который ты отвечаешь) продукта, чтобы в процессе работы и дальнейшей поддержке или модификации не возникало проблем. Программист должен думать гораздо шире своей задачи, но при этом углубляться в неё до той степени, на которой работает над задачей кодер» — говорит Денис Воротников, ведущий веб-программист Mercaux Inc.
Программист создает новое, кодер следует инструкции
В любой отрасли существуют исполнители и авторы идей.
«Исторически между рядовыми сотрудниками всегда существовало разделение функциональных обязанностей: были специалисты, выполняющие рутинные задачи по известным алгоритмам, и были специалисты, работающие без четко поставленного плана — они сами разрабатывали его для новой, ранее неизвестной задачи.
Примерами могут служить техники и инженеры, медсестры и врачи, лаборанты и ученые, подмастерья и мастера… Это же разделение мы видим сейчас и в IT-разработке. Существует ряд простых, понятных, повторяющихся задач, которые можно выполнить по четко поставленному механизму. Этим занимаются кодеры. Им противопоставлены программисты, которые разрабатывают новые алгоритмы в зависимости от поставленной задачи»— объясняет Евгений Потапов, генеральный директор компании ITSumma.
Программист может быть кодером, но не наоборот
Программист, который разрабатывает алгоритм может затем выполнить работу кодера — его непосредственную реализацию. Но он пишет конечные компоненты только в редких случаях.
Такая практика иногда встречается в IT-компаниях, что подтверждают слова Евгения Потапова, Генерального директора ITSumma: «В зависимости от расписания дежурств (или от поставленных задач) сотрудник нашей компании может решать сложные инженерные задачи, связанные с авариями на клиентских проектах, либо может заниматься простой задачей уровня „кодер“, поставленной клиентом».
Екатерина Колесникова из Trinity Digital отмечает, что «чистых» кодеров в наше время практически не осталось и призывает избавиться от предрассудков, связанных с этой градацией: «Я разработчик, но продолжаю считать, что программист отчасти является кодером».
Поэтому нужно различать случаи, когда человек временно выполняет рутинные задачи и когда он просто не способен «прыгнуть выше». А вы способны?
Будьте программистами : профессия «Веб-разработчик».
Кодер, программист, разработчик — категории специалистов
Представитель компании Microsoft Анна Кулашова поделилась информацией о количестве дипломированных программистов в России. На начало 2019 года их число достигло четырёхсот тысяч. При этом у многих работников ИТ-сферы нет профильного образования, а значит, в действительности их намного больше.
Ещё в 2015 году на конференции Intel прозвучало заявление, что во всём мире насчитывается около 19 миллионов ИТ-специалистов. Среди них: разработчики и инженеры программного обеспечения, веб-программисты, аналитики, тестировщики, UI/UX-дизайнеры, системные администраторы, эксперты по данным.
Профессия широко распространена, имеет более чем 170-летнюю историю: первым программистом считается Ада Лавлейс, которая написала единственную программу ещё в 1843 году. Несмотря на это, даже у приближённых к профессии людей возникает путаница, когда речь заходит о таких родственных терминах:
Так в чём заключается разница между ними? Чтобы понять отличия, дадим определение каждому специалисту и распределим их по возрастанию умений: кодер, программист, разработчик, инженер.
Кодер
Узкий специалист, выполняющий монотонную, рутинную работу по написанию кода на определённом языке программирования по заданной спецификации. Обычно он не задумывается или не разбирается в фундаментальных принципах программирования. По этой причине выполняет лишь простые действия, например, пишет код с использованием готовых решений.
Осторожно: слово «кодер» в ИТ-среде иногда носит негативный или пренебрежительный окрас!
Программист
Работник с высоким уровнем знаний. Создаёт простой и понятный код. Понимает принципы программирования, поэтому сочетает рутинную работу с творчеством.
Если кодер редко обходится без команды, являясь её частью и выполняя отдельные поручения, то программист способен сделать всю работу самостоятельно. Он может продумывать, разрабатывать алгоритмы и реализовывать их. Таким образом, программист бывает одновременно кодером, но никак не наоборот.
Разработчик
Разработчик — работник широкого профиля, который может выпускать различные программные продукты: сайты и веб-приложения, мобильные или десктопные приложения, бухгалтерские программы, мессенджеры, игры.
Он часто знает больше двух языков программирования, использует разные системы и среды, понимает, как они взаимодействуют. В иерархии стоит выше описанных ранее специалистов. Отличается многозадачностью, может:
Разработчик создаёт продукт от начала до конца и не нуждается в сторонней помощи, хотя иногда делегирует работу кодеру, дизайнеру, тестировщику и другим. Взаимодействует с командой, умеет координировать её.
Инженер
Это разработчик высокой квалификации, который обычно имеет профильное образование, степень магистра или бакалавра. Инженер отлично разбирается в предмете, постоянно совершенствует знания, применяет их на практике. Объект его деятельности выходит за рамки написания программ, больше касаясь производства инструментов и методов разработки приложений.
Разделение на кодеров, программистов, разработчиков, инженеров — условное. Эти термины широко применимы, так что строгой классификации между ними нет. Поэтому, избегая путаницы и недопонимания, специалистов, работающих в ИТ-сфере и занимающихся написанием программного кода, чаще всего называют разработчиками.
Кодеры vs инженеры: как не остаться «кодировщиком» на всю жизнь?
В эпоху популярного тренда «войтивайти» с новой силой вспыхнула дискуссия о том, кто сегодня приходит в индустрию — «кодеры» или инженеры, кто из них на самом деле нужен компаниям и и за кем будущее в профессии. Как не остаться «кодером» на всю жизнь и совершить качественный скачок в инженеры-программисты, рассказали основатели курса cron.is Юрий Петранков, Илья Яскевич и Игорь Куценко.
— В чём разница между «кодером» и инженером-программистом?
— Инженер-программист — это инноватор, который с помощью технологий не только создаёт что-то новое, но и постоянно ищет способы, упрощающие решение однотипных задач. Закончив программировать модуль, он уже думает о том, как его ускорить, сделать оптимальнее, безопаснее и пр. Основатели Google создали поисковик, потому что знали, что смогут «заставить» его работать быстрее и лучше, чем у конкурентов (Yahoo и Lycos).
А вот кодировщик не создаёт ничего, он пользуется готовыми решениями, день за днём выполняя одно и то же. Такие люди тоже приносят пользу, но их бич — невысокая зарплата по сравнению с первыми и отсутствие карьерного роста. Пример такого специалиста — PHP-программист, создающий только интернет-магазины. Это не значит, что PHP — плохой язык (профессионалы создают нём поразительные вещи), просто так сложилось, что это лучший пример кодера, пишущего примерно одинаковый функционал на одном и том же движке.
— Как понять, к какому «классу» разработчиков принадлежишь?
— Каждый человек сам выбирает, что ему ближе. У инженера-программиста нет стандартного графика 8 часов в день, потому что он не знает счёта времени, и ему это нравится.
А вот кодировщику ближе стабильная, неспешная и предсказуемая работа. Алгоритм такой:
Взгляните на следующий код:
Инженер-программист очень настороженно отнесётся к данному коду, так как он изобилует подводными камнями и, с большой долей вероятности, в итоге приведёт к проблемам с дальнейшим развитием продукта.
С точки зрения трёх базовых принципов ООП всё верно: код декомпозирован на объекты.
С точки зрения популярных паттернов проектирования код использует паттерн «одиночка» (singleton).
Но личный опыт, полученный на болезненных ошибках, или целенаправленное изучение шаблонов проектирования GRASP подскажут:
Все эти ошибки очень сильно затрудняют переиспользование данных классов и усложняют отладку.
Чтобы видеть все эти проблемы в коде, вам необходимы определённые фундаментальные знания.
— Что имеется в виду под «фундаментальными знаниями»?
— Прежде чем ответить на этот вопрос, нужно обрисовать сегодняшнюю ситуацию в ИT. Люди из других специальностей стремятся попасть в индустрию, и некоторым это даже удаётся. Но такие «специалисты» спустя годы остаются на том же уровне и с той же зарплатой, с которой начинали. Причина застоя кроется в нежелании изучать информатику.
Для большинства из нас информатика ассоциируется со школой, набором текста в Microsoft Word и рисованием в Paint. Но слово «информатика» переводится на английский язык как Сomputer Science. Именно Computer Science необходимо знать для «качественного скачка» или, другими словами, превращения кодера в инженера-программиста.
В действительности информатика затрагивает очень широкий спектр тем: теорию алгоритмов, структуры данных, архитектуру компьютера, анализ производительности, компьютерную безопасность и криптографию, компьютерные сети, базы данных и многое другое.
Заметьте, что в списке перечисленных дисциплин нет популярных фреймворков ASP.NET MVC, AngularJS, Laravel и других. Все они функционируют, опираясь на фундаментальные основы информатики.
— Что конкретно, по-вашему, нужно знать, чтобы стать хорошим разработчиком?
— В ИT существует два типа знаний: узкоспециализированные (по определённому языку, технологиям или фреймворку) и фундаментальные (по разделам информатики).
Как правило, курсы — это ориентированная на один продукт программа, дающая знания по определённому языку. Вы получаете знания по функционалу какого-то одного фреймворка, но при этом понятия не имеете о том, как он создан, какие механизмы заложены в его основу. А фундаментальные разделы информатики, которые мы преподаём студентам, показывают, как работают фреймворки, базы данных, поисковые алгоритмы, как оценивать и оптимизировать работу программ.
Без знаний фундаментальных разделов информатики построить карьеру в ИТ сложно. Некоторые аспекты этой области освещает университет, но не все студенты стремятся постичь информатику, отмахиваясь, что им это не пригодится.
Зная, что лежит в основе работы языков и систем, вы можете легко «переключаться» с одних технологий и фреймворков на другие.
Фундаментальные знания не устаревают, а время, потраченное на их освоение, даёт дивиденды.
— Почему многие, с вашей точки зрения, пренебрегают этими знаниями?
— Проблема в том, что не каждому под силу самостоятельно разобраться в их тонкостях. Большинство учебников и статей преподносят информацию в недоступной для понимания форме. Причины этого разные: слишком сложный математический аппарат, нежелание автора расписывать детали тех или иных алгоритмов, подходов или структур данных, незнание автором всех технических деталей.
Знания, необходимые для целостной картины фундаментальной информатики, фрагментированы и содержат ошибки. Поэтому могут понадобиться годы, чтобы разобраться во всех нюансах информатики. А таких временных ресурсов на информатику, как правило, ни у кого нет.
— К слову, один из ваших преподавателей два года проработал в Google. Какое там соотношение инженеров и кодеров?
— Стоит начать с того, о ком именно идет речь: в Google есть несколько разновидностей работников:
Среди первой категории кодеров не может быть в принципе, поскольку все интервью направлены именно на то, чтобы отобрать исключительно инженеров-программистов. Google — это продуктовая компания, ей нужны люди, которые создают что-то новое, а не делают каждый день одно и то же.
Что касается трёх оставшихся групп, сказать сложно, в их наборе участвуют посредники и только финальное интервью проходит непосредственно с представителями Google. Уровень знаний у этих инженеров порой меньше, чем у «гуглеров», но всё равно — они должны быть инженерами.
Каждый работник Google — это высокомотивированный специалист, которому не сидится на месте: ему хочется разрабатывать, разбираться, учиться. Учиться без конца — это суть человека, без которой нельзя попасть в компании такого уровня. Некоторые инженеры Google сидят на работе по 10, порой 16 часов, потому что это им действительно интересно. И для этого «весёлого» времяпрепровождения компания создаёт всевозможные условия. При этом, никто не заставляет вас работать более 8 часов — люди делают это исключительно по своему желанию.
— Можно ли ожидать, что «кодеров» заменят роботы? А инженеры-программисты рискуют?
— Стоит обратиться к исследованию оксфордского университета: профессия инженер-программиста выглядит достаточно перспективной и «безопасной». В исследовании Оксфорда за 2013 год было установлено, что инженеры-программисты имеют 8-процентный шанс на автоматизацию в ближайшие 20 лет. И, конечно же, инженеры-программисты не единственные, кто рискует. В исследовании прогнозируется, что 47% всей занятости в США, скорее всего, будет автоматизировано к 2030 году. Другими словами, учиться на инженера-программиста нужно и как можно скорее.
«Мы учим не языкам программирования, мы учим программировать»
— Создавая курс, вы имели в виду, что программист не может самостоятельно «переквалифицироваться» из кодеров в инженеры? Или пытались облегчить ему задачу?
— Каждый человек, желающий совершить скачок из кодера в инженеры-программисты, должен ответить на вопрос: знает ли он, где искать нужную для этого информацию и сколько времени ему понадобится? Если ответ «да» — начинайте прямо сейчас. Но рассчитывайте, что путь будет не из лёгких.
Понимание подводных камней этого процесса привело нас к созданию курса Cronis, в котором мы объясняем все тонкости фундаментальной информатики, убрав из материалы всю «воду» и не вовлекая в объяснения избыточную, ненужную сложность.
Создавая курс, мы ставили перед собой две цели: максимально понятное объяснение самых сложных вещей и решение сложнейших задач, встречающихся на интервью в лучшие компании мира.
Наша идея очень проста: убрать те мучения, через которые в своё время прошли мы и через которые проходят тысячи кодировщиков и студентов. Сэкономить годы бессмысленных попыток понять книги, для прочтения которых необходимо иметь серьёзнейший математических аппарат.
— Речь идёт о теории?
— Мы говорим не только о теории. За время обучения человек проработает несколько тысяч строк кода, оттачивая свои способности на задачах, которые спрашивают на интервью такие топовые компании мира, как Microsoft, Google, Amazon и Facebook.
— Учите ли вы конкретным языкам программирования и фреймворкам?
— Нет, мы учим программировать. В курсе намеренно не затрагиваются языки программирования и фреймворки, поскольку для этих целей существует сотни других тренингов.
— Кто ваши преподаватели?
— Люди с реальным 10-летним опытом, через который пропущены все знания, которые мы даём. Каждый преподаватель является практикующим программистом, поэтому знания курса актуальны и применимы в реальных проектах. Наши преподаватели работали как у нас, так и за рубежом: в финансовых и полупроводниковых отраслях, космической промышленности, имеется двухлетний опыт работы на Google.
— Хватит ли на усвоение всех этих материалов двух месяцев обучения?
— Это два месяца интенсива. Время обучения оптимально: как показывает опыт, это лучшее соотношение с точки зрения эффективность\скорость — скучать точно не придется.
— Можно ли понять фундаментальные темы информатики без высшего образования в сфере Computer Science?
— Действительно, может показаться, что без высшего образования программиста понять фундаментальные темы информатики невозможно. Это неверно — на самом деле всё, что необходимо иметь человеку, это инженерный склад ума, а также целеустремленность, усидчивость и желание развиваться.
— Для кого всё-таки предназначен курс и кто ваши сегодняшние слушатели?
— Курс отлично подходит для студентов, программистов с опытом, кодировщиков, желающих стать инженерами-программистами, а также людям, тем или иным образом связанным с ИT.
Стоит заметить, что если человек никогда не программировал, ему мы помочь не сможем. Нужно иметь базовые знания о любом языке программирования, а также уметь писать «ифы» и циклы.
У нас учатся парни и девушки от 17 до 35 лет. Студенты, люди с 6- и 10-летним опытом разработки. Среди наших клиентов, например, присутствуют сотрудники компании Wargaming — являясь специалистами одной из самых престижных компаний, они растут и совершенствуются.
За время существования курса никто из наших студентов не бросил обучение. Это говорит о том, что наш формат нравится и нужен людям, желающим развиваться.
— Приведите конкретные примеры того, в чём ваш курс отличается от других.
— За созданием курса стоит 10-летний опыт и обобщение всех знаний, которые получил каждый из нас за время своей карьеры. Было разобрано, переработано и исправлено множество информации. В большинстве своих объяснений мы апеллируем к вещам, которые разъясняли сами их создатели.
Например, тема рекурсии в большинстве статей затрагивается довольно поверхностно. Мы же обращаемся к тому, кто первым ввёл рекурсию в программирование — Эдсгеру Дейкстре.
На логичный вопрос, «зачем уделять столько времени рекурсии?», можно ответить так: алгоритмы сортировок, поиска, деревьев и графов в большинстве своём являются рекурсивными. То же самое касается алгоритмов парсинга (разбора) компилятором языков программирования. В конечном счёте, большинство вещей существующих в информатике, сводится к рекурсии. Также, чтобы инженер мог оценить скорость работы рекурсивной программы и потребляемую ей память, необходимо знать, как работает рекурсия на самом «низком» уровне.
Тоже самое касается деревьев, графов и других структур данных. 99% людей не напишут «с головы» удаление узла из АВЛ-дерева. В курсе эта тема даётся так, что вы никогда не забудете, как это сделать. Потому что мы рассказываем ту суть, которую вкладывали авторы в эту процедуру. А зная суть, вы всегда сможете написать данный код без «зазубривания».
— Делитесь ли вы полезными материалами бесплатно?
Время от времени мы проводим бесплатные открытые лекции, чтобы заинтересованный человек мог оценить, подходит ли ему наш курс.
Эта публикация подготовлена в партнёрстве с обучающим центром Cron.is.
Хотите сообщить важную новость? Пишите в Телеграм-бот.
А также подписывайтесь на наш Телеграм-канал.
Разбираемся в тайтлах: кодер – программист – разработчик – инженер
Перевод статьи Азата Мардана “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 и пользовательском опыте. Они просто выдают строки и строки статических листингов. Поэтому я и говорю, что это нижний уровень, ведь программирование требует больше навыков и знаний.
В озвращаясь к людям из других отраслей, они как раз могут назвать программиста кодером. Для них эти слова взаимозаменяемые. Аргх. Это потому, что они не знают тех нюансов, которые знаем мы с вами (вы же теперь знаете, верно?).
Разработчик
Разработчики программ должны собирать требования. Им нужно разговаривать с собственниками. Они проектируют масштабируемость и устойчивость всей системы. Они занимаются документированием, тестированием и поддержкой. Если это веб-приложение, разработчики должны подумать о балансировщиках нагрузки и аварийном восстановлении. А также о том, чтобы браузерная оптимизация была выполнена правильно.
Часто разработку ПО можно разделить на веб-разработку, разработку мобильных приложений, разработку в сфере интернета вещей. Однажды я напишу отдельный пост об этих подвидах разработки. Разработчики программ это лучшие из лучших. Например, если вы посмотрите на Amazon, то повсюду в компании будете встречать название профессии «Разработчик ПО». Они часто используют этот тайтл.
Инженер
Как насчет инженеров ПО? Они, по моему мнению, даже более продвинутые, чем разработчики. Почему? Инженером обычно называют человека, который имеет степень бакалавра или магистра по информатике и который много читает. Вдобавок к теоретическим знаниям (книги и курсы) у них также есть большой опыт. Они много знают и многое могут. Они знают все на очень высоком уровне: лучшие практики, алгоритмы, структуры данных, масштабируемость, языки (не один, а несколько!).
Стоит отметить, что в некоторых компаниях это может быть и не так, потому что названия должностей и рабочих функций в разных компаниях сильно отличаются. У некоторых нет должности «инженер ПО», потому что они используют «разработчик ПО» (Amazon). В других компаниях наоборот, используется «инженер ПО», а не «разрабочтик ПО».
Прочие названия
Наконец, «ниндзя», «гуру», «сенсей», «рок-звезда» и прочие бессмысленные слова не много сообщают о должности или навыках. Это может быть кто-то с опытом выше среднего, кто-то с выдающимися навыками в узкой области (например, рок-звезда в Solidity), или вообще джуниор, но выполняющий за низкую плату много разных функций в маленьком стартапе.
Да, эти слова слишком часто используются именно в стартапах, потому что их основатели хотят, чтобы их детища считали такими же крутыми и классными, как большие компании. Стартапы не могут предложить хорошую зарплату, но они предложат вам должность вице-президента или главного инженера. Выбирайте самую важную должность. Она будет хорошо смотреться в вашем резюме, когда вы будете искать новую работу (а так и будет). Новую работу в более стабильной и крупной компании, чем этот провальный стартап.
Таким образом, названия «инженер» и «разработ ч ик» в большинстве случаев являются взаимозаменяемыми, но «инженер» звучит престижнее и более продвинуто, чем «разработчик». Большинство людей не из этой сферы деятельности поймут, если вы скажете «инженер ПО» или «разработки ПО». Главное, не забывайте добавлять это «ПО». Иначе они подумают, что вы занимаетесь проектированием недвижимости или курятников.