Разработка #гайд

Куда расти программисту в IT-компании

В этой статье вы найдете примеры и советы, куда расти программисту в профессии и обязательно ли идти в менеджмент, чтобы зарабатывать больше.
21 мая 2019 Читать ~ 7 минут

Содержание:

  1. Как может развиваться карьера программиста
  2. Куда двигаться дальше senior-программисту
  3. В каких компаниях больше возможностей для профессионального роста 
  4. Куда ведет карьерная лестница

Для программиста рост от junior до senior – естественное развитие в профессии, связанное с улучшением навыков. Однако очень сложно выбрать стратегию, как дорасти до высшей ступени: в IT нет универсальных критериев, что должен уметь разработчик на каждой позиции. А как развивать карьеру, когда уровень senior уже пройден?

Как может развиваться карьера программиста

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

Вертикальный рост

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

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

Рост из junior в middle

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

В отличие от junior, middle-программист – самостоятельный специалист в команде разработки, который не нуждается в контроле более опытных коллег. Middle-разработчик понимает, какие фреймворки и библиотеки лучше подходят для каждой задачи.  На проекте он уже может отвечать за отдельные модули и функции приложения. Достигнув уровня middle, программист сосредоточен не только на своем коде, но и начинает интересоваться архитектурой решений.

Чтобы junior-программисту быстрее вырасти до middle, стоит искать место работы, где налажен процесс обучения кадров и обмена опытом. Лучше выбрать компанию с меньшей зарплатой, но где для сотрудников предусмотрено рабочее время на тренинги, изучение новых технологий. На этом этапе карьеры важно не только активно учиться, но и закреплять знания на практике. Можно выучить множество технологий в теории, но это будет бесполезно, если не опробовать их на реальных задачах.

Рост из middle в senior

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

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

Чтобы middle-разработчику стать senior, важно научиться мыслить не в рамках своего кода, а на уровне всего технологического решения. Важно постоянно осваивать актуальные технологии и инструменты, вроде микросервисов и контейнеров, и стараться, чтобы ваши задачи на проекте усложнялись. Если понимаете, что занимаетесь лишь рутинной работой, попросите руководство разрешить вам сменить проект или несколько часов в день работать с другой командой. Чтобы проверить, какие задачи доверяют senior-программистам, можете зарегистрироваться на бирже фриланса (например, Upwork), заодно потренируете английский язык, без которого точно нельзя претендовать на эту позицию.

Куда двигаться дальше senior-программисту

Senior-разработчики ценятся на рынке труда, и за их знания компании готовы платить не меньше, чем менеджерам. По данным портала dev.by за март 2019 года, у senior-программиста и менеджера проектов одинаковая средняя зарплата – 3 тысячи долларов. Таким образом, при переходе на другие позиции стимулом должно быть не столько повышение дохода, сколько реализация интереса, либо к проектированию программ, либо к управлению командой.

Вершиной технологического роста для программистов считается роль архитектора ПО (Software Architect). Он проектирует программные решения, во многом определяя задачи остальных разработчиков в команде. Архитектор продумывает сценарии взаимодействия компонентов системы и выбирает технологии для каждого модуля.

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

Должность lead-разработчика (Team Lead) может стать переходным этапом из программирования в менеджмент, так как уже включает в себя управление командой. Team Lead организует процесс работы во время проекта, делегирует задачи другим разработчикам. Также он может проводить собеседования с новыми специалистами, отвечать за их адаптацию и обучение. На этой позиции нужно оценивать работу коллег, разбирать чужой код. Эта роль подойдет тем, кто готов к ответственности за команду. В некоторых компаниях Team Lead может выполнять и обязанности менеджера проекта, то есть активно взаимодействовать с заказчиком.

Роль менеджера проектов (Project Manager) станет новым профессиональным опытом для разработчика. Однако такой переход будет комфортным не для каждого программиста – вместо часов наедине с компьютером и кодом, большую часть рабочего времени придется проводить в коммуникации с коллегами и клиентами. Чтобы senior-программисту вырасти в успешного менеджера, нужно развивать компетенции по модели T (T-shaped skills), то есть дополнять свою специализацию навыками из других сфер (управление командой, делегирование задач, риск-менеджмент, знания различных индустрий). Потенциальных менеджеров проектов среди разработчиков обычно выделяет отношение к проекту как к личному делу. Им важно не только закончить свою часть работы, но и увидеть результат всей команды.                                                                                                                                        

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

Горизонтальный рост

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

Эксперт

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

IT-евангелист

Оставаясь senior-разработчиком, можно попробовать себя в роли IT-евангелиста, если вам нравится обучать и мотивировать коллег. IT-евангелист – тоже эксперт в какой-либо сфере, но его основная задача – популяризировать технологии и делиться опытом с другими. 

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

IT-консультант

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

В каких компаниях больше возможностей для профессионального роста

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

Начинающим разработчикам лучше выбирать крупные сервисные компании, где будет возможность поработать в разных проектах и командах, – считает Software Architect Сергей Голубенко. – Программист всегда учится у более опытных коллег, и если в команде мало специалистов, то ограничен и трансфер знаний. А проработав 5-7 лет в IT-компании, где сотни сотрудников, программист получит профессиональный капитал, с которым будет проще реализоваться в любой компании, как сервисной, так и продуктовой, или развивать свой стартап.

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

Куда ведет карьерная лестница

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