Ищете продвижение? Написание кода не приведет вас к этому.

Если вы хотите стать великим инженером (и преуспеть в своей карьере), вам нужно научиться работе настоящего инженера.

На самом деле — для лучших инженеров — написание кода — это небольшая часть их общей работы.

Отказ от ответственности: никакого мошенничества

Я ненавижу, что даже должен это говорить…

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

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

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

Кодеры против инженеров

Не называй себя программистом. — Патрик Маккензи

Есть два типа разработчиков: кодеры и инженеры.

Кодеры думают, что их работа — писать код. Им ставят задачи, и они их выполняют. Часто они пишут достойный код, который соответствует требованиям. Рискну предположить, что большинство разработчиков считают себя «кодерами».

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

Кодировщики могут написать некоторый код, который выполняет определенную работу. Инженеры видят общую картину, и вы можете доверить им решение всей проблемной области.

Оппортунисты против идеалистов

Оппортунисты признают, что единственный способ победить в корпоративной игре — это играть по их собственным правилам — Эрик Дитрих.

Есть еще один способ разделить инженеров-программистов: оппортунисты против идеалистов.

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

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

Чтобы двигаться вперед, инженеры знают, что все дело в создании ценности.

Код — это один из способов создания ценности, но гораздо полезнее решить бизнес-задачу в целом. Обычно это означает гораздо больше, чем написание кода, а код — самая простая часть.

Значение! = сложность

Просто потому, что что-то сложно, это не делает это ценным. — Джонатан Старк

Опытные инженеры знают, что наибольшую ценность часто создает простота.

С опытом вы научитесь доводить проблемы до их сути. Самые опытные ветераны долго обдумывают проблему, прежде чем что-либо реализовать.

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

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

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

Я не предлагаю вам отдавать свою работу на откуп. Но вы можете написать предложение, RFC, план архитектуры или рекомендации/стандарты. Затем доведите его до команды, чтобы проверить идею и воплотить ее в жизнь.

Значение вне кодирования

Великие инженеры создают ценность всеми возможными способами. Есть способ больше заниматься инженерией, чем писать код.

Некоторые из них будут более ценными, чем код, в зависимости от вашей организации:

  • Выявление требований за функциями
  • Думая о пограничных случаях
  • Учитывайте UX и доступность
  • Разработка стратегий развертывания и внедрения
  • Уменьшить трение в инженерном процессе
  • Просмотрите код других разработчиков
  • Читать, редактировать и писать документацию
  • Собеседование с кандидатами и помощь в подборе персонала
  • Тренирует юных инженеров и парную программу
  • Реагировать на инциденты и проводить вскрытия
  • Внедрение лучших практик мониторинга и наблюдения

Восхождение по лестнице

[Успех на более высоких уровнях] требует более тщательного планирования и стратегического мышления — Кун Чен

Будучи кодером-идеалистом, вы можете получить повышение или два раньше. Вы показали, что можете выполнять задачи по кодированию.

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

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

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

Что дальше

Я ежедневно пишу о построении карьеры разработчика, которая является значимой и увлекательной. Хотите присоединиться ко мне в этом путешествии?

7-дневный электронный курс по развитию карьеры разработчика

Join Medium for $5 - Access all of Medium + support me & others