Чего ждёт рынок от java-разработчика уровня middle

72330b9a74d808cd5d0bae0f7b3add70.jpeg

Привет! Меня зовут Игорь Честнов, я автор на курсе «Мидл java-разработчик» в Яндекс Практикуме. В статье расскажу, каких навыков и компетенций работодатели ждут от java-разработчиков среднего уровня. А ещё приведу список полезных ресурсов, которые помогут джунам продвинуться в карьере. 

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

Коротко о профессии java-разработчик

Java-разработчик создаёт, поддерживает и улучшает программное обеспечение. Направлений в java-разработке много — и для каждого требуется знание своего набора инструментов и технологий. Перечислю основные направления:

  • Бэкенд-разработка. Этому направлению как раз посвящён курс «Мидл java-разработчик».

  • Мобильная разработка — правда, тут предпочтение часто отдаётся языку программирования Kotlin. 

  • Десктопные приложения. Редакторы Intellij, например, написаны на Java.

  • Поисковые задачи с Big Data.

С профессией java-разработчика разобрались. Теперь расскажу, кто такой мидл-специалист и какой скилсет (набор навыков) ему пригодится.

Кто такой мидл-специалист

Мидл (от англ. middle) — это профессионал среднего уровня квалификации, который может представить работодателю крепкое портфолио из реальных проектов, а опыт работы такого специалиста обычно — 2–4 года. 

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

Скилсет java-разработчика уровня мидл

Хардскилы

Софтскилы

✅Языки программирования. Отличное знание Java Core и Java Concurrency. Понимание объектно-ориентированного программирования, знание особенностей при работе с ним в Java.

✅Понимание бизнес-процессов. Сюда относится оценка рисков и последствий, работа со стейкхолдерами.

✅Фреймворки. Например, Spring Framework — это большая экосистема различных компонент. Обязательные — Spring Core, Spring Web, Spring Security, Spring Boot. В современной разработке активно используются компоненты Spring Cloud, знание их также будет плюсом.

✅Самостоятельность. Работа без контроля, навык находить и исправлять проблемы, самостоятельно принимать решения и оценивать задачи, управлять своим временем.

✅Базы данных. Например — PostgreSQL. Различные принципы и протоколы общения — rest, http, grpc. Принципы асинхронного взаимодействия — jms, kafka.

✅Развитые навыки коммуникации. Работа в команде — в том числе с коллегами, которые не погружены в технологии. Иногда придётся объяснять сложные технические вещи простым языком. Не стоит забывать про умение давать и принимать обратную связь, а ещё мидлу точно придётся помогать младшим разработчикам: отвечать на вопросы и терпеливо объяснять одно и то же по несколько раз.

✅Вспомогательные инструменты. Например, git, системы сборки — maven, gradle.

✅Умение логически рассуждать. И как следствие — аргументировать и защищать свои идеи.

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

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

✅Желание и умение быстро погружаться в новые технологии. Сфера меняется очень быстро, постоянно появляются новые инструменты, которые нужно осваивать и внедрять.

Что делать джуну, чтобы вырасти до мидла

Несколько советов для тех, кто хочет развиваться в профессии:   

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

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

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

Изучайте тренды в мире разработки. Для этого можно читать статьи — например, на Хабр, Baeldung — и смотреть записи с конференций — например, Joker, Jpoint. Сфера меняется стремительно, поэтому изучение трендов позволит вам всегда быть на коне. 

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

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

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

Полезные материалы

  • Цикл видео про Spring от Евгения Борисова и Кирилла Толкачева — база, которую должны знать все: «Spring-потрошитель (часть 1)», «Spring-потрошитель (часть 2)», «Spring-построитель», «Boot yourself/Spring is coming (часть 1)», «Boot yourself/Spring is coming (часть 2)», «Spring Patterns».

  • Лекции Тагира Валеева. Например, «Программирование на Java», «Многопоточность в Java». 

  • Лекции Алексея Шипилёва. Например, «Java-объекты наизнанку», «Перформанс: Что В Имени Тебе Моём?», «Shenandoah GC 2.0 (часть 1)», «Shenandoah GC 2.0 (часть 2)».

  • Гайды. Например, на Spring Learn. Тут собраны маленькие статьи на разные темы, начиная от Hello World и заканчивая Spring Cloud. 

  • Сервисы с онлайн-туториалами. Например, Java Tutorial от W3Schools — сервис с тренажёрами по разным языкам, в том числе по Java.

Книги

© Habrahabr.ru