Как быстрее стать мидлом в Java — советы разработчика

25 сентября 2024
5 мин.

На Open Day в DAR University Senior software engineer Мади Кинжеев поделился советами для начинающих IT-специалистов о том, как быстрее повысить свой грейд, то есть  профессиональный уровень.

Сам Мади владеет технологиями:

  • Java 8, 11, 17
  • Spring Framework
  • PostgreSQL
  • MongoDB
  • Redis
  • Git
  • Docker
  • Kubernetes
  • Kafka
  • RabbitMQ

Он разрабатывал backend для мобильных приложений Sber Kz, Jusan Business, HalykMarket. Сейчас принимает участие в разработке ERP-системы для автоматизации бизнеса Darlean.

На мастер-классе собрались более 20-ти человек, среди которых были новички и уже работающие по специальности. Они получили возможность “пощупать” профессию разработчика — выполняли практическое задание по поиску совершенных чисел в диапазоне от 1 до 100 тысяч.

Миссия DAR University заключается в UPSKILL — помощи в получении новых, полезных и практических навыков в уже известной вам сфере и RESKILL — помощи в изучении совершенно новой сферы для студента.

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

В IT после 30: как построить карьеру с нуля?

Чем отличаются джуны, мидлы и сеньоры друг от друга?

Junior-специалист. Работает при поддержке других разработчиков. Владеет основами языка, синтаксисом Java, фреймворком Spring Boot. Может написать простой API, сделать простые запросы к базам данных.

Middle-специалист. Работает самостоятельно. Иногда обращается за советом или помощью к Senior специалистам.
Пишет читаемый и достаточно оптимизированный код, знает и использует тонкости языка.
Умеет работать с базой данных, писать сложные запросы, поддерживать транзакционность. Имеет понимание технологий развертывания приложения таких Docker, Kubernetes. 

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

Итак, как быстрее стать мидлом?

Какие технологии изучать для начала

Java 8 — одна из наиболее популярных версий языка в Казахстане

Spring boot — фреймворк для разработки приложений.

Postgres — реляционная база данных.

MongoDB — нереляционная база данных.

Системы логирования для отладки приложений:

Grafana — это инструмент для визуализации данных. Он помогает строить графики и диаграммы на основе данных, включая логи, что позволяет легче анализировать проблемы.

ElasticSearch — это поисковый движок, который помогает быстро находить нужные данные среди логов. Он особенно полезен, когда логов много, и нужно быстро найти конкретную информацию.

GIT — система управления версиями. 

Docker — система для развертывания приложений на удаленном сервере.

Как получить первую работу?

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

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

Берите как можно больше задач

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

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

Будьте инженером, а не разработчиком

Действительно, Docker зачастую пользуются DevOps-инженеры, специалисты, ответственные за поддержания софта в рабочем состоянии и автоматизацию каждого этапа разработки. Но это заблуждение, что девопсы выполнят всю работу за вас.

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

Изучате больше одного языка программирования

Вы должны уметь адаптироваться. Сегодня вы получили оффер на Java-разработчика, а завтра ваша компания скажет: “Переходим на Kotlin”. Такое происходит. Но, даже если ваша компания не сменит язык разработки, может быть принято решение написать какой-то из сервисов на другом языке, например, Go.

Пишите эмпатичный код

Вы не должны быть разработчиком в вакууме. Старайтесь писать такой код, чтобы его понимали другие люди. Процентов 70 своего рабочего времени разработчик читает, а не пишет код. Читать разного плохого и хорошего кода придется много, поэтому запаситесь терпением и черпайте лучшие практики.

Не бойтесь галер

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

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

Развивайте гибкие навыки

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

Сейчас я участвую в разработке функционала для проекта Darlean.kz. Это платформа для управления бизнесом, которая состоит из более чем 30-ти инструментов. В числе модулей есть цифровой офис, управление проектами и процессами, электронный документооборот.

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