Java. Путь от ученика до эксперта

Всем привет. Меня зовут Петр. Я – Java-разработчик с опытом работы более 6 лет. Я знаю, как сложно освоить новый язык или технологию. Когда человек начинает изучать Java, первое, с чем он сталкивается, – это огромное количество технологий, фреймворков и библиотек. В этом разнообразии немудрено потеряться, поэтому новичок не знает, с чего ему начать. Создается впечатление, что порог вхождения в Java-программисты очень высок.
Данным курсом я хочу показать обратное. За пару месяцев интенсивного обучения вы овладеете достаточными знаниями для устройства на работу, прохождения собеседования и выполнения требуемых задач на работе. Особо хотел бы отметить, что это практический курс, поэтому важную роль играет выполнение всех заданий на каждом занятии. Только тогда будет положительный результат.

Полный видеокурс доступен по ссылке.

Лучшие работы учеников: Panchenko Vlad, Victor Kotlyar

План курса

  • Понятие JVM. Типы данных
  • Синтаксис языка. Классы. Объекты. Условия. Циклы. Массивы
  • Наследование. Инкапсуляция. Полиморфизм
  • Коллекции. List, Set, Map, Tree
  • Инструменты сборки. Хранение кода. Maven, Git
  • Базовые понятия клиент-серверных приложений. Протоколы передачи
  • Обработка http-запросов в Java. Servlets. JSP
  • Основы HTML, CSS, JS
  • Реализация MVC через Servlets. JSP
  • Работа с базой данных. JDBC
  • Базовый синтаксис SQL
  • Использование POJO в работе с базами данных. ORM
  • Hibernate, Mapping
  • Hibernate, CRUD
  • HQL
  • Spring IoC
  • Spring Template + Hibernate
  • Spring MVC
Занятие 1. Вводная часть

Видео
Постановка цели:
  • Какова ваша цель изучения языка Java?
  • Как вы можете понять, что цель достигнута?
  • Какой срок реализации вашей цели?
Занятие 2. Инструменты разработки

Видео Задания:
  • Установить все пакеты на своем компьютере.
  • Прописать необходимые переменные окружения.
  • Проверить работоспособность каждого элемента из списка.
Занятие 3. Типы

Видео 1 часть
Видео 2 часть
Детальное описание

Задания:
  • Создать класс Calculate.
  • Добавить арифметические вычисления + - * / ^
  • Сделать его адаптивным для типов int, short, long, float, double.
Занятие 4. Классы. Объекты, Циклы, Условия

Видео
Дополнительная информация: Задания:
  • Создать класс Calculator.
  • Добавить два класса клиента ArgRunner и InteractRunner. ArgRunner: данные берутся из параметров запуска программы. InteractRunner: данные вводит пользователь.
  • Добавить возможность выборки операции, валидацию, повторное использование результата вычисления.
Занятие 5. Оформление кода

Видео
Детальное описание
Задания:
  • Проверить весь проект по пунктам из занятия.
  • Поправить нарушения этих правил.
Занятие 6. Наследование. Инкапсуляция. Полиморфизм

Видео
Дополнительная информация: Задание:
Создать программу для обслуживания клиники домашних питомцев. Должны быть реализованы возможности:
  • Добавление клиентов
  • Указание, какой питомец есть у клиента
  • Поиск по кличке питомца, по имени клиента
  • Редактирование имени клиента, имени питомца
  • Удаление клиента, питомца
  • Валидация
Занятие 7. Подключение Maven, IDEA, JUnit

Видео
Дополнительная информация: Задания:
  • Добавить Мaven для проектов "Клиника домашних животных" и "Калькулятор".
  • Добавить тесты в эти проекты.
Занятие 8. Исключительные ситуации. Exception, Error

Видео
Дополнительная информация
Задания:
  • Заменить сообщения о нарушении логики в приложении на пробрасывание исключительных ситуаций.
  • Добавить тесты, которые проверяют эти исключения.
Занятие 9. Создание исполняемого файла. Manifest

Видео
Дополнительная информация: Задания:
  • Сделать программу "Клиника" исполняемой.
  • Добавить файл README.md и описать в нем назначение программы и ее возможности.
  • Попросить своих друзей попробовать использование программы.
  • Получить впечатления и отзывы друзей. Провести работу над ошибками.
Занятие 10. Коллекции. List, Set, Map, Tree

Видео
Книга
Задания:
  • Создать свою реализацию коллекций ArrayList на базе массива.
  • Создать свою реализацию LinkedList на базе связанных списков.
  • Заменить массивы в проекте "Клиника" на вашу реализацию.
Занятие 11. Коллекции. Equals. hashCode

Видео
Дополнительная информация
Задания:
  • Создать класс "пользователь".
  • Провести эксперимент с коллекциями ArrayList, HashSet, HashMap.
  • Перекрыть equals, hashCode.
  • Перекрыть только equals.
  • Перекрыть только hashCode.
  • Не перекрывать.
  • Объяснить результаты работы коллекций, методов contains, add, size, put.
Занятие 12. Многопоточность

Видео
Дополнительная информация
Задание:
Реализовать эмуляцию клиентов и администратора в проекте "Клиника".

Занятие 13. GUI. Игра "Сапер"

Видео
Дополнительная информация
Задание:
Завершить создание игры "Сапер", реализованной на основе Swing.

Занятие 14. Клиент-сервер. Протоколы передачи

Видео
Дополнительная информация: Задания:
  • Расширить модель User.
  • Реализовать возможность поиска.
Занятие 15. JSP, Servlet, JSTL

Видео
Дополнительная информация
Задание:
Реализовать проект "Клиника" в виде web-приложения.

Занятие 16. Тестирование Servlet. Mockito

Видео
Дополнительная информация
Задания:
  • Добавить тестирование сервлетов.
  • Добиться площади покрытия более 80%.
Занятие 17. HTML, CSS, JS

Видео
Дополнительная информация
Задания:
  • Добавить стили.
  • Добавить валидацию за счет JS.
  • Добавить разнообразные формы.
Занятие 18. SQL

Видео
Дополнительная информация
Задания:
  • Создать структуры базы данных для хранения данных клиники.
  • Создать записи для клиентов, питомцев.
  • Отредактировать записи для клиентов, питомцев.
  • Удалить записи для клиентов, питомцев.
  • Получение записей о клиентах, питомцах.
Занятие 19. JDBC

Видео
Дополнительная информация
Задание:
Заменить хранение данных в клиенте на хранение в базе через JDBC.

Занятие 20. Hibernate, Config

Видео
Дополнительная информация
Задание:
Создать новый тип хранилища не основе Hibernate.

Занятие 21. Hibernate, Mapping

Видео
Дополнительная информация
Задание:
Добавить связи в моделях клиники.

Занятие 22. Hibernate, Query

Видео
Дополнительная информация
Задание:
Добавить сложные поисковые запросы в клинику через Hibernate Query.

Занятие 23. Spring, IoC

Видео
Дополнительная информация
Задание:
Реализовать dbtool, используя Spring IoC.

Занятие 24. Spring Template, Hibernate

Видео
Дополнительная информация
Задание:
Сделать интеграцию Spring и Hibernate.

Занятие 25. Spring MVC

Видео
Дополнительная информация
Задание:
Реализовать MVC через Spring.

Занятие 26. Spring Security

Видео
Дополнительная информация
Задание:
Добавить прослойку проверки авторизации и аутентификации.

Занятие 27. Заключение

Видео
Задание:
Создать проект "Клиника домашних животных", используя все технологии, указанные в проекте.