Многие ставропольчане мечтают стать программистами, но мало кто задумывается, как будет складываться их карьера. Каждый специалист, работающий в IT, имеет много возможностей для карьерного роста. Это может быть не только повышение квалификации и становление специалистом более высокого уровня, но и переход в другую сферу деятельности или даже открытие своего дела.
В статье описывается универсальный карьерный путь для любого программиста, карьера отдельного специалиста может отличаться.
Стандартная карьера программиста: вертикальный рост
Вертикальный рост специалиста — это повышение его квалификации и переход на более престижные и высокооплачиваемые должности. Вертикальный рост является самым быстрым способом продвижения по карьерной лестнице, поэтому им пользуется большинство программистов.
Университет
Университет — это не совсем часть карьеры, однако его следует рассмотреть отдельно. Большинство специалистов начинает свой путь с университета, хотя есть программисты, которые хорошо устраиваются, пропустив этот этап.
Университет не даёт навыков, которые нужны для реальной работы. Однако, учёба в высшем учебном заведении имеет несколько важных преимуществ:
• даёт базовые знания и навыки, актуальные для большинства сфер программирования;
• позволяет сформировать портфолио и научиться мыслить, как программист;
• позволяет получить диплом о высшем образовании, который увеличивает шансы попасть на работу.
Junior-разработчик
Junior-разработчик — это программист без опыта работы, обычно это выпускник вуза, который не имеет опыта реальной разработки программного обеспечения.
Компании нанимают Junior-разработчиков для выполнения несложных задач. Джуны имеют невысокую оплату труда, не допускаются к большим проектам и больше учатся, чем работают. Для работы Junior-разработчиком программист должен знать и уметь следующие вещи:
• основы одного или нескольких языков программирования;
• информатика, математика и другие профильные знания, которые даются в вузах;
• базовые инструменты для работы (IDE, система контроля версий, Linux).
Junior-разработчики не представляют большой ценности для работодателей, их нанимают на работу для того, чтобы подготовить более квалифицированных специалистов, которых всегда не хватает.
Middle-разработчик
Middle-разработчик — это опытный разработчик, который имеет достаточно знаний и навыков, чтобы работать над серьёзным проектом. Он совершает гораздо меньше ошибок и может работать самостоятельно, без постоянного присмотра со стороны старших специалистов. Для того чтобы стать Middle-разработчиком, нужно проработать в среднем 1-2 года.
К Middle-разработчику предъявляются следующие требования:
• уверенные знания используемых для работы инструментов (язык программирования, фреймворки и другие);
• умение работать в команде и решать проблемы как обычными, так и нестандартными способами.
Senior-разработчик
Senior-разработчик — это специалист, который может не только писать код, но и продумывать архитектуру приложения и организовывать работу над большим проектом. Senior-разработчик должен:
• хорошо знать инструменты разработки;
• писать простой, чистый и понятный код;
• понимать специфику разрабатываемого проекта, то есть не только писать код, но и участвовать в проектировании, ориентируясь на задачи бизнеса;
• обучать младших специалистов (быть ментором).
Senior-разработчик отличается от Miiddle-разработчика более глубокими знаниями и развитыми управленческими навыками.
Тимлид
Team Leader — это специалист, который управляет командой разработчиков. Так как тимлид координирует действия нескольких специалистов, он должен разбираться в различных областях программирования, чтобы понимать, чем занимаются члены его команды и как управлять их деятельностью. Тимлид должен обладать управленческими и коммуникативными навыками. Ему нужно находить подход к каждому члену команды, мотивировать их на своём примере и уметь доносить свои мысли.
Тимлид — это первая из управленческих ступеней в карьере программиста. Он получает большую зарплату и имеет авторитет в коллективе, за что к нему предъявляются дополнительные требования.
Менеджер проекта
Менеджер проекта управляет разработкой глобально. В отличие от тимлида, менеджер проекта не должен углубляться в детали написания кода и техническую часть проекта. Часто менеджерами назначают специалистов, далёких от программирования, но имеющих развитые управленческие и коммуникативные навыки.
Освоение новых областей: горизонтальный рост
Необязательно становиться управленцем, чтобы расти, как специалист. Многие программисты предпочитают писать код, вместо того чтобы управлять другими. Чтобы продвигаться по карьерной лестнице, они осваивают новые области и становятся более универсальными специалистами. Горизонтальная карьера предполагает, что программист будет хорошо разбираться сразу в нескольких направлениях. Компании охотно нанимают таких специалистов и платят им большие деньги, потому что они могут выполнять обязанности сразу нескольких человек.
Даже если программист просто меняет сферу деятельности, например, с веб-разработки на машинное обучение, это тоже считается горизонтальным ростом. Причин смены вида деятельности может быть много:
• желание попробовать что-то новое;
• лучшие зарплаты;
• недовольство текущим видом деятельности.
Когда программист полностью переходит на новую специальность, скорее всего, он не получит серьёзной прибавки к зарплате, однако будет иметь большее удовлетворение от работы. Если на новой работе он может выполнять обязанности как своей старой, так и новой специальности, его труд будет высоко оплачиваться, потому что компании любят универсальных специалистов.
Создание собственной компании
Чтобы создать свою компанию, необязательно иметь карьеру успешного программиста, однако без неё шансы построить хороший бизнес существенно снижаются.
Обычно свою компанию создают специалисты, которые высоко продвинулись по карьерной лестнице (сеньоры, тимлиды, менеджеры проектов). Все они имеют представление о специфики работы программистов и обладают управленческими навыками, которые необходимы для создания и управления компанией.
Главное преимущество собственной компании — возможность реализовывать любые идеи. К минусам можно отнести риск прогореть и большое количество управленческой работы.