Формат обучения:
- Стажировка ведется по готовым материалам: видео, тематические ресурсы, проект, патчи, подобно вступительному занятию, без привязки к времени и местоположению.
- Каждый четверг производится рассылка новых материалов, обновления к проекту (патчи) и домашннее задание. Мы последовательно разрабатываем приложение с разбором кода и теоретическим материалом.
- Все домашние задания подобраны по темам занятия, требуют реализации функциональности, схожей с пройденным на занятии и являются частью проекта. Разбор домашних заданий происходит в начале каждого следующего урока.
- Поддержка преподавателя, ответы на вопросы и обсуждение занятий и домашних заданий происходит в различных каналах группы проекта (используем мессенджер Slack). Каждый урок/домашнее задание обсуждается в своем канале. Для решения проблем используется удаленный доступ TeamViewer.
- Самый эффективный способ научиться программировать: проходить ревью кода домашних заданий (ошибки в стиле, структурах данных, алгоритмах и кодировании). После проверки можно исправить замечания и пройти ее еще раз.
- Начиная с 4-го занятия, участники разрабатывают собственный выпускной проект на стеке Maven/ Spring MVC, Security/ Hibernate/ REST, ревью которого входит в участие с проверкой.
- На заключительном занятии каждый участник деплоит свой проект на собственный выделенный сервер
Прошел курс TopJava летом 2019. Очень понравилась тесная связь с практикой - никаких нудных лекций с теорией по 3 часа. Прослушал/прочитал небольшое объяснение и вперед - читать код. Прочитал? Напиши сам! При этом есть огромное количество ссылок на дополнительный материал, если нужно копнуть глубже. Понравился стек технологий, всё актуально и постоянно обновляется. Наличие выпускного проекта - ещё один огромный плюс, позволяет почувствовать что ты уже способен на что-то сам. В целом - прекрасный курс, огромное спасибо Григорию и команде javaops!
Пример 7-го занятия TopJava, некоторые видео открыты.
- Основное внимание будет уделяться способам решения многочисленных проблем разработки в Spring 5/JPA, а также структурному (красивому и надежному) кодированию и архитектуре приложения.
- Несмотря на относительно небольшой размер, приложение разрабатывается с нуля как большой проект (например, мы используем кэш 2-го уровня Hibernate, настраиваем Jackson для работы с ленивой загрузкой Hibernate, делаем конверторы для типов LocalDateTime (Java 8 time API). Разбираются архитектурные паттерны: слои приложения и как правильно разбивать логику по слоям, когда нужно применят Data Transfer Object. На выходе получается не учебный проект, а хорошо маштабируемый шаблон для большого проекта на всех пройденных технологиях.
- Большое внимание уделяется деталям: популяция базы, использование транзакционности, тесты сервисов и REST-контроллеров (в проекте более 100 JUnit тестов!), насторойка EntityManagerFactory, выбор реализации пула коннектов, кэширование на уровне Hibernate и приложения. Особое внимание уделяется работе с базой: через Spring JDBC Template, Spring ORM и Spring Data Jpa.
- Используются самые востребованные на сегодняшний момент фреймворки: Maven, Spring 5, Hibernate 5.2, Ehcache 3.x, библиотека логирования logback, реализующая SLF4J, повсеместно используемый Bootstrap 4 и jQuery.
- Код проекта постоянно рефакторится: появились настройки пользователя, сохранения собственных типов в Hibernate, модальные окна bootstrap, переключение локали, JsonView и Validation groups, сильно уменьшено количество и упрощена работа с java script. Появилась логика фильтрации таблицы и сброс фильтра. В каждом уроке добавляются ответы на ваши вопросы по занятию, дополнительные домашние задания и подсказки по выполнению домашних заданий.