В IT-компаниях разработчиков принято разделять на несколько уровней, в зависимости от их квалификации. Четких правил градации не существует, однако есть определенные критерии, которым должен соответствовать специалист, претендующий на ту или иную должность.
Что такое градация специалистов и для чего она нужна
Под градацией понимают маркер компетенций разработчика. Он отражает его знания и профессиональные навыки. Данный термин внедрили HR-специалисты, для того чтобы оценивать «стоимость» сотрудника на рынке труда. Поскольку общепринятых критериев оценки нет, компании самостоятельно определяют пул знаний и умений для каждой из ступеней.
Довольно часто случается так, что в одной компании сотрудник занимал определенную должность, а при переходе в другую – он получает совсем иной статус. При этом далеко не всегда речь идет про повышение. В IT-сфере выделяют три основных позиции:
- junior (джун) – младший разработчик отвечает за несложные задачи. Его работа контролируется более опытными программистами;
- middle (мидл) – разработчик среднего уровня способен сам писать код и решать с его помощью сложные задачи. Старшие коллеги только анализируют и проверяют полученные результаты;
- senior (сеньор) – полностью самостоятельная единица. Он разрабатывает архитектуру проекта, пишет код, помогает менее опытным сотрудникам, решает наиболее сложные задачи и несет ответственность за итоговый результат.
Кто такой джун
Позиция junior-разработчика подразумевает минимальный опыт работы или полное его отсутствие. У данного сотрудника практически отсутствуют практические навыки. Он знает теорию, но применить ее в условиях реального проекта для него проблематично. У джуна еще не сформировано продуктовое мышление и плохо развиты софтскилы, получение которых невозможно без практики.
Новички плохо понимают, как нужно выстраивать взаимоотношения с другими участниками команды, чтобы избежать конфликтных ситуаций и сделать совместный рабочий процесс максимально продуктивным. Как правило, джуны занимаются выполнением простых задач, которые они получают от более опытных коллег. Например, добавить определенную функциональность, имеющую конкретные ограничения.
В процессе решения поставленных задач, у junior-специалистов возникают вопросы. Сначала нужно попробовать найти ответы самостоятельно, а только потом обращаться за советом к коллегам. Из-за нехватки опыта, код начинающего программиста может быть нелогичен и иметь сложную архитектуру. Навык написания простого и чистого кода приходит только с опытом. Именно поэтому за джуном закрепляют более опытного разработчика.
Чаще всего, компании приглашают к себе джунов, чтобы вырастить из него опытного и самостоятельного разработчика, способного решать сложные задачи. Руководство заинтересовано в профессиональном развитии такого специалиста, поэтому старается ему всячески помогать, например, оплачивает обучение или отправляет на курсы и тренинги.
Что должен уметь junior-специалист
В последние несколько лет, требования к junior-разработчикам заметно возросли. Это связано с обилием начинающих специалистов на рынке труда. Многочисленные онлайн-курсы, позволяют освоить азы любой профессии всего за несколько месяцев. Чтобы выбрать действительно лучших, компании стали расширять перечень требований.
Раньше начинающему frontend-разработчику было достаточно знания лишь базовых технологий (HTML, CSS и JavaScript). Сегодня к этому стеку добавилось умение работать хотя бы на базовом уровне с одним из фреймворков (Angular или React). В будущем, скорее всего, требования продолжат увеличиваться.
Перечень профессиональных навыков, которыми должен владеть джун, отличается в зависимости от выбранного направления. Для веб-разработчиков – это графические редакторы, для bakend-специалиста – знание наиболее популярных CMS-систем. Важно понимать, что при подборе junior-специалистов, многие компании не особо обращают внимание на коммерческий опыт. Гораздо важнее наличие подходящих работ в портфолио.
Что должно быть в портфолио junior-разработчика
Важность портфолио для junior-разработчика сложно переоценить. Оно поможет подтвердить знания и навыки, что особенно актуально при отсутствии опыта коммерческой разработки. Портфолио должно содержать:
- кейсы – это те проекты, которые специалист выполнял во время своего обучения и после него. Самое главное, это качество представленных работ;
- работы на GitHub – размещенные здесь проекты, покажут работодателю, что соискатель понимает принцип работы системы контроля версий;
- конкурсные проекты – они необязательно должны занимать призовые места, гораздо важнее сам факт участия в подобных мероприятиях. Они продемонстрируют работодателю, что специалист готов развиваться в профессиональном плане, у него есть мотивация к обучению.
Помимо профессиональных навыков, джунам не стоит забывать про софтскилы. Здесь важны следующие качества:
- общительность – в силу нехватки опыта, придется много общаться с коллегами, спрашивать у них советы и просить помощи;
- самокритичность – не стоит обижаться на критику. Важно исправить ошибки и сделать соответствующие выводы, которые помогут их не повторить в будущем;
- отзывчивость – каждый участник команды должен быть открыт к помощи и поддержке;
- любознательность – чтобы активно развиваться в профессии требуется постоянно изучать что-то новое, применять полученные знания на практике, экспериментировать и перенимать опыт у коллег;
- ответственность – задачи необходимо выполнять в срок. Если возникают трудности, нужно самостоятельно вникнуть в суть проблемы и разобраться. Только после этого стоит обращаться за помощью.
Работая в команде, важно проявлять внимание к деталям. Если в ходе диалога в чате, появляется необходимость сослаться на информацию из документа, то его стоит прикрепить к сообщению. Это сэкономит время коллегам и сделает совместную работу продуктивнее.
Кто такой middle
Постепенно junior нарабатывает практический опыт, узнает все больше особенностей работы в компании, начинает уверенно пользоваться различными инструментами: фреймворками, языками программирования, СУБД и системами контроля версий. В этом случае он может перейти на новую ступень – мидл-разработчик.
Middle – это специалист, имеющий несколько лет практического опыта и умеющий самостоятельно писать программный код. Он владеет несколькими языками программирования, а также активно пользуется дополнительными технологиями. К примеру, middle backend-разработчик помимо серверных PHP, знает Angular, то есть может взять на себя часть задач по созданию frontend-части.
Мидл умеет объяснить сложные вещи простым и понятным языком. Написанный им код уже не проверяют, поскольку он хорошо знаком с языком, знает все базовые принципы, паттерны и концепции. Такой специалист в состоянии сам себя контролировать, то есть он сможет найти ошибку у себя в коде, скорректировать логику и сделать код более простым и лаконичным.
Middle понимает как решить задачу эффективнее и быстрее. Он предлагает нестандартные способы решения поставленных задач. В этом ему помогает насмотренность и опыт, которого нет у junior-специалистов.
Что должен уметь middle-специалист
Работодатели очень ценят мидлов, поскольку именно на них держится вся основная разработка. Их будут всячески поддерживать, чтобы они как можно дольше оставались в компании и продолжали повышать уровень своей квалификации. На современном рынке труда, грамотных middle-разработчиков довольно мало, поэтому найти работу для них не составляет особого труда. Однако, требования к ним также из года в год повышаются.
Поскольку мидл несет ответственность за результат, он должен обладать обширными знаниями. В этом его главное отличие от джуна. Получить эти самые знания можно только с практическим опытом. Работа на реальных коммерческих проектах помогает понять, как с помощью кода можно решить задачи бизнеса. Как правило опыт работы должен составлять не менее 2-3 лет.
Многие считают, что программист может быть не общительным, однако это серьезное заблуждение. Коммуникабельность – важное качество, без которого работать просто не получится. Мидлу необходимо постоянно быть на связи, как с клиентами, так и с коллегами. Командная работа требует развитых коммуникативных навыков. Разработчик должен находить взаимопонимание, общий язык с разными людьми, искать компромиссы, разрешать конфликтные ситуации и договариваться. Особенно важно уметь четко и аргументированно излагать свои мысли.
По сути, мидл является универсальным сотрудником, который может быть и разработчиком, и наставником, и докладчиком. В каждой из этих ролей ему необходимо планировать рабочий процесс, демонстрировать идеи, проводить обучение и распределять задачи.
Выполнение всего этого требует навыков быстрого поиска нужной информации. Однако требуется не только ее найти, но и суметь корректно и оперативно обработать, чтобы внедрить в процесс реализации проекта. Каждая задача должна анализироваться отдельно, после чего декомпозироваться, то есть дробиться на несколько частей. Для каждой из них выставляется определенный дедлайн, за соблюдением которых также нужно следить.
Кто такой senior
Завершающий шаг в карьерной лестнице разработчика – позиция сеньора. Дальнейшее развитие подразумевает переход на должность тимлида, но в этом случае речь пойдет уже об управлении проектами и людьми. В этой работе будет намного меньше времени уделять процессу написания кода.
Задача сеньора писать не просто качественный и хорошо читаемый код, но и отражать в нем особенности бизнеса и инструментов, которыми он пользуется. Такой специалист глубоко погружен в архитектуру проекта, досконально знает устройство фреймворков, библиотек и других инструментов. Он в состоянии самостоятельного с полного нуля создать проект.
При этом senior умеет заранее просчитывать риски и минимизировать вероятность появления разного рода ошибок. Такой специалист понимает, каким образом изменить код, чтобы он корректно работал без «костылей» и «временных» решений. При необходимости он может сам написать любой функционал для проекта.
Главное отличие сеньора от мидла в том, что он может справиться с любой задачей, даже той, которую он никогда до этого не реализовывал. При этом полученный результат будет корректно работать и не приведет к глобальным проблемам.
Чтобы продолжать развивать свой путь в карьере, сеньору необходимо учиться решить даже плохо сформулированные задачи. Обычно у бизнеса есть идея, но нет четкого понимания и целей. Senior должен разобраться для чего создается тот или иной продукт, проанализировать все риски и подготовить четкий перечень задач, для каждого участника команды.
Что должен уметь senior-разработчик
Если разработчик претендует на должность senior, опыт работы перестает играть первостепенную роль. Куда важнее – образ мышления, уровень владения экспертизой и софтскилы. Чтобы работать с коммерчески успешными проектами, необходимо иметь соответствующий опыт. Аналогичная ситуация с софтскилами. Важно быть не просто коммуникабельным и неконфликтным. Нужно уметь общаться с людьми, далекими от разработки. Бизнес не интересуют технические аспекты, ему важно получить простой и понятный ответ на конкретный запрос.
Также не стоит забывать, что сеньору предстоит обучать новичков. Для этого необходимо уметь аргументировано преподносить свои замечания и объяснять сложные вещи простым и доступным языком. Поскольку именно senior отвечает за работу всей команды, на него возлагается огромная ответственность. С ней нужно уметь справляться. В противном случае, неуверенность будет передаваться коллегам, и добиться поставленных целей вряд ли получится.