Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/borymskyi/roadmap-java-sng

🚀Структурированный список ресурсов для изучения Java.
https://github.com/borymskyi/roadmap-java-sng

List: roadmap-java-sng

awesome awesome-list backend for-beginners guide guides java list roadmap web

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# :scroll: Roadmap Java developer

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

## Содержание
* [JAVA CORE](#java-core)
* [ALGORYTHMS & DATA STRUCTURES](#algorythms--data-structures)
* [SQL & JDBC](#sql--jdbc)
* [HTTP & SERVLETS](#http--servlets)
* [MAVEN & GRADLE](#maven--gradle)
* [SPRING](#spring)
* [JPA & HIBERNATE](#jpa--hibernate)
* [TESTING](#testing)
* [Идем на собес](#идем-на-собес)
* [Дополнительный материал](#дополнительный-материал)

## JAVA CORE
> Это целый ряд тем. Оновные: **ООП в Java**, **Ветвление, Циклы**, **Массивы**, **Exceptions**, **Collection Framework**, **Input-Output**, **Многопоточность**, **Stream API**, и еще разный ряд базовых принципов для использование всего.

* Java Core с нуля *[Link](https://coursehunter.net/course/java-dzhava-dlya-nachinayushchih-s-nulya-do-sertifikata-oracle)*
* Java Core продвинутый *[Link](https://youtube.com/playlist?list=PLqj7-hRTFl_oDMBjI_EstsFcDAwt-Arhs)*
* Книги: *Java Эффективное программирование Д.Блох* && *Java Полное руководство Г.Шилдт*
* Практика: *[Codewars](https://www.codewars.com/kata/search/java?beta=false&order_by=popularity+desc&q=&r%5B%5D=-8&tags=)* || *[Практические задачи по Java](https://habr.com/ru/post/440436/)* || *[1000 задач на Java](https://github.com/allicen/Java-1000)*

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

* Книги: *Алгоритмы на Java Р.Седжвик || Грокаем алгоритмы Б.Адитья || Алгоритмы Построение и анализ Т.Кормен.*
* Практика:
* Заходим на сайт *[LeetCode](https://leetcode.com/)* в разделе Explore заходим в лист *[Top Interview Questions](https://leetcode.com/explore/interview/card/top-interview-questions-easy/)* (Easy / Medium / Hard) -> берем задание -> смотрим теги задачи(Related Topics) -> берем книгу и читаем нужную тему.

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

* *[Visualgo](https://visualgo.net/en)* | *[BigOcheatsheet](https://www.bigocheatsheet.com/)*
* *[Link Y](https://www.youtube.com/watch?v=_NhmGvYs8_g&t=686s)* | *[Link Y](https://youtube.com/playlist?list=PLlsMRoVt5sTOKU87z9NhHHRH9nvE5chfH)* | *[Link Y](https://youtube.com/playlist?list=PLlsMRoVt5sTPCbbIW2QZ-hRMW80lymEYR)* | *[Link Y](https://youtu.be/c3RVW3KGIIE)* | *[Link W](https://habr.com/ru/articles/128017/)*

## SQL & JDBC
* *[Детальный курс по SQL dmdev](https://youtube.com/playlist?list=PLnh8EajVFTl5q3x1Mp6Fh9YEvv70dL6re)*
* *[Детальный курс по JDBC dmdev](https://youtube.com/playlist?list=PLnh8EajVFTl7an1-h7MLjt6fi-5sJM3Cj )*

## HTTP & SERVLETS
* *[Java EE(HTTP, Servlets)](https://youtube.com/playlist?list=PLAma_mKffTOTTFqIkLXgHqVuL6xJhb0mr)* || *[Детальный курс по Web, HTTP, Servlets от dmdev](https://www.youtube.com/playlist?list=PLnh8EajVFTl7_p5MgevvA41PvxQWq-jC8)*

## MAVEN & GRADLE
* *[Maven Детальный курс от dmdev](https://youtube.com/playlist?list=PLnh8EajVFTl5fusY9MRBEOoLjbv8Trms5)*
* *[Gradle Детальный курс от dmdev](https://www.youtube.com/playlist?list=PLnh8EajVFTl7JYxhZs7CfxyTsUMvcBXig)*

## SPRING
> Содержит множество компонентов для работы с разнообразными задачами. **Spring MVC**(для разработки веб-приложений), **Spring Data**(для работы с бд), **Spring Security**(для обеспечения безопасности приложений) и тд. Нужно разобраться с базовыми принципами работы с спринг, на чем все строится. Spring Basics(IoC Container, Spring Beans, Bean Configuration, Bean Wiring и тд).
* *[Детальный курс по Spring от dmdev](https://youtube.com/playlist?list=PLnh8EajVFTl5ZK-8o1KXwnbeBgoKYDbdr)*
* *[ru Руководство по Spring](https://proselyte.net/tutorials/spring-tutorial-full-version/)*
* *[Короткий курс, база Spring Framework](https://youtube.com/playlist?list=PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ)*
* *[Практика: Spring Boot project](https://youtube.com/playlist?list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO)*
* *[Практика: Spring Boot + Vue.js project](https://youtube.com/playlist?list=PLU2ftbIeotGqSTOVNjT4L3Yfy8jatCdhm)*

> На данном этапе будет хорошо понимать принципы, паттерны разработки ПО, такие как SOLID, REST, Паттерные проектирования.
* *[Теория: Паттерны проектирования](https://refactoring.guru/ru/design-patterns)*
* *[Практика: Паттерны проектирования](https://youtube.com/playlist?list=PLlsMRoVt5sTPgGbinwOVnaF1mxNeLAD7P)*
* *[Принципы Чистой Архитектуры от Дяди Боба](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)*
* *[SOLID принципы, простым языком](https://youtu.be/TxZwqVTaCmA)*

## JPA & HIBERNATE
> Спецификация, описывающая, как удобно представлять данные из бд в виде Java объектов. Спецификация не является фреймворком. Она только показывает, что должен уметь реальный фреймворк. А вот фреймворк уже реализует спецификацию. т.е. реальная работа происходит как раз в нем. **Hibernate**(фреймворк, реализующий спецификацию JPA), **ORM**(общее понятие для представления данных из бд в виде java объектов, тогда каждая строка таблицы становится java объектом).
* *[Детальный курс по Hibernate от dmdev](https://www.youtube.com/playlist?list=PLnh8EajVFTl7dQ77iqr55gFLcyYjedAlE)*
* *[ru Документация по Hibernate](https://proselyte.net/tutorials/hibernate-tutorial/)*
* *[Документация от спринга](https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation)*

## TESTING
> Позволяет убедиться, что вы не допустили ошибку при написании программы. Это как бы набор маленьких программ на Java, которые проверяют правильность вашей основной программы. Также гарантируют, что будущие изменения кода программы не затронут старую логику. Таким образом вы всегда будете уверены, что ничего не сломали. Это серьезно ускоряет разработку, т.к. вам не приходится каждый раз проверять потенциальные баги. **Junit**(Java фреймворк для написания тестов самых разных видов), **Integration**(прекрасно работает в паре с другими фреймворками, например Spring). Стоит просто разобратся какие бывают виды тестов на джава, как их писать на Junit, что такое моки и тд.
* *[Детальный курс по JUnit 5 от dmdev](https://youtube.com/playlist?list=PLnh8EajVFTl5AqvBosxUefReW4nC35P0x)*
* *[Тестирование коллекций](https://mkyong.com/unittest/junit-how-to-test-a-list/)*

## Идем на собес
* **Структура собеседования**
- *[Link 1 Y](https://youtu.be/UQnpwtdHiDs)* | *[Link 2 Y](https://youtu.be/vArj4XmtxvY)* | *[Link 3 Y](https://youtu.be/lq4TKfc-Ot4)*
* **Частые вопросы для Java developer**
- *[Link 1](https://github.com/enhorse/java-interview)* | *[Link 2 Y](https://youtube.com/playlist?list=PLlsMRoVt5sTMMCwd_gLaaZMkQhzVh9hLA)* | *[Link 3 Y](https://youtube.com/playlist?list=PLxqzxxW1gWwJvVK11R_lJKAlP_9m3Gu2H)*
* **Составляем Резюме и Сопроводительное письмо**
- *[Link 1 Y](https://youtu.be/6XK2OvWHSsg)*

Кратко какие темы нужно закрыть

* **Data Structure & Algorithms** *(решить +-5 easy problem)*
- *[Link 1 V](https://youtu.be/_NhmGvYs8_g)* | *[Link 2 L](https://leetcode.com/explore/interview/card/top-interview-questions-easy/)*

* **ООП**
- *[Link 1](https://youtu.be/4owUYYdcAOw)* | *[Link 2](https://youtu.be/YMTdEXpQTZQ)* | *[Link 3](https://youtu.be/BYu8gT0hGCQ)* | *[Link 4 G](https://youtube.com/playlist?list=PLoij6udfBncgtdSaq4nqVNtTqPeyh7rnV)* | *[Link 5 G](https://youtube.com/playlist?list=PLoij6udfBnciXh1_Itg-Hiw9EdGGzwYPE)* | *[Link 6 G](https://youtube.com/playlist?list=PLoij6udfBncjjuiZQNFx_b4A5Ygdn1YbS)* | *[Link 7 G](https://youtube.com/playlist?list=PLoij6udfBnch50JMDvipTQmAp-q4Pw6jG)* | *[Link 8 D](https://coursehunter.net/course/java-dlya-nachinayushchih-level-2?lesson=20)* | *[Link Y](https://youtu.be/Xg_DTzM6o6U)*

* **Generics**
- *[Link 1 G](https://youtu.be/Yymzcnt-Ars)* | *[Link 2 D](https://coursehunter.net/course/java-dlya-nachinayushchih-level-2?lesson=27)* | *[Link 3 D](https://coursehunter.net/course/java-dlya-nachinayushchih-level-2?lesson=28)* | *[Link 4 D](https://coursehunter.net/course/java-dlya-nachinayushchih-level-2?lesson=29)*

* **Object** *(знать методы)*
- *[Link 1](https://youtu.be/DrQqZj5OIZc)* | *[Link 2](https://www.youtube.com/watch?v=Juav74bCtZ8)* | *[Link 3](https://www.youtube.com/watch?v=NQdwRwbPVCs)* | *[Link 4](https://youtu.be/B0bweMu3m5E)*

* **Collection Framework** *(**больше всего спрашивают**, надо очень подробно знать)*
- *[Link 1](https://youtube.com/playlist?list=PL786bPIlqEjRvuYGGDMxy6YqzG-Hizvs8)* | *[Link 2](https://youtube.com/playlist?list=PLqj7-hRTFl_oDMBjI_EstsFcDAwt-Arhs)* | *[Link 3](https://youtu.be/xVfV8r_4GYI)* | *[Link 4 G](https://youtube.com/playlist?list=PLoij6udfBncjiXKA5ce0hi4b4DIvGymeo)* | *[Link 5 G](https://youtube.com/playlist?list=PLoij6udfBnciAPeXh5oOGBsQ2c8GlEFu0)* | *[Link 6 G](https://youtube.com/playlist?list=PLoij6udfBncgIlUdvGNtG2Jp7gXbDMx15)* | *[Link 7 G](https://youtube.com/playlist?list=PLoij6udfBncjAZTDf6Vx281R5Y9mnm93q)* | *[Link 8](https://youtu.be/JDh3DsJGGMU)*

* **Lamda, Stream API**
- *[Link 1](https://youtu.be/jHStUYP1NEg)* | *[Link 2](https://youtu.be/33pi0sIZNEU)* | *[Link 3](https://youtu.be/sWwkwcAugR0)* | *[Link 4](https://youtu.be/oUvx2Up-PkA)* | *[Link 5](https://youtu.be/GMzP5vIG9YU)* | *[Link 6](https://youtu.be/IQVwwwSe4Ic)* | *[Link 7](https://youtu.be/aC0-KsuPG0I)* | *[Link 8](https://youtu.be/RzEiCguFZiY)*

* **Garbage Collector** *(gc(), finalize(), как он чистит мусор, как он работает, можно ли заставить работать)*
- *[Link 1](https://youtu.be/-ayMplONmkI)*

* **Multithreading / Concurrency** **_(базовые знания)_** *(как работает многопоточность, как создать тред, sleep, join, монитор, процесс гонки)*
- *[Link 1](https://www.youtube.com/watch?v=VbLyaPPHtrE&list=PLw6SJ6q6-1YptavAy65knVOSBZ_y6YxmV&index=4&t=47s)* | *[Link 2](https://metanit.com/java/tutorial/8.5.php)*

* **Exception** *(иерархия, checked и unchecked, когда нужно создавать свои исключения, когда нужно или не нужно обрабатывать ошибки)*
- *[Link 1](https://youtu.be/_ndfgwHtcXY)* | *[Link 2 D](https://coursehunter.net/course/java-dlya-nachinayushchih-level-2?lesson=47)* | *[Link 3](https://youtu.be/mLpMtc62530)* | *[Link 4 G](https://youtube.com/playlist?list=PLoij6udfBncilVuX_R0sBrESIlyfQWVjm)* | *[Link 5 G](https://youtube.com/playlist?list=PLoij6udfBnchbxh8ZAY-FPlmj97aCILTY)* | *[Link 6 G](https://youtube.com/playlist?list=PLoij6udfBncjLoxagaF5tGsDp-0XKMyhc)* | *[Link 7 G](https://youtube.com/playlist?list=PLoij6udfBnchR-Cc-RB4EUZokLrLlIuWQ)*

* **String, String Pool** *(как работает jvm memory, имутабельность, отличие от других стрингов)*
- *[Link 1 Y](https://youtu.be/d_oou6CAz5U)* | *[Link 2 Y](https://youtu.be/1QP8y6-1fD0)*

* **SQL + JDBC** *(хорошая база, DDL, DML, как писать запросы с JOIN / GROUP BY, внешние ключи, понимать что такое уровни изоляции)*

* **Web + Spring + Hibernate** *(понимание как устроин network, база Spring IoC, Boot, Hibernate понимать приназначение ORM)*

* **Unit & Integation testing** *(Создать мини метод, сделать на него тест, на истину/ложь и на ошибку)*

* **SOLID + Паттерны проектирования + REST**
- *[Link 1 W](https://habr.com/ru/post/688530/)* | *[Link 2 G](https://youtube.com/playlist?list=PLoij6udfBncgRuXhcs1gsWhUlS_8ZOLbg)* | *[Link 3 W](http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod)* | *[Link 4 Y](https://youtu.be/1MDiB2Ya--4)* | *[Link 5 W](https://refactoring.guru/ru/design-patterns)* | *[Link 6 Y](https://youtube.com/playlist?list=PLlsMRoVt5sTPgGbinwOVnaF1mxNeLAD7P)* | *[Книга: Банда четырёх](https://t.me/dmytrii_bookshelf/231)*

* **Git** *(хватит базы, уметь пользоваться через консоль)*
- *[основы за час по ролику](https://youtu.be/dHlhCO56Pv0)* | *[GIT Полный курс](https://youtube.com/playlist?list=PLAma_mKffTOTIomJBmL9J42PP0l7riFUO)* | *[GIT Альтернативный курс](https://www.youtube.com/playlist?list=PLuY6eeDuleIOMB2R_Kky05ZfiAx2_pbAH)* | *[GIT Интерактивный тренажер](https://learngitbranching.js.org/?locale=ru_RU)* | *[документация от Жени](https://proselyte.net/tutorials/git/introduction/)*

* **Компьютерные сети** *(Основные верхнеуровневые протоколы, понимание того как работает модель OSI)*
- *[Базовые знания](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1)* | *[Продвинутые темы](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oh_w4_jtRnKE11aqeRldCFI)* | *[Защищенные сетевые протоколы](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiFnWCsVRElorOLt69YDEnv)*

##

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

- Разное:
- *[Телега с книгами](https://t.me/borymskyi_bookshelf)*
- *[roadmap backend](https://roadmap.sh/backend)*
- *[Если у тебя все совсем плохо - лекции CS50](https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5)*
- *[Краткие гайды по Java](https://proselyte.net/tutorials/)*
- Годные Youtube каналы:
- *[Кто понимает украинский, Bobocode](https://youtube.com/playlist?list=PLqt5_5aU1KQLFZH-Rltag_AvHtQvDHhzG)*
- *[Amigoscode en](https://www.youtube.com/@amigoscode)*
- *[Eugene Suleimanov](https://www.youtube.com/c/EugeneSuleimanov)*
- *[HighLoad докладоы по тематике высоких нагрузок](https://youtube.com/@HighLoadChannel)*
- *[TechTrain доклады](https://youtube.com/@TechTrainFest)*
- *[Podlodka tech подкасты](https://youtube.com/@PodlodkaShow)*
- *[Уголок сельского джависта](https://youtube.com/@shurik_codes)*
- *[Jetbulb](https://youtube.com/@Jetbulb)*
- *[letstCode](https://www.youtube.com/c/letsCodeDru)*
- *[codelike](https://www.youtube.com/c/codelike)*
- *[dmdev](https://www.youtube.com/c/dmdev/videos)*
- *[Александр Ильин](https://www.youtube.com/user/MrProstatit)*
- *[Ulbi TV](https://www.youtube.com/c/UlbiTV)*
- *[Аве Кодер](https://www.youtube.com/c/%D0%90%D0%B2%D0%B5%D0%9A%D0%BE%D0%B4%D0%B5%D1%80)*
- *[Senior Software Vlogger](https://www.youtube.com/c/SeniorSoftwareVlogger)*

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


Bitcoin ```bc1qsw5wz47s4uj7uq6um9jx5sgcygax7xmtrm6e00```

Ethereum ```0x522978b44741f6601b308b2fc3d918cf5f4b9a0c```

Tron ```TY7Ekqbu8PmiwUnjutN8tw2AmenUvMV1CB```