Карьера программиста: как получить высокую зарплату и признание

133
Карьера программиста: как получить высокую зарплату и признание
Фото: businessman.ru
Антон Ярков
Инженер-программист, руководитель команды разработчиков Access Softek Inc., США

Каким должен быть баланс в карьере разработчика для оптимального роста?

Важные навыки в работе программиста

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

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

В общем, это принято называть развитыми софт скиллами. Быстро или медленно, так или иначе, это постепенно приходит и к нам в СНГ, поэтому скорее всего вы уже слышали или читали об этом хотя бы вскользь.

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

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

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

  • Во-первых, она, очевидно, вызывает недовольство самих инженеров.
  • Во-вторых, она потенциально может привести к краху проекты, продукты, организации и компании.

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

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

Кроме того, мы хотим не уставать, не забывать про семью, не делать «мартышкин труд» (то, что не важно, или то, что могло бы быть автоматизировано), и т.д. Надо ли говорить, что так не бывает? Так не бывает потому, что нужно достаточно много концентрации на одном навыке, чтобы развить его и стать специалистом в нём. При этом нужно ещё обращать внимание на все остальные перечисленные выше навыки в равной степени, что растягивает во времени и замедляет прогресс.

Схема карьерного развития

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

  • Знания в специальности (hard skills). Рост опыта и навыков в непосредственной специальности.
  • Роль (ступень, или часто говорят: «Карьерный рост», с чем я не совсем согласен, т. к. карьера означает все метрики вместе, а не только ступени).
  • Зарплата (salary).
Картинка 1. Треугольник развития
Рис. 1. Треугольник развития

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

  1. У вас быстро растёт зарплата, но работа не интересна или однообразна.
  2. Вы растёте по карьере, занимаете высокие позиции, но зарплата не соответствует занимаемой должности в худшую сторону.
  3. Вы очень сильный крутой специалист, но всё ещё «крутите винтики», а не «управляете всем кораблём» (извиняюсь за аналогию, но действительно слышу и вижу подобные отзывы).

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

В своём недавнем интервью CTO компании Parimatch Tech Григорий Бакунов метко заметил, что на рынке «аутсорса» не существует Junior позиций. Компаниям, зарабатывающим с «аутсорса», важно продать своих специалистов подороже, завысив их как специалистов. В таких условиях зарплаты новичков быстро уравниваются с уровнем Middle или Senior. При этом они часто не являются по факту такими уж высокими специалистами. В итоге, легко увидеть ситуацию №1. В аналитике сервиса Djinni можно поиграть с параметрами и посмотреть на фактические зарплаты.

Кстати, если посмотреть на эти же «аутсорс» компании со стороны заказчика, то в США, например, встречается другая проблема: в управление целыми продуктами и командами может попасть специалист без предметных навыков, попросту неопытный. У него высокая роль (VP, Director, Senior Manager), так как всеми удаленными специалистами должен кто-то управлять, но не факт, что его знания (а иногда и зарплата) соответствуют роли. И это уже ситуация №2.

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

Итого, мы пришли к тому, с чего начали: нужно иметь высокие показатели по всем трем метрикам. И вот как к этому прийти.

Советы для разработчиков

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

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

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

Кто-то из нас «хватает» знания по верхам, а кто-то, глубоко «копает» в конкретной области интересов. Однако, для идеального развития нужно ориентироваться на фигуру справа – Т (T-shaped skills).

Картинка 2. Категории по уровню знаний
Рис. 2. Категории по уровню знаний

Совет 2. Регулярно пересматривайте свой путь и свои приоритеты, периодически поворачивая и таким образом уделяя внимание всем сторонам развития. Эта тактика называется «Карьерный кругозор», и она позволяет вовремя скорректировать свой путь, чтобы ухватиться за карьерную возможность. Как показано на рисунке 3, ваша карьера может развиваться непрямолинейно и это нормально. Где-то вы уделите внимание глубоким знаниям в языке программирования, а где-то будете учиться управлять командой, потом вновь «вернётесь» в техническую область и научитесь создавать целые системы и сервисы, и т.д.

В больших западных компаниях за этим вам помогают следить отдельные люди (People Manager, Team Lead, Engineering Manager, VP of Engineering). К сожалению, не все мы в них работаем, так что за этим нужно следить и вам самим!

Картинка 3. Карьерный кругозор
Рис. 3. Карьерный кругозор

Совет №3. Если вы молодой специалист (до 5 лет опыта), не соглашайтесь на мгновенный зарплатный рост и не пытайтесь сделать вид что вы уже Senior (повесить себе «лычку»). Будьте «голодными» и «смелыми», пока позволяет ваше положение, наберитесь знаний, но следите за разными возможностями. Начальное время бурного развития и роста — действительно крутое время, которое потом вы будете вспоминать с радостью.

Совет №4. Если вы уже опытный, то не пренебрегайте шансом открыться новому: новым знаниям, новым связям, новым знакомствам. Это заставляет выйти из своей «скорлупы», и увидеть множество новых возможностей. Не бойтесь попробовать то, что сначала не предвещает ничего интересного. Уже после нескольких попыток вы найдете то, что откроет вам совершенно новые пути и горизонты.

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

Что почитать по теме

  • Martin Fowler. The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life).
  • Robert C. Martin, Clean Coder, The: A Code of Conduct for Professional Programmers.

Антон Ярков — Senior Software Developer and Chief of development staff.
Инженер-программист и руководитель команды из 100 разработчиков в компании Access Softek Inc., занимающейся разработкой банковских продуктов для рынка США. Последние 8 лет играет ключевые роли в приятии инженерных и управленческих решений, работая над высоконагруженными и инновационными приложениями. 10+ лет опыта в разработке в стартапах и enterprise.

1
Содержание Поделиться