Кем ты видишь себя через 5 лет? Рекрутеры и HR-менеджеры не устают задавать это вопрос, а кандидаты продолжают скромно отвечать: middle, senior, team lead.
Но каким путем достичь этих профессиональных уровней? Что нужно сделать, чтобы выбраться из позиции junior и с гордостью написать в LinkedIn middle? И как выглядит дальнейшее карьерное развитие? Чем middle принципиально отличается от senior? Отвечаем на эти вопросы в статье и разбираем ключевые навыки разработчика на каждом этапе.
Как стать junior разработчиком?
Для начала разберемся в терминах. В общем понимании junior — это новичок с минимально необходимым багажом знаний для самостоятельного выполнения задач. Для лучшего понимания поделим junior-специалистов на 4 категории:
- Стажер (trainee) — Это человек, который находится на шаге до того, чтобы стать junior-разработчиком. Trainee уже знают основы языка программирования, однако применять его для решения реальных задач еще не умеют. Каждая задача должна быть разписана пошагово от А до Я. В основном, это стажировка. То есть trainee работает на опыте, но о фиксированной зарплате пока не идет речь.
- Junior-новичок. Это стадия, на которой junior получает первый оффер на фултайм, а вместе с тем свои первые реальные задачи. Такой разработчик имеет достаточно знаний, чтобы выполнять простые задачи без детального описания. Новичок умеет работать с документацией и находить в ней нужную информацию. Главные задачи на этом этапе — «набивать собственные шишки», учиться у опытных коллег и задавать много вопросов..
- Middle junior developer. На этом этапе уже можно покупать футболки с IT-шными приколами. Испытательный срок за плечами, а все процессы командной разработки уже понятны. Теперь этому специалисту можно давать задачу и не контролировать ее выполнение в течение дня. Самостоятельно декомпозировать задачи такой junior еще не умеет, но уже ставит более глубокие и конкретные вопросы.
- Strong junior. Это категория, на которой специалист по техническим навыкам уже middle или очень близкий к нему. Последнее, чего не хватает, — это существенный опыт в решении бизнес-задач.
Как стать middle developer?
Middle — это программист, который, в отличие от junior-специалиста, уже умеет решать свои проблемы самостоятельно. Но старшие коллеги могут помочь, если возникли трудности, с которыми middle не может до конца разобраться без помощи.
Требования к владению технологиями в каждой компании могут отличаться, поэтому мы в общих чертах опишем то, что обычно ожидают от middle-специалистов.
Hard skills
- Понимание технологий, используемых в работе. Middle-специалист должен хорошо разбираться в программе, которую он пишет. Важно понимать, как работают определенные конструкции языка и уметь объяснить это другому человеку простыми словами.
- Проведение code-review. Умение разбираться в чужом коде — прекрасный способ поделиться своим опытом. Кроме того, это позволяет понять общую структуру программы и увидеть места, которые можно улучшить.
- Умение декомпозировать задачи. Обычно программист среднего уровня пишет код дольше, чем junior. Это связано с тем, что опытный специалист сначала должен разбить свою задачу на несколько последовательных этапов и ответить на вопросы, почему план выглядит именно так. В дальнейшем это поможет аргументировать свои решения. Также это тренирует умение разбираться в чужом коде.
- Насмотренность и любопытство. Для того, чтобы принимать правильные решения, необходимо увидеть множество плохих и хороших решений других разработчиков. Специалист среднего уровня (вообще, как и специалист любого уровня) должен быть в контексте всего, что происходит в индустрии: технологии, практики, успехи и неудачи.
- Понимание алгоритмов и того, где их можно применять. Мир программирования меняется очень быстро, но алгоритмы остаются стабильными. Важно понимать причинно-следственные связи работы определенных вещей, а также применять алгоритмы на практике, вместо того, чтобы мучить себя сухим заучиванием.
- Умение писать понятный код. Опытный разработчик всегда пишет простой код, который будет понятен коллегам.
Soft skills
- Самостоятельность
- Умение видеть требования бизнеса
- Понимание конечной цели проекта
- Классные коммуникативные навыки
- Уровень английского Upper-Intermediate и выше
- Умение ясно доносить свои мысли
- Стремление к дальнейшему карьерному росту
Как стать senior разработчиком?
Senior developer — это сильный специалист, который владеет знаниями не только в программировании, но и в смежных областях. Начиная с этого уровня, программист может не только работать самостоятельно, но и вести проекты.
Основное задание senior специалиста — принимать правильные технологические решения в проекте — то есть такие, которые приносят максимальную пользу бизнесу и минимизируют расходы.
Путь к этой позиции долгий и сложный. Опыт — это не то, что всегда можно измерить в годах, но в среднем до уровня старшего можно дойти за 5-7 лет интенсивной работы.
Так что же нужно иметь/знать/уметь перед тем, как подаваться на performance review на этот профессиональный уровень?
- Опыт. Главный показатель опытности — успешно запущенные IT-продукты, которые работают и решают определенную задачу бизнеса.
- Технические навыки. Senior создает и продумывает архитектуру проекта, пишет инструменты для решения задач в разработке и фреймворки, которыми пользуются джуниоры и мидл-специалисты. От senior разработчика требуют не только найти решение, но и убедить в его правильности заказчика и команду.
- Понимание всей картины проекта. Для одной задачи существует множество решений, но именно senior разработчик способен определить, какое является оптимальным в конкретном случае.
- Коммуникативные навыки. Senior программист часто ведет проекты самостоятельно, поэтому очень важно уметь обрабатывать ТЗ (техническое задание) заказчика, задавать правильные вопросы, устанавливать сроки выполнения и строить план работ. Кроме того, работа в команде все еще остается очень важной составляющей. Senior умеет организовать рабочий процесс и не боится таких терминов, как Agile, Scrum и Kanban.
- Навыки ментора и интервьюера. Подбор персонала и обучение новичков часто лежит на плечах senior-разработчика. Опыт позволяет выбрать, какие вопросы ставить, чтобы определить сильные и слабые стороны кандидата, а также как организовать рабочий процесс для тех, кто уже прошел собеседование.
А что дальше? Куди расти senior?
Senior — це dream этап для каждого программиста. Прямо сейчас рекрутеры соревнуются за таких специалистов и делают самые выгодные предложения. На этом уровне можно не беспокоиться, что тебя уволят из-за малейшей ошибки, потому что таких специалистов на рынке мало.
Однако это не повод расслабляться и больше не ставить перед собой целей. Senior программисты, как никто, знают, насколько важно постоянно развиваться, осваивая новые и новые горизонты. Они никогда не ограничиваются одним набором инструментов, потому что в стремлении к оптимизации рабочего процесса так или иначе приходится обращаться к чему-то новому.
Куда может развиваться senior-разработчик?
Техлид (Tech Lead)
Также CTO (Chief Technical/Technology Officer) или CIO (Chief Information Officer). Это специалист, который строит архитектуру для всей команды и является самым сильным разработчиком в команде. Именно техлид выбирает техническое решение задачи: предлагает использовать определенные фреймворки, технологии и библиотеки. В обязанности также входит проверка кода и решение самых сложных или ответственных технических задач.
Тимлид (Team Lead)
Это опытный программист и хороший менеджер одновременно. Основное задание — комбинировать технически грамотные решения с управлением командой.
Проект-менеджер (Project Manager)
Специалист, который координирует проект, организует взаимодействие между отделами, руководителями и заказчиками. В небольшой компании один специалист может объединять в себе роль тимлида и проекта.
IT-архитектор
Разработчик с большим опытом реализации коммерческих проектов, который умеет закладывать архитектуру (каркас) сложной IT-системы. Главная задача IT-архитектора — найти оптимальное решение между потребностями заказчика и возможностями команды.
Можно долго дискутировать о том, сколько времени нужно, чтобы добраться до карьерных вершин. Но у каждого свой темп и свои цели. Неизменным остаётся одно — в IT почти невозможно исчерпать себя и достичь потолка. Постоянное развитие, стремление к крутым проектам, драйвовая команда, амбициозные цели и четкое понимание их воплощения — это и есть план реализации собственного профессионального потенциала.
Если тебе нравится IT сфера и ты только думаешь о карьере в айти, пройди наш профориентационный тест. Узнай, какая специальность подходит именно тебе. Или выбирай один из наших it курсов и успешно расти от Junior до Senior и выше 😉