☕ Дорожная карта Java-разработчика в 2022 году

Рассказываем, что изучать и в какой последовательности, чтобы стать хорошим Java-разработчиком.

Статья подготовлена по материалам ютуб-канала BeTry.

1. Английский язык

Почему это важно:

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

2. Git

Что нужно знать:

  • git clone
  • git pull
  • git commit
  • git push
  • gist stash
☕ Подтянуть свои знания по Java вы можете на нашем телеграм-канале «Библиотека Java для собеса»

3. Операционная система

Определитесь, с какой ОС вам предстоит работать. Для автоматизации действий вам придется писать скрипты: в случае Linux — bash-скрипты, а на Windows — bat-скрипты.

4. Алгоритмы и структуры данных

Что нужно знать:

  • Алгоритмы сортировки.
  • Как работать с деревьями.
  • Понимать списки, очередь и стек.
  • Сортировки: сортировка пузырьком, сортировка слиянием и так далее.
  • Алгоритмы поиска.
  • Математика: как считать среднее арифметическое, среднее геометрическое и т. д.

5. Java Core

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

Java Basic

  • Базовый синтаксис.
  • ООП.
  • Дженерики – шаблонные классы, которые подстраиваются под то, что вам необходимо; хранят и обрабатывают любые типы данных, которые вы укажите при их объявлении.
  • Строки. Понимать, как делать сверку по шаблону, производить поиск в строках и т. д.
  • Коллекции для хранения данных: Map, List, Array, Set (часто спрашивают на собеседованиях).
🧩☕ Интересные задачи по Java для практики можно найти на нашем телеграм-канале «Библиотека задач по Java»

Потоки (Concurrency)

  • Thread.
  • Thread Pool.
  • Паттерны многопоточных приложений.

Java 8 Features

  • Lambda-функции (анонимные функции).
  • Stream.
  • Класс Optional.
  • Функциональное программирование и прочее.

IO

  • Понимать, как работать с файлами.
  • Networking (Socket).
  • Java NIO/NIO2 (часто встречается в вакансиях).

6. Tools

В совершенстве владеть своей IDE (Eclipse, IDEA, VSCode, vim) и понимать, как создавать приложения с нуля, как собирать приложения, какие плагины установить, пользоваться быстрыми клавишами и т. д.

Build (сборщики)

  • Maven — использует xml для описания проекта.
  • Gradle — использует язык программирования groovy для описания проекта.

Docker

  • Docker Compose.
  • Docker swarm.
  • Kubernetes.

Jenkins

Jenkins позволяет настроить непрерывную интеграцию, тестирование, публикацию ваших приложений.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека джависта»

7. Фреймворки и библиотеки

Для бэкенда

  • Spring: Spring Core (основа для создания сервисов), Spring Data (работа с БД), Spring cloud (работа с микросервисами), Spring Security (защита приложений).
  • Hibernate — для работы с базой данных.
  • Quarkus и Micronaut — позволяют быстро писать реактивные приложения.
  • Vert.x — асинхронный веб-фреймворк.

Для десктопа

  • JavaFX, Swing, AWT — для создания графического интерфейса в считаные часы.

Web basic (для фулстек-разработки)

  • JavaScript: Angular, Vue.js или React.
  • HTML5.
  • Bootstrap.

8. Тестирование

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

  • Библиотеки Junit, Mockito для тестирования действий при работе с базой данных.
  • Auto Testing — Selenium позволяет создавать окна браузеров, заходить на веб-страницу, тестировать клики, поля ввода и т. д.
  • Integration Test тестирует, как приложение встраивается в инфраструктуру и как оно в ней работает. Используемые библиотеки для написания сценариев: Selenium, Robot.

9. Utils

Углубиться в оптимизацию процесса работы и разработки:

  • Log4j, SLF4j (логирование) — отслеживают действия клиентов.
  • JavaDoc — описывает классы и в дальнейшем генерирует из этого документацию в формате .html или .pdf.

Java Analyze

Утилиты, которые помогают понять, где произошла ошибка:

  • Heap Analyzer.
  • Thread Dump Analyzer.

Java Analyze

  • Jira для трекинга задач.
  • GitLab, GitHub, BitBucked — необходимо уметь использовать сервисы для хранения исходного кода.
  • AWS — важно знать, что такое микросервисы, как микросервисы разворачиваются и т. д.
  • HTTP — приложение Postman, генерирующая запросы к серверам.

10. Базы данных

  • SQL — DML (язык манипуляции с данными), DCL (язык дает доступ к определенным базам данных и таблицам), TCL (работа с транзакциями), DDL (язык определения данных).
  • Как происходит подключение к БД с помощью драйвера JBDC.
  • Hibernate.
  • NOSQL.
  • MySQL.
  • MSSQL.
  • PostgreSQL.
  • MongoDB.
  • ClickHouse.

11. Оптимизация приложений

  • JMH.
  • JIT.
  • warmup.
  • JVM (OpenJDK, AdoptOpenJDK, Zulu, GraalVm).

12. Куда расти

  • Менеджер — работа с людьми.
  • Архитектор — продумывать схемы работы приложений.
  • Product Owner — совмещать разработку и менеджмент.

Скачать дорожную карту

Диаграмма в формате .pdf.

***
Статья написана в рамках программы Proglib Boost, в которой «Библиотека программиста» бесплатно помогает IT-блогерам распространять их контент. Отправить заявку на участие можно по ссылке.
***

Материалы по теме

Источники

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

admin
16 апреля 2019

ТОП-6 алгоритмов сортировки на Java для новичков

Изучение алгоритмов сортировки на языке Java поможет не изобретать велосипе...
admin
11 января 2019

ТОП-10 лучших книг по Java для программистов

Не имеет значения, хотите вы улучшить скилл или только собираетесь начать и...
admin
05 апреля 2017

6 книг по Java для программистов любого уровня

Подборка материалов по Java. Если вы изучаете его, то обязательно найдете д...