Когда я профессионально занялся разработкой программного обеспечения, меня поразило огромное количество людей, которые путали Java с JavaScript. Я бы их вообще не осуждал. Мы, люди, можем иногда подсознательно предвзято понимать определенные явления и события, связывая их друг с другом, и я считаю, что Java/JavaScript просто стимулировал эти очень специфические нейроны. Должен признаться, когда я начал играть с компьютерами в возрасте 14 лет и открыл для себя форму магии, называемую программированием, которая позволяет мне манипулировать выводом на мой экран, я тоже перепутал оба; но позже, после работы с обоими, различия были столь же ясны, как кристалл, с извлеченными уроками о том, насколько важна проверка предположений.

Эврика!

Позже, по мере того, как я продвигался вперед, работал над решением очень разнообразного набора проблем, что дало мне необходимую информацию для формулирования мнений и их дальнейшей проверки. Меня приблизило к сфере управления продуктом и дизайна. Это была одна из немногих вещей, которые меня по-настоящему взволновали и побудили встать на путь получения новых знаний в указанной области. сделать, а может быть, глубочайшее желание сердца: что я хочу сделать.

Вам может быть интересно, какое отношение эта информация имеет к статье, как следует из названия, но именно это привело меня сюда и послужило основой для написания этой статьи. Я не могу подчеркнуть огромную разницу между этими двумя терминами, не поделившись своим личным опытом перехода от программиста, работающего в одиночестве в своей спальне в детстве, к разработчику, активно сотрудничающему с членами команды и заинтересованными сторонами для создания ценности.

Программисты — кто они?

Термин «программист» используется для обозначения человека, который пишет код, создает программное обеспечение и так далее. Вы найдете большое количество определений, которые в конечном итоге сводятся к одному и тому же смыслу: они создают программное обеспечение.

Лично я не согласен с этим определением. Слово «создание» подразумевает гораздо больше, чем написание кода. Процесс создания включает в себя проектирование относительно конкретной решаемой проблемы. Даже для того, чтобы начать с этого, необходимо очень хорошее взаимное понимание решаемой задачи, целевых пользователей, их психологии и ожидаемого поведения, которые необходимо учитывать перед разработкой решения. Более того, это представляет собой только фазу предварительного исследования проблемы, поскольку это непрерывный процесс уточнения, который происходит на протяжении всего жизненного цикла разработки, чтобы произойти коррекция курса и убедиться, что разработанные решения действительно решают решаемую проблему.

После того, как все это было записано, начинается этап реализации, когда предлагаемое решение воплощается в жизнь.

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

Программисты не создают софт, они его реализуют.

Разработчики — программисты-полукровки

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

По сути, разработчик ролей очень разнообразен и требует набора навыков в различных областях, чтобы быть принятым и выполняться должным образом.

Разработчики решают проблемы, которые могут включать создание программного обеспечения.

Где вы стоите?

Точно так же, как классическая путаница Java/JavaScript, которую мы когда-то широко наблюдали, я видел, как многие люди путают эти два термина до такой степени, что они неправильно идентифицируют себя. Я согласен с тем, что, вообще говоря, два термина не являются однозначно черно-белыми с их четкими различиями и различиями, но это классическая норма во всем технологическом мире. Иногда мы обнаруживаем, что работаем на очень синих линиях до такой степени, что оспариваемые концепции в определенных случаях взаимозаменяемы, но способность различать и различать их — это то, что позволяет нам преуспеть в нашем процессе принятия решений.

В контексте этих двух терминов я всегда называл себя разработчиком по целому ряду причин:

  • Я не пишу код, я создаю продукты, которые решают существующую проблему. Код по своей сути не имеет ценности, он становится ценным только тогда, когда его используют для решения существующей проблемы или упрощения сложного процесса.
  • Роль разработчика позволяет мне заниматься разработкой и дизайном продуктов.
  • Мне нравится быть частью более широкой картины, где я должен взаимодействовать с непосредственными пользователями, чтобы лучше понять их точку зрения, осознать их потребности в настоящем и предсказать будущее на основе обоснованных предположений.
  • Создание с нуля решения, созданного для решения ряда задач и достаточно гибкого, чтобы адаптироваться к динамически меняющимся условиям, — сложный, но увлекательный процесс. Ведь если ты не возбуждаешься, а что делаешь, какой смысл этим заниматься?

Я ни в коем случае не хочу сказать, что одно лучше другого. Обе роли имеют свой собственный набор обязанностей и требований, которые не каждый может выполнить. В этом красота разнообразия наших ролей и жизни в целом. Тем не менее, знание своего положения и способность определять свои основные навыки и более четко идентифицировать себя могут помочь вам лучше представить себя на собеседованиях, людям и, возможно, просто во время бесед за чашкой кофе.

В конце концов, названия ничего не значат, если мы сами не добавим им смысла.