Карьерный путь в ИТ: junior, middle, senior

В описаниях вакансий, да и в различных главах этой книги можно часто встретить такие термины, как junior, middle и senior разработчик. Что же это такое?

Формальных четких границ между этими градациями нет, и каждый волен понимать их так, как хочет. В интернете есть много статей на тему отличий и требований к каждому уровню, например https://tproger.ru/experts/junior-middle-senior-developers-differences/ или https://gb.ru/posts/dzhun-midl-i-senor-razbiraemsya-kto-est-kto, для себя я выделил следующую градацию:

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

Middle (миддл) - разработчик среднего уровня. Способен к самостоятельной работе над задачами среднего объема. Способен сам искать решения и справляться с проблемами в разумные сроки. Такому разработчику можно дать задачу покрупнее, например разработать крупный модуль или подсистему программы, а требования уже не надо так точно прописывать. При этом его навык проектирования еще недостаточно развит, и спроектировать и разработать полностью с нуля серьезное ПО он пока еще не может: выйдет криво, косо, и возможно вообще утонет под грузом костылей.

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

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

Эти три градации - это именно уровень вашего навыка в программировании. На достижения уровня senior у вас может уйти от 5 до 10 лет опыта. После чего начинаются вопросы, что делать дальше?

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

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

Проблема с этим путем в том, что эта работа уже требует больше социальных навыков, чем технических, так как это уже руководящая позиция со всеми вытекающими. И на должности руководителя отдела вы уже больше времени будете проводить не за кодом, а на совещаниях и расставляя приоритеты в таск-трекере. А наличие таких навыков слабо коррелирует с навыками программирования, поэтому далеко не из всех хороших senior-разработчиков выходят затем хорошие руководители. Что приводит к появлению в интернете статей типа "я дорос до синьора, хочу получать еще больше денег, но в менеджмент не могу, что делать?". Внятного ответа на этот вопрос нет, впрочем и на сеньорской позиции можно достаточно хорошо жить, совмещая написание кода (если оно вам нравится) и приличный уровень дохода.

Last updated