Junior, mid и senior developer — по каким критериям оцениваются должности ИТ-программистов

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

Кто такие junior, mid и senior developer и какие у них задачи?

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

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

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

Junior developer

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

Младший разработчик — задачи, навыки, ожидания:
• опыт работы 0-1,5 года;
• базовые знания языка программирования и выделенного для него фреймворка, действующего в компании или для конкретных проектов;
• английский на коммуникативном уровне, что позволит ему просматривать техническую документацию;
• работа в основном под наблюдением старших товарищей по команде;
• способность исправлять ошибки, при этом делая выводы из конструктивной критики;
• выполнение поставленных перед ним задач — без самостоятельного выбора этих задач;
• работа, включающая относительно простые и повторяющиеся действия;
• знание используемых в проекте технологий и информации об оборудовании, на котором он работает;
• отсутствие связи с клиентом и никакого влияния на принимаемые решения по проекту;
• сосредоточиться на постоянном развитии в нерабочее время.
 

Mid developer/regular developer

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

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

Mid developer - задачи, навыки, ожидания:
• 2-4 года опыта;
• работают в основном самостоятельно с незначительным контролем;
• умение самостоятельно решать технические задачи;
• возможность постановки задач исходя из бизнес-целей проекта;
• умение работать самостоятельно и в команде, и даже управлять небольшой командой;
• контроль работы младших коллег;
• инициативность в решении различных задач и принятии проектных решений;
• общение и обсуждение с клиентом о предположениях и лучших решениях для проекта;
• постоянное развитие и следование технологическим новинкам.
 

Senior developer

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

Старший разработчик — задачи, навыки, ожидания:
• 5-8 лет опыта;
• самостоятельная работа над очень сложными проектами, часто по несколько одновременно;
• руководить большими командами и поддерживать их своими знаниями и опытом;
• умение эффективно делегировать задачи между членами команды в соответствии с их навыками и проектными предположениями;
• курирование работы младших разработчиков;
• широкий взгляд на продукт с акцентом на возможности дальнейшего развития;
• принятие стратегических решений по проекту;
• контактировать с клиентами и обсуждать с ними лучшие технологические решения для достижения бизнес-целей.
 

Краткое резюме

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

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