JAVA ROADMAP
1
JAVA CORE - START
Установка java
Установка IDE
Переменные и типы данных
Операторы
Условные операторы if/switch
Методы
Циклы for/while
Массивы
2
JAVA CORE - BASE
Классы и объекты
Работа со строками. Класс String
Регулярные выражения
ООП: Наследование
Инкапсуляция
Полиморфизм
Абстракция
Абстрактные классы
Интерфейсы
Generics (Обобщения)
Enum (Перечисления)
Модель памяти (Heap, stack)
Garbage Collector (Сборщик мусора)
Collection (Коллекции)
Map (Карты)
Сортировка коллекций
Хэширование
Исключения
Debug (отладка программы)
Потоки ввода-вывода(работа с файлами)
Пакет java.time (работа со временем)
Многопоточность
Пакте java.util.concurrent
Lambda и функциональные интерфейсы
Stream API

3
JAVA CORE - ADVANCED
S.O.L.I.D.
Design Patterns
Reflection
Annotation
Lombok (сокращение синтаксиса)

XML/JSON

Тестирование (Acceptance, Integration, Unit)

4
ВЫБОР НАПРАВЛЕНИЯ
Backend (Java Enterprise)
Mobile (Android)
AQA (Автоматизированное тестирование)

BACKEND (JAVA ENTERPRISE) ROADMAP
1
MAVEN и JUnit 5
Научиться собирать проекты с помощью Maven и тестировать методы с помощью JUnit 5

POM конфигурация
Подключение библиотек
Жизненный цикл
Профайлы сборки
Многомодульные проекты
Сборка jar и war дистрибутивов

2
Apache Tomcat и Servlet API
Научиться работать с сервером приложений Tomcat
Изучить протокол HTTP
Научиться писать сервлеты
Освоить jakarta.servlet-api
Запуск своих web приложений на сервере Tomcat


3
SQL и JDBC
Установить базу данных (PostgreSQL)
Освоить язык запросов SQL
Научиться работать с JDBC - работа с базой данных из java приложения.

select/update/create/delete
DDL
Нормальные формы
JOIN
Индексы
План выполнения запросов

Jdbc Driver
Properties files
java.sql package
Batch запросы
Connection pool
DAO
4
Hibernate
Освоить фреймворк для работы с базами данных.

ORM
Entity
Session
Mapping
Lazy loading
Caches
HQL, JPQL
JPA Criteria
ACID
Transactions
5
Spring
Большинство приложений на java создаются на Spring framework - это целая экосистема фреймворков.

Spring Core
Spring MVC
Spring Data
Spring Security
Spring AOP
Spring Boot
Spring Caches
Spring Validation
Spring Testing
6
Git
Научиться работать с системой контроля версий

Version Control
Repositories
Commit, Push, Pull, Tags
Branching (merge, rebase)
Git Flow
github/gitlab
7
Docker и Kubernetes
Современные системы создаются в микросервисной архитектуре.
Реализуют ее с помощью контейнерных технологий Docker и Kubernetes

Docker Cli
Image
Container
Dockerfile
Docker compose

Minicube
Kubernetes Cli
Kubernetes objects
load balancer ingres
8
Java Junior
У вас есть вся необходимая база для Java Junior Backend developer
BACKEND+ ROADMAP
1
Shell/Bash
Как правило приложения на java работают на unix системах. Поэтому важно изучить работу в командной строке
2
Gradle
Более современный сборщик проектов, который базируется на java подобном языке Groovy

Основы groovy
Жизненный цикл проекта
Task
Plugins
Зависимости
jar/war
Многомодульные проекты
Миграция Maven -> Gradle
Kotlin DSL
3
Apache Kafka
Современные микросервисные приложения используют чаще всего message broker kafka - менеджер обмена сообщениями между микросервисами

Cluster/Broker/Topic
Partitions/Replications
Consumers/Producers
4
NoSql (MongoDB, Cassandra)
Изучить одну из NoSQL базу данных - популярные MongoDB, Cassandra.
NoSQL базы применяются для хранения больших объемов связанных данных, главным преимуществом перед обычными реляционными базами состоит в высокой степени масштабируемости.

NoSQL
CQL
Data modeling
Architecture
Rea/write data path
5
Kotlin
Зачастую java разработчику требуется знание kotlin.
Kotlin это java подобный язык, который отличается более лаконичным синтаксисом и в нем есть дополнительные возможности.
6
ELK, Grafana
Разобраться с одной из систем логирования для аналитики работы приложения
7
CI/CD
Разобраться с технологией непрерывной разработки и интеграции кода
8
Java Middle
Вы middle разработчик если есть опыт работы, если нет - вы junior со знаниями middle
FULL STACK JAVA ROADMAP
1
HTML/CSS
HTML/CSS на поверхностном уровне должен знать любой программист
Для Frontend и Fullstack программиста это база, которую надо хорошо освоить
2
JavaScript
На чистом JavaScript уже редка пишут, но на основе его разработано множество фреймворков.
Чтобы из освоить, надо понимать JavaScript
3
React (JSX)
Angular (TypeScript)
Vue.js
Освоить один из популярных Fontend фреймворков
4
FULL STACK JAVA DEVELOPER
Вы можете все!