В чём отличие между разработчиками уровней junior, middle и senior? Как перейти с одного уровня на другой? Ответы читайте в этой статье.
Эта градация условна и варьируется в разных организациях. То, что в одной компании указано как компетенции уровня junior +, в другой считается уже middle. Единых критериев перехода между уровнями нет, и требования у работодателей зачастую не совпадают.
Давайте определим базовые умения, необходимые для разработчиков младшего, среднего и старшего уровней.
Младший разработчик (junior) должен уметь самостоятельно выполнять технические задачи. Он стоит в самом начале карьерного пути. Знаком с основами программирования, знает 1-2 языка в такой степени, чтобы выполнять простые нетривиальные задачи. Если у него возникают трудности, то они решаются консультацией с профессионалом уровня middle. Проблемы в работе у джуниоров возникают, как правило, потому что им ещё недостаёт опыта, не приходилось разбираться в чужих нечитаемых кодах, а синтаксис языка знаком поверхностно. И это нормально: теоретические знания “калибруются” в ходе практики и “встраиваются” в работу.
Если говорить о возрасте таких разработчиков, то типичный портрет - это студент или даже вчерашний школьник с базовым набором навыков, необходимых для решения простейших технических задач. Обычно для качественного освоения уровня junior достаточно 1-3 лет. Стоит насторожиться, если специалист “застрял” на этой ступени на 10-15 лет.
Какие качества помогут новичку перейти на следующий уровень? Это любопытство, способность принимать критику и делать из неё выводы, желание учиться и расти в профессии.
Если через несколько месяцев после начала работы, специалист становится самостоятельнее, перестаёт задавать много глупых вопросов, совершает меньше нелепых ошибок, значит, он на верном пути. Он делает шаги к развитию.
Разработчик среднего уровня (middle) должен понимать, что данное приложение делает в конкретном контексте. Владеет языками на продвинутом уровне, оптимизирует и улучшает код. Он может “уходить на глубину” в решении задач и отклоняться от привычных алгоритмов. Например, middle способен прочитать требования к задаче, оценить их и понять, что можно улучшить. Важно, чтобы такой специалист мог обосновать своё решение.
В написании кода он более осторожен и аккуратен, нежели junior. Практического опыта у него уже больше, чем у джуниора. За счёт этого middle способен оценить время, которое потратит на выполнение задачи. Его не пугают задачи длинной в неделю и больше. Он может разбить составную задачу на несколько мелких и поручить что-то младшему коллеге.
На практике он способен добавлять новые страницы в интерфейс, новую бизнес-логику в сервис, новые функции API.
В целом, разработчик среднего уровня видит решение определённой задачи, но не способен оценить, как это решение встроится в архитектуру проекта, то есть не может представить общую картину.
На этой ступени важно умение играть в команде (чтобы разъяснить простейшие задачи новичку, например), готовность брать ответственность, самостоятельность.
Чтобы дорасти до уровня старшего разработчика (senior), нужно накопить не только знания и практический опыт, но и “повернуть” мышление - то есть начать мыслить стратегически, а не ситуативно. Старший разработчик - это самостоятельный уверенный специалист, который справится с задачей любой сложности. Он способен анализировать и предвидеть. Он проектирует архитектуру программы и формирует вектор развития продукта. Кроме того, что senior имеет уверенные знания в нескольких языках программирования, он не перестаёт узнавать новое и расширять кругозор. Он может найти и исправить ошибки в коде, предложить несколько решений задачи, “встроить” в процесс разные фреймворки.
Как правило, senior не занимается решением технических задач, он управляет бизнесом, командой, выстраивает стратегию. Но глубокое знание процессов помогает ему понимать, как сделать так, “чтобы всё работало хорошо”.
Он умеет решать несколько сложных задач, у него развиты аналитические способности и коммуникативные навыки, умеет донести мнение, обосновать его и убедить в своей правоте.
Старший разработчик может быть крутым специалистом, руководителем отдела или даже партнёром компании. К его мнению прислушиваются, он заработал авторитет. Профессионалы такого уровня способны единолично принимать решения и отвечать за них перед заказчиком.
Нельзя однозначно сказать, за какой срок состоится миграция от уровня junior до senior, но в среднем амбициозному разработчику начального уровня нужно 5-6 лет, чтобы стать “гуру”.
Как происходит переход на уровень выше? Это многоступенчатый процесс. Первая оценка даётся на собеседовании. Затем она проводится, например, каждые полгода. Сотрудник и наставник ставят цели на короткий период и в конце этого отрезка снова проводят оценку результата. Решение о росте из junior в middle принимает его наставник или руководитель. Решение о переходе middle в senior принимает технический лидер компании при участии других специалистов старшего уровня.
Желаем вам амбициозных сотрудников, которые не боятся роста! С заботой к Вашему делу, GotDev.