Skip to content

📜Структурированный список ресурсов для изучения Java.

Notifications You must be signed in to change notification settings

iuurm/java-roadmap-sng

This branch is 66 commits behind borymskyi/roadmap-java-sng:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c0e293b · Jun 3, 2022

History

32 Commits
Jun 3, 2022

Repository files navigation

📜 Roadmap Java developer [СНГ]

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

Содержание

JAVA CORE

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

🔶 Java Core с нуля №1

🔶 Java Core продвинутый №2

🔶 Java Core детали от Головача

🔸 Книги. Покрывают все особенности языка: Философия Java Брюс.Экк, Java Полное руководство Г.Шилдт.

🔸 Книги. Для укрепления знаний и как их использовать должным образом: Java Эффективное программирование Д.Блох, Чистый код Р.Мартин.

🔺 Для закрепления темы можно потренироваться решая задачи: CodingBat, Практические задачи по Java, 1000 задач на Java, Codewars.

🔷 Можно еще покрыть пробелы в знаниях через конкретные лекции Головача:

Java Core Процедурное программирование(детали основ), итерация, рекурсия, динамические структуры данных, память в Java:

Additional#1.Dec2013(Сети база) №1

Additional#2.SQL.Dec2013 №2

(Итерация) Java Core December: Procedural Java. Лекция #1 №3

(Итерация) Java Core December: Procedural Java. Лекция #2 №4

(Рекурсия) Java Core December: Procedural Java. Лекция #3 №5

(Динамические структуры данных) Java Core December: Procedural Java. Лекция #4 №6

(Память в Java) Java Core December: Procedural Java. Лекция #5 №7

Исключения в Java, механика работы исключений, throws + checked/unchecked, иерархия исключений, классификация исключений, "устройство": message, cause, custom fields, сцепленные исключения, стратегии обработки ошибок, try-with-resources (+ suppressed exceptions), multi-catch (+ more precise rethrow):

(Основы иключения) Java Core December: Exceptions. Лекция #6 №1

(try-with-resources, иерархия) Java Core December: Exceptions. Лекция #7 №2

(checked/unchecked, иерархия) Java Core December: Exceptions. Лекция #8 №3

() Java Core December: Exceptions. Лекция #9 №4

Java I/O, byte-ориентированные потоки, char-ориентированные потоки, java-type-ориентированные потоки(классы-адаптеры, классы-декораторы, работа с файловой системой, сериализация и клонирование)

(кодировка) Java Core December: IO. Лекция #10 №1

(адаптеры/декораторы) Java Core December: IO. Лекция #11 №2

(адаптеры/декораторы) Java Core December: IO. Лекция #12 №3

Java Collection API (big-O notation, Java generics, Iterable / Iterator, Collection API (general), List/ArrayList/LinkedList, Set/List/Map/SortedSet/SortedMap, HashSet/HashMap/hashCode()/equals(), TreeSet/TreeMap/Comparable/Comparator, Collection API (detailed)):

Java Core December:Collections API. Лекция #13 №1

(дженерикс) Java Core December:Collections API. Лекция #14 №2

Продолжение Java IO, Стримы, адаптер/декоратор, клонирование, файловая система:

Java Core December: IO. Лекция #15 №4

Продолжение Java Collection:

(нотации О, equals list, сд хеш сет, мап и тд.) Java Core December: Collections. Лекция #16 №3

(хеш сет и хеш мап, структуры данных) Java Core December: Collections. Лекция #17 №4

Многопоточность(введение, Thread/Runnable run(), start(), join(), currentThread(), Модель памяти джавы, монитор, synchronized и многое другое, прерывание потока):

Java Core December: Multithreading. Лекция#18 №1

Java Core December: Multithreading. Лекция#19 №2

(монитор) Java Core December: Multithreading. Лекция#20 №3

Объектно-ориентированная Java(конструирование объекта, методы класса Object, перегрузка метода (overload), переопределение метода (overriding), и тд):

(конструирование объекта) Java Core December: OOP. Лекция#21 №1

Java Core December: OOP. Лекция#22 №2

(nested/inner) Java Core December: OOP. Лекция#23 №3

(singleton,enom,multiton) Java Core December: OOP. Лекция#24 №4

(gof, uml и тд)Java Core December: OOP. Лекция#25 №5

🔹 Ролики на Youtube которые могут помочь:

Основы работы со Stream API в Java

ALGORYTHMS & DATA STRUCTURES

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

🔶 Книги: Грокаем алгоритмы Б.Адитья, Алгоритмы. Руководство по разработке. 2-е издание С.Скиена, Структуры данных и алгоритмы Java Р.Лафоре, Алгоритмы. Построение и анализ.

🔶 Практика:

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

🔹 Ролики на Youtube которые могут помочь:

Советы от Ксении по алгоритмам

Гайды от Жени по структурам данных

LeetCode гайды от Жени

SQL & JDBC

🔶 Базы данных SQL | Основы SQL

🔶 JDBC: Введение в JDBC

🔶 Практика: Чтобы потренироватся, нужно взять пару задач на sql и написать прогу на джава которая будет входить в вашу собственную бд и выполнять там нужные запросы.

HTTP & SERVLETS

🔶 Java EE для начинающих

🔶 Практика: По прохождению курса что выше мы напишем простой сайт, просто стоит повторить написанное за автором. Затем можно добавить свои собственные сервлеты с дополнительной логикой. Также можно добавить свою базу данных, чтобы потренироваться в SQL & JDBC.

🔹 Ролики на Youtube которые могут помочь:

Как работает HTTPS

MAVEN & GRADLE

🔶 Лекция от Немчинского

🔶 Мавен основы на хабре

🔶 Гайд от принга по мавен и градл

🔶 Гайд по Градл

SPRING

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

🔶 Гайд от алишева Spring Core, MVC

🔶 Гайд на канале letsCode Spring Boot MVC

🔶 Гайд на канале letsCode Spring Boot Rest

🔶 Гайд на канале letsCode Spring Boot + Webix

🔶 Гайд от самого спринга

🔶 Статья на хабре о Спринге

🔶 Статья от Жени

🔶 Практика: Написать веб приложение вместе с letsCode / alishev и добавить туда свою логику.

JPA & HIBERNATE

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

  • поискать курсы на эту тему

🔶 Статьи Java Persistence API

🔶 Learn JPA & Hibernate

🔶 Статья от Жени

TESTING

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

  • Стоит просто разобратся какие бывают виды тестов на джава, как их писать на Junit, что такое моки и тд.

🔶 Статьи на javarash

🔶 Habr Инструменты тестирования Java

🔶 Habr Тестирование в Java. JUnit

🔶 Гайд от Жени

🔷 Пробелы в знаниях SQL & JDBC | HTTP & SERVLETS | MAVEN & GRADLE | SPRING | JPA & HIBERNATE | TESTING можно покрыть через следующие лекции от Головача:

Обзор Java EE / Обзор Java 8:

Jun#1.Feb 2014.Additional №1

Jun#2.Feb 2014.Additional java 8 №2

Протокол TCP/IP, протокол HTTP (детально) / многопоточная архитектура HTTP-сервера:

Junior.February2014.HTTP#1 №1

Junior.February2014.HTTP#2 №2

Junior.February2014.HTTP#3 №3

Servlet API (детально) / Spring MVC:

Junior.February2014.Servlets#3 №1

Junior.February2014.Servlets#4 №2

Junior.February2014.Servlets#5 №3

Junior.February2014.Servlets#6 №4

Spring / Maven (детально) / Log4j (детально):

Junior.February2014.Spring#7 №1

Junior.February2014.Spring#8 №2

Test Driven Development: JUnit, Mockito (детально):

Junior.February2014 #9_1

Junior.February2014 #9_2

SQL / JDBC, connection pool (детально) / JPA 2/Hibernate:

Junior.February2014.JDBC#9 №1

Junior.February2014.JDBC#10 №2

Junior.February2014.JDBC#11 №3

Junior.February2014.JDBC#12 №4

Junior.February2014.JDBC#13 №5

Junior.February2014.JDBC#14 №6

Junior.February2014.JDBC#15 №7

OOD(SOLID)

Junior.February2014.OOD#16

GOF(Шаблоны ООП):

Junior.February2014.GOF#17 №1_1

Junior.February2014.GOF#17 №1_2

Junior.February2014.GOF#17 №1_3

Junior.February2014.GOF#17 №1_4

Junior.February2014.GOF#17 №1_5

Junior.February2014.GOF#17 №1_6

Junior.February2014.GOF#17 №1_7

Junior.February2014.GOF#17 №1_8

JSF(JavaServer Faces):

Junior.February2014.JSF#18 №1

Junior.February2014.JSF#19 №2

Junior.February2014.JSF#20 №3

WebSockets:

Junior.February2014.WebSockets #21 №1

Apache Maven:

Junior.February2014.Maven#22 №1

Log4J:

Junior.February2014.Log4J#23 №1

JPA 2/Hibernate:

Junior.February2014.JPA2&Hibernate#24

Или карта по пунктам

  • ООП
  • 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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published