Как стать мидлом из джуниор-разработчика за год

Posted by

Плох тот джун, который не мечтает стать мидлом. Статус мидла даёт возможность делать крутые проекты и увеличить зарплату в среднем в 2 раза.

Чтобы дорасти до мидла, придётся прокачивать разные хард- и софт-скилы: от знания фреймворков до коммуникативных навыков. В статье разберёмся, можно ли сделать это за год, и если да, то как.

Как устроены грейды в IT

Грейды — разделение одной должности на несколько категорий в зависимости от знаний и умений сотрудника.

В IT-сфере у специалистов три грейда: Junior, Middle, Senior. Грейдирование позволяет привязать зарплату к компетенциям работника, мотивировать и стимулировать его. Чтобы расти в деньгах и работать над более интересными проектами, разработчики прокачивают компетенции и повышают грейд.

Нередко можно услышать, что грейды в IT условные:

— разные компании к одному и тому же уровню специалиста выдвигают разные требования
— в некоторых компаниях деления на джунов и мидлов вообще нет

Но практика доказывает обратное. Мы изучили 100 открытых вакансий на hh.ru и увидели: компании часто ищут разработчиков определённых уровней, а требования к хард- и софт-скилам у джуна и мидла отличаются.

Чем отличается джун от мидла

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

Фреймворки

— Джун знает популярные фреймворки, например React, Laravel, Sinatra, Django, Spring. Задачи решает по шаблону, с помощью опытных коллег.
— Мидл уверенно владеет одним или несколькими популярными фреймворками. Разбирается в асинхронном программировании. Решает нестандартные задачи.

Git и GitHub

— Джун знает о проектах на GitHub. Может к ним присоединиться, чтобы помочь исправить документацию или несложную ошибку. Пишет код и отправляет его опытным коллегам на ревью и публикацию.
— Мидл работает с Git: возвращается к исходным файлам, просматривает историю изменений, восстанавливает любые данные, работает с файлами вместе с коллегами. Размещает проекты на GitHub, ведёт ветки, делает коммиты.

Алгоритмы

— Джун понимает основы алгоритмизации, но практического опыта нет.
— Мидл знает и использует алгоритмы для эффективного решения задач.

Инструменты разработки и инженерные практики

— Джун навыком не владеет.
— Мидл умеет покрывать код тестами и правильно его организовывать.

Код

— Код джуна работает, но его трудно читать и поддерживать.
— Мидл пишет чистый простой код, который легко поймут другие члены команды. Понимает принципы контейнеризации приложений. Умеет работать с Docker.

Понимание бизнес-потребностей

— Джун выполняет задачу без привязки к конкретным целям бизнеса.
— Мидл умеет реализовать в коде то, чего хочет бизнес. Понимает, как воплотить идею в жизнь с учётом технических возможностей.

Умение составлять план и работать по нему

— Джун не умеет строить план по решению крупной задачи. Получает задание и сразу начинает его выполнять тем способом, который знает.
— Мидл, прежде чем кодить, продумывает план. Может аргументировать, почему выбрал тот или иной вариант.

Насмотренность

— Джун знает 1-2 способа, как решить задачу.
— Мидл знает современные тренды. Видел и отмечал хорошие решения других разработчиков, использует их в работе.

Самостоятельность

— Джун работает под руководством опытных коллег.
— Мидл самостоятельно справляется с задачами.

Форс-мажоры

— Джун иногда не знает, за что взяться, чтобы решить проблему.
— Мидл пытается разобраться в задачах, с которыми не сталкивался.

Коммуникативные навыки

— Джун, если что-то не знает, задаёт абстрактные вопросы: «Как исправить?», «Что делать, чтобы работало?»
— Мидл, если возникла проблема, понимает, что нужно исправить. Задаёт коллегам конкретные вопросы. Анализирует работу менее опытных сотрудников. Подсказывает, как улучшить решение. Делится опытом и знаниями с новичками и стажёрами.

Как можно повысить свой грейд: 3 способа

Опытные разработчики утверждают: чтобы подрасти, джуну понадобится от года до трёх лет.

Сделать это можно несколькими способами.

Окончить курсы

Чаще всего специализированные курсы проходят онлайн, учиться в лучших школах можно из любой точки мира. Главное достоинство курсов — студенты изучают и отрабатывают на практике только актуальные инструменты, которые востребованы у работодателей.

Иногда курсы проводят и сами работодатели. Например, в школе «МТС.Тета» обучают Golang-разработчиков, аналитиков, фронтендеров и т. д. Так компании выращивают специалистов под свои задачи и приглашают их на работу.

!как стать мидлом

Поработать стажёром

Крупным компаниям выгодно брать новичков на стажировки: воспитать нужного специалиста внутри проще, чем искать его в другом месте. А для соискателей это отличная возможность подзаработать, перенять опыт коллег и поработать над продуктами, которыми пользуются миллионы людей.

Если стажировка пройдёт удачно, можно остаться в компании уже на правах полноценного сотрудника.

!как стать мидлом

Например, в МТС сейчас набирают тестировщиков, разработчиков, аналитиков.

Самостоятельно

Прокачать скилы исключительно своими силами сложно по двум причинам:

— нет обратной связи по отработке знаний на практике;
— нужен высокий уровень самодисциплины.

Из-за этого на повышение грейда может уйти больше времени. Но обучение на курсах тоже не гарантирует ни быстрый и лёгкий вход в IT, ни мгновенное развитие карьеры.

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

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

Есть много способов повысить грейд бесплатно:

— смотреть видео на YouTube;
— читать книги и статьи;
— консультироваться с опытными разработчиками, которые помогут составить дорожную карту обучения;
— проходить бесплатные курсы, одобренные IT-сообществом (про них мы рассказывали в этой статье).

Конечно, на самостоятельное обучение потребуется больше времени: на учёбу придётся тратить 3–5 часов ежедневно. Можете ли вы себе это позволить, или работа, семья и домашняя рутина съедают каждую свободную минуту — это уже другой вопрос.

Пошаговый план: как джуну стать мидлом за год

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

Например, курс для ‎Python-разработчика выглядит примерно так.

В первый месяц студенты изучают и отрабатывают на практике:

— Понятие «Качество кода». Стандарты оформления кода.
— Работу с системой контроля версий Git.
— Создание схемы базы данных и определение необходимых ограничений целостности.
— Процесс вставки данных.
— Нереляционные базы данных на примере NoSQL.
— Выбор фреймворка. Базу данных Django.

Во второй месяц:

— Технологии ORM.
— Разработку серверной части Python с помощью Django.
— Платформу Docker.
— Фазы обработки запросов Nginx.

В третий месяц:

— Поисковую систему Elasticsearch.
— Полнотекстовый поиск и архитектуру ETL.
— Асинхронный подход, итераторы, генераторы и корутины.
— Асинхронные фреймворки: Twisted, AIOHTTP и FastAPI.

В четвёртый месяц:

— Код-ревью: понятие и общие требования.
— SOLID-принципы программирования.
— Этапы и виды функционального тестирования.
— Понятие API и плюсы работы с программным интерфейсом.

В пятый месяц:

— Сервис аутентификации и авторизации пользователя в проекте.
— Работу с чувствительной личной информацией: безопасность, шифрование, хеширование и управление доступом к ней.
— Flask и Redis.

В шестой месяц:

— OAuth 1.0, OAuth 2.0 и OpenID.
— Работу с капчей и двухфакторной авторизацией.
— Общение между микросервисами.
— Настройку устойчивости сервиса к нагрузкам и изменениям API.
— Внедрение в AsyncAPI авторизации, управление уровнем нагрузки и быстрое нахождение проблем.

В седьмой месяц:

— Работу и функции UGC. Планирование сервиса.
— Описание архитектуры и правила её проектирования.
— Выбор хранилища, событийную работу с данными и работу с Kafka.
— Подходы к хранению и обработке данных, которые не помещаются на один сервер.

В восьмой месяц:

— Ещё одно распределённое хранилище, хранение данных и оптимизацию хранения и обработки.
— CI/CD: построение непрерывной интеграции для приложения.
— Логирование в микросервисной архитектуре.

В девятый месяц:

— Сервис уведомлений.
— Механизм отправки сообщений пользователям и единую политику контактов.
— Проектирование системы коммуникаций.
— Устройство e-mail и шаблонизаторов электронной почты.
— Брокер сообщений RabbitMQ. Сервисы транзакционной рассылки писем и сокращённые ссылки.
— CI/CD-конвейеры.

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

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

Запомнить

В IT-сфере есть три основных грейда: Junior, Middle, Senior. Специалисты более высоких уровней отличаются от джунов тем, что умеют самостоятельно решать сложные задачи.

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

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

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

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