Как джуниор-разработчику вырасти до мидла за год
Проанализировали требования работодателей к разработчикам и выяснили, как стать мидлом за год и что для этого нужно.
3К открытий16К показов
Плох тот джун, который не мечтает стать мидлом. Статус мидла даёт возможность делать крутые проекты и увеличить зарплату в среднем в 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. Специалисты более высоких уровней отличаются от джунов тем, что умеют самостоятельно решать сложные задачи.
Разработчики могут качать хард и софт-скилы разными способами: самостоятельно, на стажировке и специализированных курсах. Первый способ, скорее всего, займёт больше времени, два последних — более эффективны.
Окончание курсов и стаж работы не повышают грейд автоматически. Просидеть пять лет на позиции джуна — так тоже бывает. Но год — это минимальный срок, за который реально вырасти до уровня мидла.
3К открытий16К показов