https://skillbox.ru/course/java
Skillbox (Java Core, OOP, RegEx, JUnit, Mockito, Log4j, Jsoup, Tomcat, Multithreading, Spring Boot, Spring Data, Spring Security, Hibernate, SQL, MySQL, PostgreSQL, Redis, MongoDB, Maven, Gradle, Git)
Программа курса
-
Вводный модуль
1.1. Какие бывают программы
1.2. Где и для чего применяется Java
1.3. Как выглядит программный код
1.4. Установка среды разработки
1.5. Исправляем готовое приложение
1.6. Пишем консольное приложение
1.7. Домашняя работа -
Синтаксис языка
2.1. Приветственное видео
2.2. Что вообще бывает в коде
2.3. Переменные в Java
2.4. Boolean, операторы сравнения и условные операторы
2.5. Циклы
2.6. Разбираем сложный код
2.7. Домашняя работа -
Объекты и классы
3.1. Переходим к следующему модулю
3.2. Понятие класса и объекта
3.3. Метод, параметры, return
3.4. Статические методы и переменные
3.5. Константы и Enum
3.6. Создание объектов и конструктор
3.7. Инкапсуляция, геттеры и сеттеры
3.8. Копирование объектов
3.9. Внешние библиотеки классов
3.10. Создание JAR-файлов
3.11. Домашняя работа -
Числа, строки и даты
4.1. Объекты и примитивы
4.2. Зачем нужны объекты и примитивы
4.3. Значения по умолчанию
4.4. Boxing и unboxing
4.5. Повторяем изученное
4.6. Домашняя работа 4.1
4.7. Какие бывают числа
4.8. Биты и байт
4.9. Числа int и double
4.10. Точность чисел с плавающей точкой
4.11. Преобразование чисел разных типов
4.12. Преобразование строки в число и обратно
4.13. Домашняя работа 4.2
4.14. Какие бывают операции с числами
4.15. Инкремент и декремент
4.16. Класс Math
4.17. Домашняя работа 4.3.1 и 4.3.2
4.18. Символы и кодировки
4.19. Специальные символы
4.20. Методы класса String
4.21. Домашняя работа 4.4
4.22. Конкатенация строк
4.23. Сравнение строк
4.24. Регулярные выражения
4.25. Домашняя работа 4.5
4.26. Календарь и метка времени
4.27. Домашняя работа 4.6 -
Массивы и коллекции
5.1. Создание массивов
5.2. Перебор элементов массивов
5.3. Обход массивов в обратном порядке
5.4. Массивы массивов
5.5. Домашняя работа 5.1.1, 5.1.2 и 5.1.3
5.6. Списки элементов
5.7. Домашняя работа 5.2
5.8. Наборы уникальных элементов
5.9. Домашняя работа 5.3
5.10. HashMap и TreeMap
5.11. Домашняя работа 5.4
5.12. Поиск и сортировка
5.13. Домашняя работа 5.5 -
Наследование и полиморфизм
6.1. Наследование классов Java
6.2. Домашняя работа 6.1
6.3. Доступ к методам и переменным
6.4. Домашняя работа 6.2
6.5. Абстрактные классы
6.6. Домашняя работа 6.3
6.7. Интерфейсы
6.8. Полиморфизм
6.9. Интерфейс Comparable
6.10. Интерфейс Comparator
6.11. Краткая реализация интерфейсов
6.12. Интерфейсы Map и Set
6.13. Домашняя работа 6.4 -
Особенности ООП в Java
7.1. Лямбда-выражения
7.2. Домашняя работа 7.1
7.3. Указатели на методы
7.4. Метод forEach
7.5. Способы получения Stream
7.6. Sorted, max, min
7.7. Map reduce
7.8. Домашняя работа 7.2.1 и 7.2.2
7.9. Static- и default-методы в интерфейсах
7.10. Generics
7.11. Система сборки Maven
7.12. Репозиторий Maven
7.13. Аннотации и Lombok -
Исключения, отладка, тестирование и логирование
8.1. Возникновение исключений
8.2. Отлов исключений
8.3. Типы исключений
8.4. Домашняя работа 8.1
8.5. Отладка приложений
8.6. Виды тестирования ПО
8.7. Модульное тестирование
8.8. Домашняя работа 8.2
8.9. Логгирование в консоли
8.10. Логгирование с помощью log4j2
8.11. Домашняя работа 8.3 -
Работа с файлами и сетью
9.1. Класс File
9.2. Чтение файлов с помощью FileInputStream
9.3. Чтение файлов с помощью BufferedReader
9.4. Чтение файлов с помощью класса Files
9.5. Домашняя работа 9.1
9.6. Запись в файл
9.7. Домашняя работа 9.2
9.8. Табличные файлы
9.9. Домашняя работа 9.3
9.10. Структура XML и HTML-файлов
9.11. Парсинг HTML-файлов
9.12. Домашняя работа 9.4
9.13. Формат JSON и парсинг JSON файлов
9.14. Домашняя работа 9.5
9.15. Конфигурационные файлы -
Работа с MySQL в Java
10.1. Установка MySQL
10.2. Подключение через JDBC
10.3. Запросы без ResultSet
10.4. Домашняя работа 10.1
10.5. Hibernate — подключение и настройка
10.6. Домашняя работа 10.2
10.7. Hibernate изменение данных в базе
10.8. Связи ManyToOne и OneToMany
10.9. Связь ManyToMany
10.10. Домашняя работа 10.3
10.11. Hibernate query builder
10.12. Ленивая загрузка данных
10.13. Where и OrderBy
10.14. HQL
10.15. Домашняя работа 10.4 -
Многопоточность
11.1. Зачем нужна многопоточность
11.2. Класс Thread
11.3. Интерфейс Runnable
11.4. Домашняя работа 11.1
11.5. Состояние гонки и критические секции
11.6. Атомарные переменные
11.7. Ключевое слово Volatile
11.8. Synchronized-методы
11.9. Synchronized-блоки
11.10. Взаимодействие потоков — методы Wait и Notify
11.11. Потокобезопасные классы
11.12. Взаимная блокировка — Deadlock
11.13. Домашняя работа 11.2
11.14. Интерфейс Callable
11.15. Executors, Executor и ExecutorService
11.16. Метод Shutdown
11.17. ThreadPoolExecutor
11.18. ScheduledExecutorService
11.19. Приостановка и прерывание потоков
11.20. ForkJoinPool и RecursiveTask
11.21. Домашняя работа 11.3 -
Разработка веб-приложений
12.1. Создание Maven-проекта
12.2. Создаём приложение на Spring Boot
12.3. Создание первого контроллера
12.4. Домашняя работа 12.1
12.5. Концепция MVC
12.6. RESTful API и CRUD
12.7. Создание контроллера
12.8. Request, response и статусы ответов
12.9. Домашняя работа 12.2
12.10. Подключение к БД и создание сущности
12.11. Репозиторий и добавление элементов в БД
12.12. Получение данных из БД
12.13. Изменение и удаление данных в БД
12.14. Домашняя работа 12.3
12.15. View и подключение шаблонов
12.16. Домашняя работа 12.4
12.17. Параметры конфигурации
12.18. Упаковка приложения в JAR-файл
12.19. Домашняя работа 12.5 -
Нереляционные (NoSQL) базы данных
13.1. Введение
13.2. Основы Redis, простейшие команды
13.3. Домашняя работа 13.1
13.4. Сложные структуры данных в Redis
13.5. Домашняя работа 13.2
13.6. Сравнение Redis vs MySQL
13.7. Базовые возможности MongoDB
13.8. Домашняя работа 13.3
13.9. Агрегация данных в MongoDB
13.10. Домашняя работа 13.4
13.11. Итоги -
Производительность и оптимизация
14.1. Факторы производительности
14.2. Преждевременная оптимизация
14.3. Что нужно оптимизировать
14.4. Длительность конкатенации строк
14.5. Буферизация
14.6. Два принципа оптимизации по времени
14.7. Домашняя работа 14.1
14.8. Какую память нужно экономить
14.9. Память можно не экономить
14.10. Буферизация
14.11. Память и разные структуры данных
14.12. Домашняя работа 14.2
14.13. Чем меньше запросов, тем лучше
14.14. Multiinsert
14.15. Утечка памяти
14.16. Индексация и оптимизация запросов
14.17. Кэширование запросов
14.18. Хранение данных
14.19. Заключение
14.20. Домашняя работа 14.3 -
Распределённые хранилища и вычисления
15.1. Что такое большие данные
15.2. Файловая система HDFS
15.3. Практическая работа с HDFS
15.4. Домашняя работа 15.1
15.5. Концепция MapReduce
15.6. Фреймворк Apache Spark
15.7. Установка Spark
15.8. Запуск в Spark собственного приложения
15.9. Запуск приложения обработки текста
15.10. Домашняя работа 15.2
15.11. Модуль YARN -
Заключительный модуль
16.1. Заключительный модуль
16.2. Desktop-приложения — создание интерфейса
16.3. Desktop-приложения — события и их обработка
16.4. Desktop-приложения — кастомизация интерфейса
16.5. Домашняя работа 16.1
16.6. Android-приложения
16.7. Язык программирования Scala
16.8. Язык программирования Kotlin
16.9. Реактивное программирование и RxJava -
Бонус-модуль. Паттерны проектирования
17.1. Что такое паттерны проектирования
17.2. Паттерн Singleton
17.3. Паттерн Factory
17.4. Паттерн Abstract Factory
17.5. Паттерн Decorator
17.6. Паттерн Adapter
17.7. Паттерн Bridge
17.8. Паттерн Strategy
17.9. Паттерн Observer
17.10. Паттерн Iterator
17.11. Другие паттерны -
Бонус-модуль. Алгоритмы
18.1. Введение в алгоритмы
18.2. Зачем нужны алгоритмы
18.3. Рекурсивные алгоритмы
18.4. Временная сложность алгоритмов
18.5. Алгоритм бинарного поиска
18.6. Алгоритм сортировки пузырьком
18.7. Алгоритм сортировки QuickSort
18.8. Алгоритм сортировки MergeSort
18.9. Алгоритм поиска подстроки Рабина-Карпа
18.10. Алгоритм поиска подстроки Кнута-Морриса-Пратта
18.11. Алгоритм поиска подстроки Бойера-Мура
18.12. Домашняя работа 18.1 -
Бонус-модуль. Структуры данных
19.1. Введение в структуры данных
19.2. Зачем нужны структуры данных
19.3. Хэш-таблицы
19.4. Очередь и стэк
19.5. Домашняя работа 19.1 - Связные списки
19.6. Домашняя работа 19.2 - Бинарное дерево
19.7. Домашняя работа 19.3 - Суффиксное дерево
19.8. Графы -
Бонус-модуль. Протокол HTTP
20.1. Протокол HTTP. Запрос и ответ
20.2. Методы HTTP-запросов GET и POST
20.3. Другие методы HTTP-запросов
20.4. Статус-коды HTTP-ответов
20.5. Адресация сетевых ресурсов
20.6. HTTP-заголовки
20.7. Версии протокола HTTP и HTTPS
Чему вы научитесь
-
Писать код на Java Изучите синтаксис языка, познакомитесь с переменными и операторами, научитесь писать и структурировать свой код и разбираться в чужом.
-
Работать с MySQL Узнаете, как сохранять и изменять информацию в базе данных MySQL. Научитесь писать запросы и управлять большими объёмами данных.
-
Применять принципы ООП Изучите принципы объектно-ориентированного программирования и сможете создавать сложные проекты.
-
Пользоваться Git Научитесь работать с распределённой системой контроля версий вместе с командой, сможете вносить или откатывать изменения в рамках одного проекта.
-
Создавать веб-приложения Поймёте, как превратить строки кода на Java в работающую программу, и научитесь разрабатывать веб-приложения с помощью Spring Boot.
-
Оптимизировать код Научитесь отлавливать и прорабатывать исключения, изучите способы отладки и оптимизации кода. Сможете создавать программы с высокой производительностью.
Мои комментарии
- Информативность видеоуроков недостаточная.
- Необходимо параллельно проходить другие курсы, грызть книги и яндексить.
- Курс подойдёт для выполнения домашних заданий
- Курс даёт направление