Java Roadmap 2024. Как изучать Java для бэкенда.

Если вы только решили начать изучать java, или ищете возможности для развития, этой статьей постараюсь помочь.

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

Junior или middle разработчику часто бывает трудно сказать, какие шаги следует предпринять, чтобы расти дальше. Я потратил несколько дней, собирая все навыки, которые можно ожидать от senior Java-разработчика.


Общие знания в области ИТ. Senior разработчик должен хорошо понимать не только Java и Spring, но и всю ИТ-среду: типичные шаблоны проектирования, протоколы передачи данных, форматы кодирования данных, брокеры сообщений, инструменты мониторинга и т. д. Это также включает в себя базовые знания, алгоритмы, знание работы компьютера и хотя бы основы математики.



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

  • Синтаксис
  • Типы данных, переменные
  • Условия
  • Функции
  • Структуры данных
  • ООП, классы и интерфейсы
  • Работы с файлами и API
  • Управление памятью
  • Коллекции
  • Сериализация
  • Работа с сетью
  • Обобщенные типы
  • Стримы
  • JVM
  • Сборка мусора
  • Работа с потоками


Java фреймворки и библиотеки — существует множество различных библиотек, но я бы выбрал пару, которая де-факто является лидером отрасли:

  • Spring
  • Spring Boot
  • Hibernate
  • Spark
  • Mockito
  • Wiremock
  • Logback

Системы сборки

  • Maven
  • Gradle


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



Как работает Интернет. Я бы сказал, что 99% серверной части Java работает в среде Интернет/интранет. Ни один опытный разработчик не сможет игнорировать хотя бы основы организации Интернета.



Работа в команде – ну, это «хорошо иметь» навыки. Но скажем откровенно: мягкие навыки часто имеют гораздо большее значение, чем жесткие. Младшие разработчики, пожалуйста, никогда не пренебрегайте этим.