У программистов тоже есть уровни. Ты уже, наверное, замечал, что требуемый уровень указывается в вакансиях. Но вот трактовки у этих уровней могут быть совершенно разными. Каждый работодатель вправе сам решать и устанавливать свои требования. Давай попробуем хоть немного их формализовать и привести в виде небольшого списка.
Intern (Стажер или Интерн)
Разработчик самого низкого уровня, чаще всего студент на практике. Этот уровень не так популярен в России, но все-таки встречается в некоторых компаниях. Чаще всего работа с интернами строится следующим образом: набирается группа совсем молодых и зеленых, но вроде как смышленых студентов, проводится дополнительное обучение и даются тривиальные, но при этом реальные боевые задачи. Потом из всей массы выбираются самые перспективные представители, которые переходят на следующий уровень. Остальные отправляются в свободное плавание. Стажировка может быть как оплачиваемой (за копейки), так и бесплатная. Уровень знаний может быть близкий к нулю на начальном этапе, но для получения предложения – нужно показать свою обучаемость и адекватность.
Junior (Младший программист или Джун)
Чаще всего именно с этой позиции начинает свою трудовую деятельность типичный разработчик в России. Это должен быть человек, как минимум на хорошем уровне знакомый с синтаксисом языка, знающий базовые алгоритмы и структуры данных, знающий о системах контроля версий (например, git), умеющий адекватно общаться с людьми, самостоятельно искать необходимую информацию в интернете и самообучаться. Он может самостоятельно решать типичные задачи начального уровня, но часто обращается за помощью к более опытным коллегам.
Middle (Программист или Мидл)
Программист с хорошим практическим опытом разработки, может самостоятельно решить практически любую задачу, отлично знает свой язык программирования и тонкости его работы, умеет грамотно декомпозировать задачи, пишет качественный код, использует фреймворки для увеличения скорости и качества работы.
Senior (Старший программист, Ведущий программист или Синьор)
Чаще всего эти должности не различают, ведь они достаточно схожи между собой, но на самом деле имеют определенные различия. Из общего, это очень глубокое знание нескольких языков программирование, умение решать нестандартные проблемы на низком уровне, проектирование архитектуры и планирование всей инфраструктуры приложения, интеграции и цикла разработки. Принятие ключевых решений об используемых подходах и технологиях разработки. При этом старший программист больше концентрируется на технической части и работе с кодом. Это программист-эксперт в своей области. Ведущий программист кроме экспертности в программировании еще фокусируется на управлении другими программистами и общении с заказчиком.
Architect (Архитектор)
Наивысший уровень технического разработчика. На этом уровне человек занимается именно проектированием технической составляющий. Но главная его задача – это умелое использование уже имеющихся библиотек и технологий для решения поставленной задачи. И только при особой необходимости давать задания на разработку чего-то нового. Для архитектора важно отличное знание огромного количества различных технологий, глубокое понимание принципов построения приложений, умение комбинировать и находить подходящие компоненты системы, а главное – умение решать проблемы.
Team Lead (Тимлид)
Следующий уровень ведущего разработчика. На его плечи ложится решение наиболее сложных технических вопросов, а также распределение нагрузки между разработчиками, обсуждение и формулировка требований и их условий выполнения с заказчиком, взаимодействие между командами и отделами внутри своей организации. На самом деле, это уже больше управленческая должность, и после нее уже движение в сторону менеджера проекта, тех лида или технического директора.
Но самое главное между всеми этими уровнями – это уровень ответственности. Именно он определяет на самом деле, кем ты являешься. У стажера, по сути, нет никакой ответственности. Джуниор – отвечает только за свой код и тот не полностью, потому что за ним всегда проверяют. Милд полностью отвечает за все им реализованное и за код джуна (если выполняет проверку), синьор несет основную ответственность за техническую реализацию проекта, архитектор отвечает за всю работу приложения и вектор развития, а тимлид (и менеджер проекта) за работу команды и взаимодействие с заказчиком.
Таким образом, мы получаем примерно следующий путь развития
Успехов в построении карьеры и главное не забывай, про в IT-сфере очень важно постоянно учиться и развиваться. Никогда не останавливайся, изучай новые технологии, углубляй знания в используемых и тогда обязательно добьешься результата.
Большое спасибо за прочтение! Пожалуйста, поставь лайк и подпишись на канал, чтобы не пропустить свежие статьи. Этим ты очень поможешь в развитии блога!
Также рекомендую прочитать статью Программист, достигни своих целей