Cakeprogress / java-roadmap-sng-main

java-roadmap-sng-main

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

📜 Roadmap Java developer [СНГ]

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

Содержание

JAVA CORE

Это целый ряд тем. Оновные: ООП в Java, Ветвление, Циклы, Массивы, Исключения, Коллекции, Внутренние классы, Ввод-вывод, Многопоточность, Stream API, и еще разный ряд базовых принципов для использование всего, например основные классы Java (Object) и тд.

Дополнительный материал

Ниже лекции от Головача которые покрывают пробелы в знаниях.

ALGORYTHMS & DATA STRUCTURES

Нужно уметь применять наиболее эффективные способы решения некоторых задач, а для этого стоит быть в курсе базовых алгоритмов и структур данных: Algorythms(Различные сортировки, поиск значений, поиск кратчайшего пути и тд.), Data Structures(Списки, Очереди, Мапы, Деревья, Графы и прочее).

  • Книги. Грокаем алгоритмы Б.Адитья | Алгоритмы. Построение и анализ
  • Практика:
    • Вариант 1. Заходим на сайт LeetCode в разделе Explore заходим в лист Top Interview Questions (Easy / Medium / Hard) -> берем задание -> смотрим теги задачи(Related Topics) -> берем книгу и читаем нужную тему.
    • вариант 2: читаем книгу -> узнаем новый алгоритм или структуру данных -> пытаемся написать код который делает тоже самое(сортировки, списки, очереди, поиск в ширину).
    • вариант 3: решаем задачки по теме на Codewars или HackerRank.
Дополнительный материал

SQL & JDBC

HTTP & SERVLETS

Дополнительный материал

MAVEN & GRADLE

SPRING

Содержит множество компонентов для работы с разнообразными задачами. Spring MVC(для разработки веб-приложений), Spring Data(для работы с бд), Spring Security(для обеспечения безопасности приложений) и тд. Нужно разобраться с базовыми принципами работы с спринг, на чем все строится. Spring Basics(IoC Container, Spring Beans, Bean Configuration, Bean Wiring и тд).

Так же на данном этапе будет хорошим тоном понимать правила/принципы/подходы/стили проектирования такие как: The Clean Architecture, REST, SOLID, MVC:

JPA & HIBERNATE

Спецификация, описывающая, как удобно представлять данные из бд в виде Java объектов. Спецификация не является фреймворком. Она только показывает, что должен уметь реальный фреймворк. А вот фреймворк уже реализует спецификацию. т.е. реальная работа происходит как раз в нем. Hibernate(фреймворк, реализующий спецификацию jpf), ORM(общее понятие для представления данных из бд в виде java объектов, тогда каждая строка таблицы становится java объектом).

TESTING

Позволяет убедиться, что вы не допустили ошибку при написании программы. Это как бы набор маленьких программ на Java, которые проверяют правильность вашей основной программы. Также гарантируют, что будущие изменения кода программы не затронут старую логику. Таким образом вы всегда будете уверены, что ничего не сломали. Это серьезно ускоряет разработку, т.к. вам не приходится каждый раз проверять потенциальные баги. Junit(Java фреймворк для написания тестов самых разных видов), Integration(прекрасно работает в паре с другими фреймворками, например Spring). Стоит просто разобратся какие бывают виды тестов на джава, как их писать на Junit, что такое моки и тд.

Лекции которые покрывают пробелы в SQL & JDBC | HTTP & SERVLETS | MAVEN & GRADLE | SPRING | JPA & HIBERNATE | TESTING

Ссылка на лекции:

*Log4J:

Альтернативная карта по пунктам
  • ООП
  • Object (знать методы этого класса)
  • Exception (логирование, ловля их, обработка в логи)
  • Collections (больше всего спрашивают, надо очень подробно знать)
  • Generics (как применять, как он работает).
  • Concurrency (базовые знания) (монитор, лог, светофор, как работает многопоточность, как создавать тред)
  • GC (как он чистит мусор, как он работает, можно ли его заставить или нет) (9Урок49:20)
  • JDBC (mybatis / hibernate) (как создавать коннект, как создавать пул, работать с бд)
  • Maven (меньше всего спрашивают) (как он устроен и как им пользоватся)
  • Lamda (как она работает, как оно устроено, черный ящик)
  • Stream (как работает)
  • String (и память) (Часто спрашивают!) (работа с памятю, как он копирует, и многое другое)
  • SQL (лучше postgre) Надо знать основы, не более! (главное понять как с ним работать)
  • SOLID (как правильно программировать, понятия ООП, интерфейсы и тд.)
  • Уровни изоляции транзакций sql (isolation levels) (грязно чтение, понимание что будет происходить на уровне бд если человек читает эту запись, а другой изменяет какие то данные, какие данные будут у них видны)
  • Тестирование (хотя бы понимание как это делать и зачем). (создать мини метод, сделать на него тест, на истину/ложь и на ошибку)
  • Паттерны (хватит поверхностных знаний) (минимальные знания, рассказать что они из себя представляют, знать самые базовые и популярные, сингл тон, прокси)
  • Spring (базовые знания)
  • Git (хватит базы, уметь использовать на практике)

После подготовка к работе

Дополнительный материал

Так же вы можете поддержать автора чеканной монетой.

About

java-roadmap-sng-main