Важные навыки, которые нужно усвоить, которым нас никто не учил в аспирантуре

Более десяти лет назад компании нанимали разработчиков на основе того языка программирования, с которым у них был опыт, фреймворков, технического стека и т. Д.

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

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

Три основные черты

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

1. Технический опыт и мастерство

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

2. Объем и автономия

Мы не живем в мире, где работы в одиночку и реализации спецификаций из диаграмм UML уже достаточно. Те, кто знает, как справляться со сложностями, требующими минимального контроля, теперь являются чрезвычайно ценными профессионалами.

3. Коммуникация и влияние

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

Стать старшим инженером-программистом

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

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

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

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

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

Начало карьеры программиста

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

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

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

Работа в качестве опытного разработчика

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

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

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

Становление старшего инженера-программиста

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

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

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

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