Куда расти разработчику: три пути для карьерного роста в IT

Я уже 4 года работаю миддлом в JavaScript, и поэтому передо мной встал вопрос, а куда расти дальше? Если Вам кажется, что пора что-то менять, то Вам не кажется.

Куда расти разработчику: три пути для карьерного роста в IT

Пути на самом деле три:

  • релокация за границу, например, лайтовый маршрут Восточная Европа (Сербия) — Западная Европа (Германия, Нидерланды) — США;
  • свитчнуться на другой язык программирования, например, стать бэкендером — Java или Go;
  • дорасти до Senior.

Очень важный нюанс: оценивать надо не от моих иллюзий и фантазий, а от текущих реалий рынка.

Релокация

В Европе и США программист — это просто инженер, нет ни зарплат выше рынка, ни уймы плюшек, как в России, вроде ДМС. И ещё прямо сейчас из-за последних геополитических событий русские стали как новые негры. Своё место надо выгрызать. Кроме того, очень высокая конкуренция, уйма ребят из Индии и Пакистана, которые к прохождению собеседований готовятся годами: и 300-400 часов задач на Leetcode, и английский, и soft skills. Правда, потом ни фига не работают, а имитируют бурную деятельность, но это национальная специфика. И чтобы пройти интервью, надо быть на редкость бодрым кабанчиком.

И в США, и в Европе сейчас финансовый кризис, рабочие места, которые были созданы в тучные годы, сокращаются. И в США вообще могут уволить одним днём. Идеальный вариант в Европу и США было ехать 10 лет назад, причём на уровне Senior. Но фарш нельзя провернуть назад. Так что релокацию я пока не рассматриваю.

Стать свитчером

Т. е. перейти на другой язык программирования, т. е. с фронтенда на бэкенд, например, изучить Java или Go. Python я не рассматриваю, я его попробовал, но динамическая типизация ну сильно не понравилась. С ней в JavaScript можно творить полную дичь, думаю, в Python аналогично.

Язык программирования — это по сути клей, который объединяет большое количество технологий. Я посмотрел видео, где рассказано, что нужно знать программисту на Go, чтобы запустить проект. Придётся погрузиться по самые уши в Postgres, Kafka, Kubernetes, Grafana. Чтобы стабильно и быстро работала программа на сервере, надо знать уйму технологий. Самое интересное, если в рисунке Go заменить на NodeJS, не изменится по сути ничего.
Куда расти разработчику: три пути для карьерного роста в IT

Куда расти разработчику: три пути для карьерного роста в IT

Но самое интересное другое: свитчнуться-то можно, но вот зарплата останется практически одинаковой. Сейчас рынок сеньоров. Поэтому сопутствующие технологии в список планов внесу, но основной упор делать не буду. А Java и Go я всё равно поизучаю, но опять же в лайтовом режиме. Я придерживаюсь принципов T-shaped skills — это надо расти не только вглубь, но и вширь, освоить и ещё и соседние специальности. Не на уровне матёрого профессионала, а чтобы суметь сформулировать задачу для другого специалиста. Так что свитчер лично для меня не вариант.

Стать Senior

Самое интересное и реальное. Сейчас рынок сеньоров, если ты хороший сеньор с прокаченными hard- и soft-скилами, с руками оторвут. По собственному опыту прошлых проектов, senior решает задачи, которые остальные решить не могут. То проект на dev-стенде работает, а на stage падает. То другая команда забила на интеграцию с нашей системой. Много вопросов он решает без программирования путём переговоров, но обширная техническая экспертиза должна быть. Опять же мне надо или внутри компании сдать аттестацию, или пройти собеседование на него. Старая добрая традиция, повышение через увольнение. 
Сдать экзамен и быть сеньором — это 2 большие разницы. К экзамену можно подготовиться. Что нравится, у senior зарплата вырастает где-то в 1,5 раза. Так что мой выбор — путь к senior.

Куда расти разработчику: три пути для карьерного роста в IT

Как стать senior?

Кто такой сеньор, у разных компаний, где я работал, представление разное. У одной компании — это программист, но со знанием Project Management. В другой нужно было знать бизнес-анализ. В каждом домике — свои гномики.
Но сеньора оценивают по 2 группам навыков:

  • hard skill;
  • soft skill.

Hard skill — это непосредственно программирование и уйма сопутствующих технологий. Для уровня сеньор ещё добавляют проверку архитектуры.
А вот что такое soft skill, не знает никто. На что фантазии хватает, то и придумывают. Но мне понравилось чисто практическое определение. Которое звучит как ответ на 3 вопроса.

  • Я занимаюсь этим в рабочее время?
  • Это не относится к моим хард скиллам?
  • Если я перестану этим заниматься, моя команда (или проект) серьезно замедлится, провалится или заблудится?

Лично для меня сейчас критичны: переговоры (продажи), навыки аргументации, английский язык, тайм-менеджмент. Что радует, софт-скилам можно научиться. Хотя из тех статей, которые я прочитал, английский язык не отметил никто, но я считаю его достаточно важным для программиста. Документация ну по очень многим библиотекам только на английском. Я сам английский учу уже несколько лет. Оказывается, всё учится, не быстро и не так интересно, как было в начале, но это реально.

По тайм-менеджменту достаточно много авторов статей предлагали книгу Катерины Ленгольд «Agile Life. Как вывести жизнь на новую орбиту, используя методы agile-планирования, нейрофизиологию и самокоучинг». Я её добавил в список для чтения. Я ещё планирую перечитать/пересмотреть Дорофеева.
По остальным софт-скилам буду искать информацию.

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