Чем различаются между собой различные категории программистов (Junior, Middle, Senior и т.д.)

В сфере разработки программного обеспечения сложилась определённая градация специалистов по категориям. Чем отличаются эти категории друг от друга (помимо зарплаты)?

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

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

Так какие же бывают категории программистов и чем они отличаются.

Trainee

Читается как «трейни». Именно эта (а вовсе не junior) самая первая категория, с которой начинает свой путь любой программист.

Лучше всего её можно охарактеризовать цитатой из знаменитого фильма: «Я не волшебник. Я только учусь».

По своей сути trainee это ученик или стажёр. Он только осваивает основы профессии и потому самостоятельно может решать только учебные задачи. Рабочие задачи ему пока не по силам.

Junior

«Джуниор» или «джун». Молодой специалист.

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

Опыт у него обычно также минимальный или отсутствует вовсе.

«Джуну» уже нет необходимости объяснять базовые вещи, в то же время у «джуна» вопросов ещё значительно больше, чем возможностей в плане работы. Поэтому «джуны» чаще всего выполняют простые и некритичные для проекта задачи под присмотром более опытных коллег.

Middle

Как следует из названия («middle» в переводе с английского означает «средний») к этой категории относятся программисты средней руки.

«Мидл» это первая категория, в которой допускается самостоятельная работа.

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

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

Senior

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

«Сеньорам» могут быть поручены задачи самой различной степени сложности не только по разработке или сопровождению, но и по проектированию, но обычно им достаётся сложность выше средней (иногда даже нетривиальные задачи). «Сеньору» можно поставить задачу в общих чертах (он сам сможет найти недостающие части головоломки и при необходимости задать нужным людям правильные вопросы).

Также «сеньор» способен не только сам проникнуться задачей, но и объяснить её младшим коллегам. Поэтому «сеньоры» нередко становятся наставниками «джунов» или помогают тимлидам.

Начиная с «сеньора» программист может не просто самостоятельно работать, но и вести проекты.

Lead

«Lead», «лид» или «ведущий». Следующая за «сеньором» категория программистов.

«Лид» уже накопил достаточно знаний и опыта чтобы вести сложные проекты и даже управлять процессами, связанными с разработкой.

На этой ступени развития программист оказывается перед выбором одного из двух путей.

Первый путь – это рост в направлении менеджмента. После позиции тимлида уйти в руководители проектов и т.д.

Второй путь – продолжать развиваться как технический специалист и стать так называемым «техлидом». Высококвалифицированными специалистом, который способен принимать ключевые решения по архитектуре и программной реализации всего проекта. Продолжая своё развитие дальше «техлид» может полностью уйти в область проектирования и стать системным архитектором (system architect).

Системный архитектор

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

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

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

Переход между категориями

Переход между категориями возможен как «снизу вверх», так и «сверху вниз». Вначале рассмотрим первый вариант.

Самый простой переход между trainee и «джуном». Выпускники ВУЗов и даже просто курсов программирования вполне могут получить статус «джуна» автоматически.

Переход из «джунов» в «мидлы» несколько сложнее, но и здесь тоже ничего особенного не требуется. Обычно необходимые для этого знания и опыт можно накопить за 1-3 года работы. Более того специалисты с опытом более 3 лет вполне могут рассчитывать стать «мидлами» уже на «старте» своей работы в компании.

Стать «сеньором», «лидом» и, тем более системным архитектором уже гораздо труднее. Т.к. для этого помимо соответствующих знаний и опыта требуются умении их правильно применять и соответствующий психологический склад (назовём это так).

Что касается перехода между категориями «сверху вниз».

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

Категория и должность

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

К сожалению, это далеко не всегда так.

Дело в том, что должность это по сути лишь условное название для той или иной тарифной ставки в штатном расписании компании. Должность можно назвать как угодно и закрепить за ней какие угодно полномочия. Также при желании можно кого угодно на неё назначить.

Поэтому, если человек занимает должность «сеньора» или «лида», то это ещё не гарантирует, что перед вами высококлассный специалист и наоборот если человек в должности «мидла» это ещё не говорит о том, что это «серая офисная мышь».

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

Добавить комментарий

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