Структурированный список ресурсов для изучения Java, который поможет систематизировать занятия. Основан на личном опыте и самостоятельном изучении данной области.
- JAVA CORE
- ALGORYTHMS & DATA STRUCTURES
- SQL & JDBC
- HTTP & SERVLETS
- MAVEN & GRADLE
- SPRING
- JPA & HIBERNATE
- TESTING
- Идем на собес
- Дополнительный материал
Это целый ряд тем. Оновные: ООП в Java, Ветвление, Циклы, Массивы, Exceptions, Collection Framework, Input-Output, Многопоточность, Stream API, и еще разный ряд базовых принципов для использование всего.
- Java Core с нуля Link
- Java Core продвинутый Link
- Книги: Java Эффективное программирование Д.Блох && Java Полное руководство Г.Шилдт
- Практика: Codewars || Практические задачи по Java || 1000 задач на Java
Нужно уметь применять наиболее эффективные способы решения некоторых задач, а для этого стоит быть в курсе базовых алгоритмов и структур данных: Algorythms(Различные сортировки, поиск значений, поиск кратчайшего пути и тд), Data Structures(Списки, Очереди, Мапы, Деревья, Графы и тд).
- Книги: Алгоритмы на Java Р.Седжвик || Грокаем алгоритмы Б.Адитья || Алгоритмы Построение и анализ Т.Кормен.
- Практика:
- Заходим на сайт LeetCode в разделе Explore заходим в лист Top Interview Questions (Easy / Medium / Hard) -> берем задание -> смотрим теги задачи(Related Topics) -> берем книгу и читаем нужную тему.
Содержит множество компонентов для работы с разнообразными задачами. Spring MVC(для разработки веб-приложений), Spring Data(для работы с бд), Spring Security(для обеспечения безопасности приложений) и тд. Нужно разобраться с базовыми принципами работы с спринг, на чем все строится. Spring Basics(IoC Container, Spring Beans, Bean Configuration, Bean Wiring и тд).
- Детальный курс по Spring от dmdev
- ru Руководство по Spring
- Короткий курс, база Spring Framework
- Практика: Spring Boot project
- Практика: Spring Boot + Vue.js project
На данном этапе будет хорошо понимать принципы, паттерны разработки ПО, такие как SOLID, REST, Паттерные проектирования.
- Теория: Паттерны проектирования
- Практика: Паттерны проектирования
- Принципы Чистой Архитектуры от Дяди Боба
- SOLID принципы, простым языком
Спецификация, описывающая, как удобно представлять данные из бд в виде Java объектов. Спецификация не является фреймворком. Она только показывает, что должен уметь реальный фреймворк. А вот фреймворк уже реализует спецификацию. т.е. реальная работа происходит как раз в нем. Hibernate(фреймворк, реализующий спецификацию JPA), ORM(общее понятие для представления данных из бд в виде java объектов, тогда каждая строка таблицы становится java объектом).
Позволяет убедиться, что вы не допустили ошибку при написании программы. Это как бы набор маленьких программ на Java, которые проверяют правильность вашей основной программы. Также гарантируют, что будущие изменения кода программы не затронут старую логику. Таким образом вы всегда будете уверены, что ничего не сломали. Это серьезно ускоряет разработку, т.к. вам не приходится каждый раз проверять потенциальные баги. Junit(Java фреймворк для написания тестов самых разных видов), Integration(прекрасно работает в паре с другими фреймворками, например Spring). Стоит просто разобратся какие бывают виды тестов на джава, как их писать на Junit, что такое моки и тд.
- Структура собеседования
- Частые вопросы для Java developer
- Составляем Резюме и Сопроводительное письмо
Кратко какие темы нужно закрыть
-
Data Structure & Algorithms (решить +-5 easy problem)
-
ООП
-
Generics
-
Object (знать методы)
-
Collection Framework (больше всего спрашивают, надо очень подробно знать)
-
Lamda, Stream API
-
Garbage Collector (gc(), finalize(), как он чистит мусор, как он работает, можно ли заставить работать)
-
Multithreading / Concurrency (базовые знания) (как работает многопоточность, как создать тред, sleep, join, монитор, процесс гонки)
-
Exception (иерархия, checked и unchecked, когда нужно создавать свои исключения, когда нужно или не нужно обрабатывать ошибки)
-
String, String Pool (как работает jvm memory, имутабельность, отличие от других стрингов)
-
SQL + JDBC (хорошая база, DDL, DML, как писать запросы с JOIN / GROUP BY, внешние ключи, понимать что такое уровни изоляции)
-
Web + Spring + Hibernate (понимание как устроин network, база Spring IoC, Boot, Hibernate понимать приназначение ORM)
-
Unit & Integation testing (Создать мини метод, сделать на него тест, на истину/ложь и на ошибку)
-
SOLID + Паттерны проектирования + REST
-
Git (хватит базы, уметь пользоваться через консоль)
-
Компьютерные сети (Основные верхнеуровневые протоколы, понимание того как работает модель OSI)
- Разное:
- Годные Youtube каналы:
Также вы можете поддержать автора чеканной монетой:
Bitcoin bc1qsw5wz47s4uj7uq6um9jx5sgcygax7xmtrm6e00
Ethereum 0x522978b44741f6601b308b2fc3d918cf5f4b9a0c
Tron TY7Ekqbu8PmiwUnjutN8tw2AmenUvMV1CB