Стажировка Enterprise Java-разработчик (TopJava)
Проект Spring/ JPA Enterprise (TopJava)
Возможно, ты уже видел известное видео Java-чемпиона Якова Фaйна Как стать профессиональным Java-разработчиком. Не надо устраиваться на работу как Junior. Получи опыт работы в реальном Spring/JPA Enterprise проекте!
Разработка полнофункционального Spring/ JPA enterprise-приложения c авторизацией и правами доступа
на основе ролей на самом востребованном Java стеке: Maven, Spring MVC, Security, JPA(Hibernate),
REST(Jackson), JUnit 5, Bootstrap (css,js), Stream and Time API, миграцию на JDK
25,
сохранением в базах данных PostgreSQL и HSQLDB и деплоем на собственный выделенный сервер (первое
занятие курса Startup)
Миграция на Spring Boot 4, Lombok, JPA, H2, Swagger/OpenAPI 3.0
Демо разрабатываемого приложения
Лучшие выпускные проекты участников
Ваши вопросы:
Насколько это "свежий" курс?
Мы разрабатываем наш проект на чистом Spring (без Spring Boot) чтобы были понятны внутренности и механизм работы.
К тому же достаточно еще осталось много больших корпоративных Java проектов именно на Spring. Также используется пакет javax, на не новый jakarta, но разницы для
нашего кода и используемых на проекта технологий - практически никакой.
В конце курса мы мигрируем наш проект на последнюю версию Spring Boot 4.x.
Начиная с 4-го занятия участники пишут свой выпускной проект и он уже на Spring Boot последней версии. Таким образом мы изучаем, что такое Spring Framework изнутри, чтобы иметь возможность, например, понимать и исправить код, сгенерированный ИИ-агентом и, одновременно, код после миграции проекта и код вашего выпускного — самый актуальный.
Почему убрали потоки?
Поток - когда вся группа идет по заданному расписанию и делает один и тот же урок.
Плюсы прохождения в потоке - участники смотрят друг на друга, обсуждаются те же самые вопросы между собой, кураторам проще делать ревью кода. Это оптимальный вариант, когда участников больше 10 чел. Если участников меньше - эффект совместного прохождения сводится на нет.
Минусы потока - приходилось ждать начало потоков (курс стартовал 3 раза в год) и необходимость всем держать одинаковый темп, хотя опыт и скорость обучения у каждого своя. Когда учеников немного, лучше подходит индивидуальное обучение, поэтому сейчас мы перешли на него.
При этом стоимость индивидуального обучения осталась как в потоке.
Время прохождения осталось 4 месяца на обучения и сдачу выпускного + возможность продления на 2 недели и 1,2,3 месяца.
Структура проекта
Требования к участникам:
Некоторый опыт программирования на Java: предполагается, что вы уже знаете, что такое классы, конструкторы, аннотации, анонимные классы, исключения и пр. Желательно знание сервлетов. Мы начинаем использовать их на первом занятии, кратко повторяя основы. Желательно знание JDBC/SQL (на уровне Select/Update/Delete), самых основ JavaScript, HTML. Весь "Enterprise": Maven, Git (в том объеме, который нам нужен), Spring, Hibernate, REST даются с азов.
Формат обучения:

- Стажировка ведется по готовым материалам: видео, тематические ресурсы, проект, патчи, подобно вступительному занятию, без привязки к времени и местоположению.
- Все домашние задания подобраны по темам занятия, требуют реализации функциональности, схожей с пройденным на занятии и являются частью проекта. Разбор домашних заданий происходит в начале каждого следующего урока.
- Поддержка преподавателя, ответы на вопросы и обсуждение занятий и домашних заданий происходит в различных каналах группы проекта (используем мессенджер Telegram). Каждый урок/домашнее задание обсуждается в своей теме.
- Самый эффективный способ научиться программировать: проходить ревью кода домашних заданий (ошибки в стиле, структурах данных, алгоритмах и кодировании). После проверки можно исправить замечания и пройти ее еще раз.
- Начиная с 4-го занятия, участники разрабатывают собственный выпускной проект на стеке Maven/ Spring MVC, Security/ Hibernate/ REST, ревью которого входит в участие с проверкой.
- На заключительном занятии каждый участник деплоит свой проект на собственный выделенный сервер
Отзыв Александра
Верхотуркина (всего более 250!)
Прошел курс TopJava летом 2019. Очень понравилась тесная связь с практикой - никаких нудных
лекций с теорией по 3 часа. Прослушал/прочитал небольшое
объяснение и вперед -
читать код. Прочитал? Напиши сам! При этом есть огромное количество ссылок на дополнительный
материал,
если нужно копнуть глубже. Понравился стек технологий, всё актуально и постоянно
обновляется. Наличие выпускного проекта - ещё один огромный плюс,
позволяет почувствовать
что ты уже способен на что-то сам. В целом - прекрасный курс, огромное спасибо Григорию и
команде
javaops!
Пример 7-го занятия TopJava, некоторые видео открыты.
- Основное внимание будет уделяться способам решения многочисленных проблем разработки в Spring 5/JPA, а также структурному (красивому и надежному) кодированию и архитектуре приложения.
- Несмотря на относительно небольшой размер, приложение разрабатывается с нуля как большой проект (например, мы используем кэш 2-го уровня Hibernate, настраиваем Jackson для работы с ленивой загрузкой Hibernate, делаем конверторы для типов LocalDateTime (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. Появилась логика фильтрации таблицы и сброс фильтра. В каждом уроке добавляются ответы на ваши вопросы по занятию, дополнительные домашние задания и подсказки по выполнению домашних заданий.
Стоимость за месяц за 4 месяца стажировки
(с возможностью продления)
Скидка 25%
Без проверки
домашних заданий
- Доступ ко всем материалам занятий
- Ведение enterprise-проекта
- Домашние задания к каждому занятию
- Подробный видеоразбор решений домашних заданий
- Большой чат в Telegram для общения и обмена опытом (на каждое занятие и тему - свой канал)
- Ответы на все вопросы и помощь с проектом
С индивидуальной проверкой домашних заданий и ревью выпускного проекта
Ревью вашего кода позволит увидеть свои ошибки в стиле, структурах данных, алгоритмах и коде
Самый эффективный метод научиться программировать
Отзывы
участников с проверкой
Всем участникам предоставляются:
Поддержка преподавателя, ответы на вопросы и обсуждение занятий и домашних заданий в группе участников.
Общение с нашими выпускниками в
специальной группе Slack и канале Telegram
Свежие вакансии для начинающих разработчиков, помощь с Java, отзывы о работодателях, события IT, интересные видео...
Доступ ко всем материалам навсегда, без привязки ко времени и местоположению
Все видео доступны для просмотра онлайн и скачивания в любое время и без ограничения по срокам. Записи разбиты по темам и тщательно отредактированы. Большое количество подобранных ресурсов для углубления в детали.
Специальные цены участника на все наши проекты
Способы оплаты:
Возврат стоимости неактивированных курсов (при покупке пакета) и непроверенных уроков в течение месяца со дня оплаты
Результаты опроса выпускников:
Программа
- Осваиваем Java Enterprise. Трудоустройство. Ответы на вопросы.
- Системы управления версиями. Git.
- Работа с проектом (выполнять инструкции)
- Домашнее задание (HW0 + Optional)
- Замечания к HW0
-
Проверка домашнего
задания вступительного занятия.
- Разбор домашнего задания вступительного занятия (вместе с Optional)
- Обзор используемых в проекте технологий. Интеграция ПО
- Maven
- WAR. Веб-контейнер Tomcat. Сервлеты
- Логирование
- Уровни и зависимости логгирования
- Домашнее задание 1-го занятия (HW1 + Optional)
- Разбор домашнего задания HW1 + Optional
- Слои приложения. Создание каркаса приложения
- Обзор Spring Framework. Spring Context
- Пояснения к HW2. Обработка Autowired
- Домашнее задание (HW2 + Optional)
- Разбор домашнего задания HW2 + Optional
- Жизненный цикл Spring-контекста
- Тестирование через JUnit
- Spring Test
- Базы данных. Обзор NoSQL и Java persistence solution без ORM
- Развертывание PostgreSQL. Docker
- Настройка Database в IDEA
- Скрипты инициализации базы. Spring Jdbc Template
- Тестирование UserService через AssertJ
- Логирование тестов
- Домашнее задание (HW3 + Optional)
- Разбор домашнего задания HW3 + Optional
- Методы улучшения качества кода
- Spring: инициализация и популирование DB
- Подмена контекста при тестировании
- ORM. Hibernate. JPA
- Поддержка HSQLDB
- Домашнее задание (HW4 + Optional)
- Начало выполнения выпускного проекта
- Обзор JDK 9/17. Миграция TopJava с 1.8 на 17
- Разбор вопросов
- Разбор домашнего задания HW4 + Optional
- Транзакции
- Профили Maven и Spring
- Пул коннектов
- Spring Data JPA
- Spring кэш
- Домашнее задание (HW5 + Optional)
- Разбор домашнего задания HW5 + Optional
- Кэш Hibernate
- Spring Web
- JSP, JSTL, internationalization
- Динамическое изменение профиля при запуске
- Конфигурирование Tomcat через maven plugin. Jndi-lookup
- Spring Web MVC
- Spring Internationalization
- Домашнее задание (HW6 + Optional)
- Разбор домашнего задания HW6 + Optional
- Автогенерация DDL по модели
- Тестирование Spring MVC
- Миграция на JUnit 5
- Принципы REST. REST-контроллеры
- Тестирование REST-контроллеров. Jackson
- jackson-datatype-hibernate. Тестирование через матчеры
- Тестирование через SoapUi. UTF-8
- Домашнее задание (HW7 + Optional)
- Разбор домашнего задания HW7 + Optional
- WebJars. jQuery и JavaScript frameworks
- Bootstrap
- AJAX. Datatables. jQuery
- jQuery notifications plugin
- Добавление Spring Security
- Домашнее задание (HW8 + Optional)
- Разбор домашнего задания HW8 + Optional
- Spring Binding
- Spring Validation
- Перевод DataTables на Ajax
- Форма login / logout
- Реализация собственного провайдера авторизации
- Принцип работы Spring Security. Проксирование
- Spring Security Test
- Cookie. Session
- Домашнее задание (HW9 + Optional)
- Разбор домашнего задания HW9 + Optional
- Кастомизация JSON (@JsonView) и валидации (groups)
- Рефакторинг: jQuery конверторы и группы валидации по умолчанию
- Spring Security Taglib. Method Security Expressions
- Интерсепторы. Редактирование профиля. JSP tag files
- Форма регистрации
- Обработка исключений в Spring
- Encoding password
- Миграция на Spring 5
- Защита от межсайтовой подделки запросов (CSRF)
- Домашнее задание (HW10)
- Разбор домашнего задания HW10 + Optional
- Локализация datatables, ошибок валидации
- Защита от XSS (Cross Site Scripting)
- Обработка ошибок 404 (NotFound)
- Доступ к AuthorizedUser
- Ограничение модификации пользователей
- Настройка хостинга и деплой на сервер (первое занятие курса Startup)
- Регистрация хостинга, доступ к серверу
- Создание пользователя, регистрация домена
- Установка JDK
- Установка Tomcat
- Установка PostgreSQL, создание БД
- Деплой war на сервер
- Собеседование. Разработка ПО
- Возможные доработки приложения
- Основы Spring Boot. Spring Boot maven plugin
- Lombok, база H2, ApplicationRunner
- Spring Data REST + HATEOAS
- Swagger/ OpenAPI 3.0
- Тестирование и кэширование в Spring Boot
- Миграция приложения TopJava на Spring Boot
Общий срок проверки + сдача выпускного проекта на ревью: 4 месяца с возможностью продления
Составление и ревью личного резюме
После стажировки мы составляем твое резюме Java разработчика:
- Обязательно убери из резюме любое упоминание Junior.
Количество
обращений возрастет на порядок.
Еще из рекомендаций сделать позицию: «Java-разработчик» - После завершения проекта ты освоишь все заявленные в нем технологии -
вставь их в квалификацию.
Обязательно должен быть Spring Boot, это майнстрим! -
В разделе опыт работы (если нет коммерческого опыта Java разработчика) вставь:
-
участие в разработке Spring/ JPA enterprise-приложения c
авторизацией и
правами доступа на основе ролей на стеке:
Maven, Spring MVC, Spring Security, REST (Jackson), Stream
API:
- реализация сохранения в базы PostgreSQL и HSQLDB на основе Spring JDBC, JPA(Hibernate) и Spring-Data-JPA
- реализация и тестирование REST и AJAX контроллеров (более 130 JUnit тестов)
- реализация клиента на Bootstrap (css/js), datatables, jQuery + plugins.
- реализация с нуля приложения голосования за рестораны с REST API на стеке Spring Boot 4, Lombok, JPA, H2, Swagger/OpenAPI 3.0
-
участие в разработке Spring/ JPA enterprise-приложения c
авторизацией и
правами доступа на основе ролей на стеке:
Maven, Spring MVC, Spring Security, REST (Jackson), Stream
API:
Делай упор не на обучение, а на полученный практический опыт. Выполнение домашних заданий и собственный выпускной проект это полноценный опыт по всем пройденным технологиям. На собеседовании смотрят не на то, что ты заканчивал, а на твои практические навыки. Постарайся рассказать как можно больше о своем выпускном, участии в проекте и пройденных технологиях и оффер тебе обеспечен. Ссылку на компанию можно поставить, например в LinkedIn.
Ревью выпускного проекта
Начиная с 4-го занятия, участники разрабатывают собственный выпускной проект на стеке Maven/ Spring MVC, Security/ Hibernate/ REST, ревью которого входит в участие с проверкой. По данным National Training Laboratories "немедленное применение знаний на практике" дает максимальную эффективность обучения.
Трудоустройство
- Если рассмотриваешь предложения по работе, подними в своем профиле этот флаг и обязательно заполни ссылку на резюме. Обновления нашей базы выпускников (за исключением корпоративных участников) смотрят уже более 750 партнеров по трудоустройству (компании и индивидуальные рекрутеры). Проверь содержание "Информация для HR": по нему принимают решение, смотреть резюме или нет.
- Жду твой выпускной проект. С успешным выпускным проектом в большом городе не трудоустроится практически невозможно
- Вступай в нашу общую группу участников Slack: каналы помощи с Java, отзывы о работодателях, обсуждение тестовых заданий, вакансии, цены на рынке труда, IT-события, интересные видео и многое другое.
- Подпишись на рассылку вакансий под себя
После прохождения испытательного срока на первой работе
жду твою историю
успеха
Отзывы реальных участников (более 250)
Отзыв Дмитрия Холодилова:
Всем привет!
В ИТ и в разработке ПО я не новичок, однако с миром Java не пересекался.
Java Core изучал самостоятельно, но посмотрев на разгул фреймворков и
спецификаций в Java EE, решил, что будет быстрее и эффективнее подписаться
на какой-нибудь курс. Тут как раз встретился на просторах сети TopJava.
Впечатлило количество технологий, при этом технологий востребованных на
рынке – вывод делал по анализу вакансий на хедхантерских сайтах. Также
плюсом TopJava виделось обучение через разработку веб проекта. Изучать
программирование теоретически – бесполезная трата времени. Подписался на
курс с проверкой заданий. Три месяца пролетели в активном кодинге и изучении
нового. В целом остался очень и очень доволен.
Отмечу, что особенно понравилось:
- Проект живой, в процессе выполнения заданий находились более актуальные и эффективные решения, и они включались в итоговую сборку.
- Курс охватывает все основные аспекты разработки веб-приложения от БД до фронтенда, при этом демонстрируются подходы к решению задачи с помощью различных технологий. Например, работа с БД показана последовательно через Spring JDBC Template, JPA и Spring Data.
- Не книжно-шаблонные, а реальные задачи и домашние задания дают понимание тонкостей и сложностей применяемых технологий
Считаю, что необходимо проходить этот курс с проверкой заданий. Код ревью дает обратную связь от разработчика с огромным опытом в Java. Всегда с большим интересом и нетерпением ждал проверок и получил массу полезных рекомендаций и комментариев по своему коду. Григорий, как истинный джавист, уделяет большое внимание качеству кода и рефакторингу. Подытоживая, рекомендую TopJava всем, кто готов погрузится в сложный, но интересный мир Java Enterprise. Для оптимальной отдачи от проекта нужна база в Java и программировании.
Григорию спасибо! Всем участникам проекта удачи и успеха!