Карьера программиста: от новичка до тимлида

Содержание:

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

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

Если хотите больше узнать об айти сфере или начать карьеру в ней, заходите на сайт блога или записывайтесь на курсы DevEducation.

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

 

Особенности развития и роста программиста

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

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

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

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

Начало карьеры

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

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

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

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

Плюсом на данной должности для вас станет наличие профессиональных курсов программирования.

Джуниор

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

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

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

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

Миддл

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

Основные требования к миддл специалисту в айти сфере:

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

Сеньор

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

Правильными решениями называются те, которые позволяют принести максимум пользы с минимальной затратностью ресурсов.

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

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

Среди особенностей должности сеньор-программиста стоит выделить:

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

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

Что делать дальше с этим опытом

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

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

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

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

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

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

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

Должность технического эксперта

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

Например, экспертом в области по созданию платформ Azure или AWS. Знание сервисов которые предоставляют к ним доступ откроет перед вами новые двери.

Изучение уязвимости веба и понимание создания Machine Learning, а также Computer Vision даст вам возможность стать на ступень выше и зарабатывать в разы больше.

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

Чаще всего работодатели доплачивают за подобные навыки или знания, так как они уникальны.

Должность индустриального эксперта

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

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

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

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

Карьера программиста: от новичка до тимлида

Разработчик-фронтмен или тимлид

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

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

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

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

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

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

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

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

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!