Содержание курса
Введение
5 уроков
1.
Приветствие
↗
2.
Подробный обзор содержания курса
↗
3.
Информация об обновлениях курса
↗
4.
Присоединяйтесь к сообществу
↗
5.
Изучение Java в эпоху AI агентов
↗
Основы работы с командной строкой (начальный уровень)
22 урока
1.
Установка Git на Windows
↗
2.
Зачем изучать Unix Shell и работу через терминал
↗
3.
Terminal, Shell, Bash, CLI. Разбираемся в терминологии.
↗
4.
Навигация. Команды pwd, cd, clear
↗
5.
Команда ls - просмотр содержимого директории
↗
6.
Задание на навигацию с помощью команд pwd, cd и ls
↗
7.
Настройка shortcut для открытия терминала
↗
8.
Help, использование аргументов, аргументы команды ls
↗
9.
Создание директорий с помощью команды mkdir
↗
10.
Шорткаты для использования аргумента из последней команды
↗
11.
Создание файлов с помощью команды touch
↗
12.
Какие символы не стоит использовать при создании файлов
↗
13.
Комманда echo. Просмотр содержимого переменных, вывод текста в к
↗
14.
Переменная окружения PATH, просмотр ее содержимого (echo)
↗
15.
Запись в файл с помощью echo, просмотр содержимого файла (cat)
↗
16.
Добавление строки в файл (оператор >), tail для просмотра файлов
↗
17.
Удаление файлов и директорий. Команды rm, rm -r, rmdir
↗
18.
Перемещение и переименование файлов - команда mv
↗
19.
Копирование - команда cp, вайлдкарты, cp -r для копирования дире
↗
20.
Текстовый редактор vim. Создание и сохранение файлов
↗
21.
Vim. Дополнительные возможности
↗
22.
grep - поиск по паттерну
↗
Основы работы с git (начальный уровень) - часть 1
12 уроков
1.
Введение, создание репозитория, git init
↗
2.
Установка имени и email
↗
3.
git status, создание файла .gitignore
↗
4.
Создание коммитов, команды git add, git commit, git log
↗
5.
Что можно делать с коммитами (краткий обзор)
↗
6.
Откат к предыдущему коммиту - git reset
↗
7.
Работа с ветками (git branch, git switch)
↗
8.
Регистрация на github, создание удаленного репозитория
↗
9.
Создание access token, команда git push
↗
10.
Получение изменений из удаленного репозитория - git pull
↗
11.
Создаем и мержим первый pull request на github
↗
12.
Комманда git clone, локальные и remotes ветки
↗
Экспресс курс Java - настройка окружения, что такое Java
6 уроков
1.
Что такое Java, позиции Java в 2024
↗
2.
Intellij Idea - выбор и установка среды разработки
↗
3.
Что такое JDK, JRE и JVM
↗
4.
Создание Java проекта в IntelliJ IDEA, скачивание JDK
↗
5.
Настройка переменных окружения
↗
6.
Включение превью фич 21й версии
↗
Экспресс курс Java. Методы, переменные, примитивы, строки и тд.
30 уроков
1.
Что такое методы, метод main
↗
2.
Комментарии
↗
3.
Hello World
↗
4.
Как работает Java. Компиляция, байткод
↗
5.
Из чего состоит упрощенный метод main (продолжение)
↗
6.
Термины statement (предложение) и expression (выражение)
↗
7.
Продолжение знакомства с методом main
↗
8.
Строковые литералы
↗
9.
Краткие итоги по методам
↗
10.
Примитивные типы данных
↗
11.
Ключевые слова в Java
↗
12.
byte, short, char - почему их не стоит использовать
↗
13.
Классы обертки
↗
14.
Диапазоны примитивов, переполнение
↗
15.
Кастинг - приведение примитивных типов данных
↗
16.
Переполнение на примере задачи Valid Perfect Square
↗
17.
Статическая типизация
↗
18.
var - вывод типов
↗
19.
final с локальными переменными
↗
20.
Арифметические операторы - часть 1
↗
21.
Арифметические операторы - часть 2
↗
22.
Мини-задача - нахождение среднего значения
↗
23.
Конкатенация строк
↗
24.
Операторы сравнения - часть 1
↗
25.
Операторы сравнения - часть 2
↗
26.
Оператор ! (логическое нет)
↗
27.
Оператор !=
↗
28.
Приоритет операций
↗
29.
Знакомство с классом Math
↗
30.
Знакомство с BigInteger и BigDecimal
↗
Git и горячие клавиши в Intellij IDEA
3 урока
1.
Знакомство с терминалом и git интеграцией в Intellij IDEA
↗
2.
Добавление remotes , push, update, ветки в IntelliJ
↗
3.
Использование горячих клавиш в Intellij IDEA
↗
Экспресс курс Java. Условные операторы (Control flow)
6 уроков
1.
if-then стейтмент
↗
2.
Сокращенная форма if-then-else
↗
3.
Задание - найди наибольшее из трех чисел с помощью if-then
↗
4.
Область видимости (scope), подключение плагина Rainbow Brackets
↗
5.
Тернарный оператор (?)
↗
6.
Switch (классический switch стейтмент и обновленный switch экспр
↗
Экспресс курс Java. Циклы (while, for). Перегрузка методов
3 урока
1.
Циклы while и do-while
↗
2.
Цикл for
↗
3.
Перегрузка методов (method overloading)
↗
Экспресс курс Java. Класс String. Работа со строками (начальный
10 уроков
1.
Как пользоваться документацией, плагин для перевода документации
↗
2.
Как сравнивать строки, string pool (пул строк)
↗
3.
Метод String.join()
↗
4.
Неизменяемость строк
↗
5.
Знакомство с классом StringBuilder (изменяемые строки)
↗
6.
Возвращение значений из методов, слово return
↗
7.
Экранирование (escape sequences) и string blocks
↗
8.
Метод replaceAll(), знакомство с регулярными выражениями
↗
9.
String templates (превью фича java 21 - отправлена на доработку)
↗
10.
Unicode, ASCII, UTF-16. Как Java работает с текстом
↗
Экспресс курс Java. Массивы, цикл for-each, continue, break
12 уроков
1.
Массивы (arrays)
↗
2.
Varargs (список аргументов переменной длины)
↗
3.
Итерация по массиву с помощью цикла for
↗
4.
Цикл for-each (улучшенный цикл for)
↗
5.
Итерация по массиву с помощью Stream API
↗
6.
IndexOutOfBoundsException
↗
7.
Двумерные массивы
↗
8.
ArrayList
↗
9.
Неизменяемые листы (immutable lists)
↗
10.
continue
↗
11.
break
↗
12.
Задача "Подсчет символов в строке"
↗
Практические задания. Знакомство с LeetCode
5 уроков
1.
Что такое LeetCode и как им пользоваться
↗
2.
Задача Leetcode 1295 - Find numbers with even number of digits
↗
3.
Задача LeetCode 9 - Palindrome number
↗
4.
Задача LeetCode 66 - Plus One
↗
5.
Задача Leetcode 1480 Running Sum of 1d Array
↗
Экспресс курс Java. Классы, модификаторы доступа, HashMap, enum,
29 уроков
1.
Различия примитивных и ссылочных типов данных
↗
2.
Значение null, NullPointerException
↗
3.
Знакомство с классом Optional
↗
4.
Почему при создании объектов не всегда используется слово new
↗
5.
Классы
↗
6.
Статические методы
↗
7.
Классический метод main
↗
8.
Поля и конструкторы
↗
9.
Ключевое слово this. Передача значений из конструктора в поля
↗
10.
Класс Object
↗
11.
Переопределение метода toString()
↗
12.
Модификатор доступа private
↗
13.
Константы
↗
14.
package (пакеты)
↗
15.
Дефолтный модификатор доступа (package private)
↗
16.
Чем различаются поля (fields) и локальные переменные
↗
17.
[new] Знакомство с многопоточностью. Что такое Thread
↗
18.
[new] Знакомство с многопоточностью. Что такое Race condition
↗
19.
методы equals() и hashСode()
↗
20.
Знакомство с дженериками (обобщенными типами)
↗
21.
Класс HashMap
↗
22.
Как работает HashMap
↗
23.
Итерация по HashMap
↗
24.
HashSet
↗
25.
Как работает HashSet
↗
26.
Cеттеры (setters)
↗
27.
Неизменяемые объекты (immutable objects)
↗
28.
Records
↗
29.
Перечисления (Enums)
↗
Практические задания
1 урок
1.
Задача Leetcode 929 - Unique Email Addresses
↗
Экспресс курс Java - ООП
26 уроков
1.
Абстрактные классы
↗
2.
Абстрактные методы, абстрактные классы с сервисными классами
↗
3.
Финальные (final) и закрытые (sealed) классы
↗
4.
Обзор всех вариантов использования слова final
↗
5.
Знакомство с оператором instanceOf
↗
6.
Кастинг объектов. Upcasting и Downcasing, instanceof expression
↗
7.
Создание кастомных исключений с помощью наследования
↗
8.
Знакомство с интерфейсами
↗
9.
Переменные в абстрактных классах и константы в интерфейсах
↗
10.
Различия в наследовании класса и имплементации интерфейсов.
↗
11.
Абстрактные и дефолтные методы
↗
12.
Наследование интерфейсов
↗
13.
Обзор модификаторов доступа. Часть 1
↗
14.
Обзор модификаторов доступа. Часть 2. Применение с классами.
↗
15.
Обзор модификаторов доступа. Часть 3. Приватные методы
↗
16.
Обзор модификаторов доступа. Часть 4. Приватные конструкторы
↗
17.
Обзор модификаторов доступа. Часть 5. Поля
↗
18.
Приватные методы в интерфейсах
↗
19.
Разбор реализации рейтингов в приложении Library
↗
20.
Зачем было создано ООП (Объектно-ориентированное программировани
↗
21.
Принципы ООП. Инкапсуляция
↗
22.
Принципы ООП. Как классы разделяются в Spring приложениях
↗
23.
Разделение классов на примере Spring Boot приложения
↗
24.
Принципы ООП. Абстракция
↗
25.
Принципы ООП. Наследование
↗
26.
Принципы ООП. Полиморфизм
↗
Экспресс курс Java - Обработка исключений на примере HttpClient
7 уроков
1.
Иерархия исключений
↗
2.
Общая информация об исключениях. Непроверяемые исключения
↗
3.
Проверяемые исключения (checked exceptions). Создаем объект URI
↗
4.
Создание HttpRequest, знакомство с HTTP
↗
5.
Создание HttpClient, обработка исключений
↗
6.
Обработка нескольких исключений в одном catch блоке
↗
7.
Использование блока finally, try-with-resources
↗
Экспресс курс Java - Лямбда выражения и Stream API
8 уроков
1.
Реализация интерфейса Function с помощью анонимного класса
↗
2.
Реализация интерфейса Function c помощью лямбда выражения
↗
3.
Ссылки на метод (method reference)
↗
4.
Знакомство со Stream API - использование метода map()
↗
5.
Метод filter(), интерфейс Predicate
↗
6.
Effectively final. Работа с переменными в lambda выражениях
↗
7.
Знакомство с интерфейсом Consumer и методом forEnach
↗
8.
Обзор самых популярных операций Stream API
↗
Выдача сертификата о завершении
1 урок
1.
Выдача сертификата
↗
Приложение "Список интервью вопросов" - часть 1 (чистая java)
12 уроков
1.
Введение
↗
2.
Функциональные требования
↗
3.
Класс Scanner - ввод данных через терминал
↗
4.
Технические требования
↗
5.
Итоговый код этой секции
↗
6.
Разбор итогового кода часть 1
↗
7.
Разбор итогового кода часть 2
↗
8.
Разбор итогового кода часть 3
↗
9.
Разбор итогового кода часть 4
↗
10.
Разбор итогового кода часть 5
↗
11.
Советы по сохранению проекта на github
↗
12.
Создание выполняемого jar файла
↗
Основы Maven - подготовка к работе со Spring Boot
8 уроков
1.
Важно. Используйте JDK 23
↗
2.
Вступление, создание Spring Boot проекта
↗
3.
Структура maven проекта, pom.xml, зависимости
↗
4.
Анализ зависимостей в maven, плагин maven helper
↗
5.
Разрешение конфликта зависимостей, exclusions
↗
6.
Работа с разными версиями maven из Intellij, spring-boot плагин
↗
7.
Создание jar файла с помощью mvn clean package
↗
8.
Краткий обзор жизненных циклов и фазы maven
↗
Spring Boot - внедрение зависимостей
11 уроков
1.
Вступление. CommandLineRunner (консольное Spring Boot app)
↗
2.
Аннотация @Component, внедрение зависимости через конструктор
↗
3.
Паттерны dependency injection, аннотация @ComponentScan
↗
4.
Исследуем ApplicationContext и beans
↗
5.
IoC (Inversion of Control), IoC Container и ApplicatonContext
↗
6.
Создание бинов с помощью аннотации @Bean
↗
7.
Java конфигурация бинов, зависящих от других бинов
↗
8.
Bean scopes
↗
9.
Не используйте @Autowired, field injection и setter injection
↗
10.
Dependency injection для коллекции бинов
↗
11.
Обзор других аннотаций для конфигурации контейнера
↗
Приложение "Список интервью вопросов" - часть 2 (Spring DI))
7 уроков
1.
Введение
↗
2.
Добавление поддержки maven
↗
3.
Обновление структуры проекта
↗
4.
Добавление spring dependency injection
↗
5.
Приведение в порядок git репозитория
↗
6.
Бин для инициализации данных, аннотация @PostConstruct
↗
7.
Итоговый код секции
↗
Приложение "Список интервью вопросов" - часть 3 (Lombok)
5 уроков
1.
НАСТРОЙКА!!! Версия Intellij Idea должна быть 2024.3.2.2 и выше
↗
2.
Обзор проекта Lombok и рекомендации
↗
3.
Итоговый код секции
↗
4.
Настройка Intellij и Maven для поддержики Lombok
↗
5.
Добавление аннотаций Lombok в код
↗
Введение в web (в разработке)
20 уроков
1.
Как происходит коммуникация между компьютерами через сеть (OSI)
↗
2.
Создание Spring Web проекта
↗
3.
IP адреса, DNS адреса, localhost, протокол TCP
↗
4.
HTTP протокол, струтура HTTP сообщения
↗
5.
Web servers, Apache Tomcat, Servlets
↗
6.
DispatcherServlet в Spring Web (демонстрация работы)
↗
7.
Использование threads (потоков) в Tomcat
↗
8.
URL
↗
9.
Аннотация @RequestMapping
↗
10.
Аннотация @PathVariable
↗
11.
Аннотация @RequestParam
↗
12.
Знакомство с HTTP POST и Postman
↗
13.
Метод POST - разбор особенностей
↗
14.
Метод POST - request body и content type
↗
15.
Метод POST - пример работы с content type
↗
16.
Формат JSON
↗
17.
Jackson в Spring Boot, автоконфигурация
↗
18.
Кастомизация автоконфигурации Jackson (LocalDateTime format)
↗
19.
Jackson аннотация @JsonProperty
↗
20.
Краткий обзор других аннотаций в Jackson
↗