Найти тему
IT додзё

Стадии эволюции программиста.

Оглавление

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

Кадровые работники обычно оперируют следующими терминами: инженер-программист 2 категории, 1 категории, ведущий инженер-программист и т.д. Но в профессиональной среде приняты немного другие градации опыта специалиста. Наиболее общим является следующее деление:

  • Junior - младший специалист
  • Middle - специалист
  • Senior - ведущий специалист

Junior

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

В некоторых компаниях есть практики активного обучения джуниоров, так как компании выгодно, чтобы человек рос в техническом плане, что позволит давать ему более сложные задачи. Получить должность джуниора вполне реально если Вы будете последовательно проходить курсы на нашем сайте и оттачивать свои навыки программирования. Начать же можно с нашего курса “Основы программирования”.

Middle

Мидл - это уже более-менее самостоятельный специалист, которому можно дать какую-то задачу и ожидать от него значительно более грамотный код (по сравнению с джуниором). Как правило, программисты в должности мидл работают несколько лет (2-3). На данном этапе очень важно не переставать учиться и расширять свой технический кругозор. На должности middle-программист люди как правило начинают более глубоко понимать технологии и писать более грамотный код.

Senior

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

А что дальше?

Развитие технического специалиста не останавливается на должности senior - программиста. Стоит еще сказать о таких направлениях развития как руководитель группы (Team Lead), Архитектор (Architect), проектный менеджер (Project Manager).

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

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

Project Manager - это первая не техническая ветвь развития программиста. PM занимается координацией проекта, смотрит за соблюдением срока и как правило выступает некой связкой между проектной командой и заказчиком проекта (как правило, но необязательно. в некоторых случаях команда напрямую взаимодействует с заказчиком).

Итак, мы постарались описать то, как развивается специалист в процессе своей работы. Первые три ветви - обязательный: junior, middle, senior. А дальше - каждый сам может выбирать в каком направлении ему хотелось бы двигаться.

Если человеку нравится разрабатывать ПО и писать код и он хочет как можно меньше административных забот, то вполне может продолжать работать на должности Senior.

Если программист хочет попробовать себя на более руководящей должности, но с техническим контекстом, то может пойти в сторону руководителя группы (Team Lead)

Некоторым очень нравится проектирование. В этом есть определенный шарм. Еще до непосредственной разработки Вы можете на бумаге спроектировать большую систему и определить как компоненты этой системы будут взаимодействовать между собой. Такой работой занимаются архитекторы.

Кто-то просто устал от технической работы и хочет выполнять 100% административную работу. Здесь специалист может пойти по направлению Project Management. Хороших менеджеров еще меньше, чем хороших технических специалистов, поэтому это направление тоже очень перспективное. Но не нужно забывать: что хороший проектный менеджер - как правило бывший технический специалист. То есть он довольно хорошо разбирается в технологиях и способен понимать свою команду на техническом уровне (хотя видел я парочку менеджеров "из народа". впечатление то еще).