Чего ждёт рынок от java-разработчика уровня middle
Привет! Меня зовут Игорь Честнов, я автор на курсе «Мидл 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.