Каталог модулей

Темы и программы обучения

Программа под вашу задачу

В модулях собраны основные темы обучения. Мы можем сочетать их, менять глубину и последовательность, разбирать конкретные вопросы или работать над вашим проектом.

Если нужной темы нет в списке, напишите мне. Обсудим задачу, и я скажу, смогу ли помочь и какой формат работы подойдёт

Для индивидуального сопровождения, обучения небольшой группы и корпоративных занятий.

Обсудить задачу

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

Java и базы данных

Java и объектная модель

Необходимые основы
Базовое знакомство с программированием.
Практическая цель
Реализовать небольшую предметную модель с бизнес-правилами и объяснить устройство решения
Подробное содержание

Основы языка

  • Типы данных, условия и циклы.
  • Методы и работа со строками.

Объектный подход

  • Классы и интерфейсы.
  • Инкапсуляция, наследование и композиция.

Прикладная логика

  • Моделирование предметной области и проверка ограничений.
  • Исключения и обработка ошибок.

Коллекции и обработка данных в Java

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

Коллекции

  • List, Set, Map и выбор структуры под задачу.
  • equals и hashCode.

Обобщения

  • Типобезопасность и generics.
  • Работа с обобщёнными классами и методами.

Обработка данных

  • Лямбда-выражения и Stream API.
  • Фильтрация, группировка и сортировка.
  • Optional.

SQL и PostgreSQL

Необходимые основы
Базовое знакомство с программированием; предварительные знания SQL необязательны.
Практическая цель
Спроектировать схему небольшой базы и написать запросы для реальных сценариев приложения
Подробное содержание

Модель данных

  • Таблицы, связи и ключи.
  • Ограничения целостности и основы нормализации.

Запросы

  • Выборка и изменение данных.
  • JOIN, группировки и агрегатные функции.
  • Подзапросы.

Надёжность операций

  • Транзакции и откат изменений.
  • Основы конкурентной работы с данными.

Spring и разработка API

Spring и Spring Boot

Необходимые основы
Java, объектный подход и работа с коллекциями.
Практическая цель
Собрать приложение с понятной структурой компонентов и управляемыми настройками
Подробное содержание

Основы Spring

  • Контейнер и внедрение зависимостей.
  • Бины и конфигурация.

Spring Boot

  • Структура приложения и зависимости.
  • Автоконфигурация и запуск.

Настройки

  • Параметры приложения и профили окружения.
  • Диагностика ошибок конфигурации.

HTTP API и интеграции

Необходимые основы
Java и базовое знакомство со Spring Boot.
Практическая цель
Реализовать API для прикладной задачи и подключить его к внешнему сервису или учебной заглушке
Подробное содержание

HTTP

  • Запросы и ответы.
  • Методы, заголовки и коды состояния.

Разработка API

  • REST, JSON и DTO.
  • Валидация и обработка ошибок.
  • Пагинация.

Внешние вызовы

  • Взаимодействие с другим сервисом.
  • Тайм-ауты и обработка неуспешных ответов.

Работа с базой данных из Java

Необходимые основы
Java, Spring и базовые знания SQL.
Практическая цель
Подключить PostgreSQL к приложению и реализовать сохранение и чтение данных с понятными границами транзакций
Подробное содержание

Подходы к доступу

  • JDBC и ORM.
  • Роли JPA и Hibernate.

Отображение данных

  • Сущности, связи и репозитории.
  • Запросы и загрузка связанных объектов.

Транзакции приложения

  • Границы операций, @Transactional и откат.
  • Типичные ошибки работы с persistence context.

Расширение Spring: AOP и собственные стартеры

Необходимые основы
Практический опыт работы со Spring Boot и конфигурацией приложения.
Практическая цель
Создать небольшой переиспользуемый компонент или стартер и показать, как он подключается и настраивается
Подробное содержание

AOP

  • Аспекты, точки применения и advice.
  • Прокси и ограничения подхода.

Автоконфигурация

  • Условия подключения компонентов.
  • Параметры и переопределение настроек.

Spring Boot Starter

  • Выделение повторяемой функциональности.
  • Подключение в другое приложение и проверка конфигурации.

Spring Security и JWT

Необходимые основы
Spring Boot и разработка HTTP API.
Практическая цель
Реализовать учебный сценарий доступа к API и подтвердить правила безопасности тестами
Подробное содержание

Основы доступа

  • Аутентификация и авторизация.
  • Роли и права.

Защита приложения

  • Цепочка фильтров и правила доступа к API.
  • Обработка отказов.

JWT

  • Состав и проверка токена, срок действия.
  • Типичные ошибки.
  • Тестирование разрешённых и запрещённых действий.

Интеграции и распределённые приложения

Apache Kafka и событийное взаимодействие

Необходимые основы
Java и Spring Boot.
Практическая цель
Реализовать обмен событиями и проверить поведение обработчика при ошибках и повторном получении сообщения
Подробное содержание

Устройство

  • Брокер, topic и partition.
  • Producer, consumer, consumer group и offset.

Обмен событиями

  • Формат сообщения и сериализация.
  • Публикация и обработка, интеграция со Spring.

Ошибки обработки

  • Повторная доставка и повторы.
  • Порядок сообщений и идемпотентность обработчика.

Микросервисы и взаимодействие приложений

Необходимые основы
HTTP API, базы данных и понимание устройства серверного приложения.
Практическая цель
Разобрать архитектуру небольшого сценария, выбрать способ взаимодействия и проверить поведение при сбоях
Подробное содержание

Границы системы

  • Монолит, модульный монолит и микросервисы.
  • Ответственность компонентов.

Контракты

  • Синхронное и событийное взаимодействие.
  • Владение данными и изменение интерфейсов.

Сбои

  • Недоступность соседнего сервиса и тайм-ауты.
  • Повторные запросы и частичное выполнение операции.

Согласованность данных и кэширование

Необходимые основы
Spring, транзакции базы данных и Kafka. Углублённая тема; конкретный сценарий подбирается под запрос.
Практическая цель
Разобрать конкретный сценарий рассинхронизации и проверить предложенное решение на учебном примере
Подробное содержание

База и события

  • Связь изменения данных с публикацией сообщения.
  • Разбор подхода outbox.

Повторная обработка

  • Дубликаты и идемпотентность.
  • Восстановление после ошибки.

Кэш

  • Срок жизни, обновление и инвалидация.
  • Устаревшие данные.
  • Согласование кэшей нескольких экземпляров приложения.

Качество кода и рабочий процесс

Тестирование Java-приложений

Необходимые основы
Java; для интеграционной части — знакомство со Spring и базами данных.
Практическая цель
Написать тесты, которые проверяют существенное поведение приложения и помогают обнаруживать ошибки при изменениях
Подробное содержание

Модульные тесты

  • JUnit и структура теста.
  • Граничные случаи и проверка исключений.

Зависимости в тестах

  • Mockito и заглушки.
  • Выбор того, что действительно нужно подменять.

Интеграционные проверки

  • Взаимодействие компонентов, API и базы данных.
  • Подготовка тестовых данных и воспроизводимость.

Читаемый код, отладка и рефакторинг

Необходимые основы
Опыт написания небольших программ на Java.
Практическая цель
Найти проблему в существующем коде, исправить её и объяснить, почему предложенное изменение полезно
Подробное содержание

Структура кода

  • Имена, размер методов и ответственность классов.
  • Дублирование и зависимости.

Поиск ошибок

  • Воспроизведение проблемы и отладчик.
  • Stack trace и диагностические логи.

Улучшение решения

  • Небольшие безопасные изменения.
  • Сохранение поведения тестами и аргументированное code review.

Работа над приложением: от задачи до запуска

Необходимые основы
Опыт работы над небольшим Java-приложением.
Практическая цель
Провести изменение через полный учебный цикл: от постановки задачи до работающего приложения и проверки его поведения
Подробное содержание

Организация работы

  • Понимание требований и декомпозиция.
  • Задачи в трекере и критерии готовности.

Git и проверка изменений

  • Ветки, коммиты и конфликты.
  • Pull/merge request и замечания на ревью.

Доставка результата

  • Сборка, автоматические тесты и основы CI/CD.
  • Развёртывание и настройки окружения.
  • Логи и базовые метрики.

Поиск причин медленной работы приложения

Необходимые основы
Опыт работы с Java-приложением и SQL; для разбора ORM — знакомство с JPA/Hibernate.
Практическая цель
Найти узкое место в подготовленном примере и обосновать улучшение результатами измерений
Подробное содержание

Диагностика

  • Воспроизведение проблемы и измерение времени.
  • Логи и метрики.

База данных

  • Планы запросов и индексы.
  • Объём выбираемых данных, лишние обращения и N+1.

Проверка улучшений

  • Сравнение до и после, повторяемость измерений.
  • Влияние изменений на корректность.

Подготовка к собеседованию

Подготовка к техническому собеседованию

Для кого
Начинающие и junior-разработчики, знакомые с выбранными технологиями.
Практическая цель
Пройти тренировочное собеседование и получить конкретный перечень тем и навыков для доработки
Подробное содержание

Диагностика знаний

  • Вопросы и задачи по выбранным темам.
  • Выявление пробелов.

Практическая часть

  • Чтение кода и поиск ошибок.
  • Небольшие задачи и объяснение собственных решений.

Тренировочное собеседование

  • Обсуждение проекта и аргументация технических решений.
  • Обратная связь и дальнейший план подготовки.

Помогу подобрать темы и последовательность занятий под ваш уровень и задачу

Обсудить задачу