Стажировка 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, H2, Swagger/OpenAPI 3.0
Демо разрабатываемого приложения
Лучшие выпускные проекты участников
Требования к участникам:
Некоторый опыт программирования на Java: предполагается, что вы уже знаете, что такое классы, конструкторы, аннотации, анонимные классы, исключения и пр. Желательно знание сервлетов. Мы начинаем использовать их на первом занятии, кратко повторяя основы. Желательно знание JDBC/SQL (на уровне Select/Update/Delete), самых основ JavaScript, HTML. Весь "Enterprise": Maven, Git (в том объеме, который нам нужен), Spring, Hibernate, REST даются с азов.
Формат обучения:
- Стажировка ведется по готовым материалам: видео, тематические ресурсы, проект, патчи, подобно вступительному занятию, без привязки к времени и местоположению.
- Каждый четверг производится рассылка новых материалов, обновления к проекту (патчи) и домашннее задание. Мы последовательно разрабатываем приложение с разбором кода и теоретическим материалом.
- Все домашние задания подобраны по темам занятия, требуют реализации функциональности, схожей с пройденным на занятии и являются частью проекта. Разбор домашних заданий происходит в начале каждого следующего урока.
- Поддержка преподавателя, ответы на вопросы и обсуждение занятий и домашних заданий происходит в различных каналах группы проекта (используем мессенджер 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. Появилась логика фильтрации таблицы и сброс фильтра. В каждом уроке добавляются ответы на ваши вопросы по занятию, дополнительные домашние задания и подсказки по выполнению домашних заданий.
Стоимость (削除) за месяц (削除ここまで) за 4 месяца стажировки.
Без проверки
домашних заданий
- Доступ ко всем материалам занятий
- Ведение enterprise-проекта
- Домашние задания к каждому занятию
- Подробный видеоразбор решений домашних заданий
- Большой чат в Slack для общения и обмена опытом (на каждое занятие и тему - свой канал)
- Ответы на все вопросы и помощь с проектом
С проверкой домашних
заданий и ревью
выпускного проекта
Ревью вашего кода позволит увидеть свои ошибки в стиле, структурах данных, алгоритмах и коде
Отзывы участников с проверкой
Скидки на пакеты:
Стажировка + Микросервисы (CloudJava)
Стажировка Enterprise Java-разработчика (TopJava) без проверки
Микросервисы, Kafka, Docker, Spring Cloud, реактивный стек (CloudJava)
Стажировка TopJava с проверкой и ревью выпускного проекта
Микросервисы, Kafka, Docker, Spring Cloud, реактивный стек (CloudJava)
Стажировка + Микросервисы (CloudJava) + K8s/Help (CloudJava2)
Стажировка Enterprise Java-разработчика (TopJava) без проверки
Микросервисы, Kafka, Docker, Spring Cloud, реактивный стек (CloudJava)
Деплой микросервисов в Kubernetes. Helm (CloudJava-2)
Стажировка TopJava с проверкой и ревью выпускного проекта
Микросервисы, Kafka, Docker, Spring Cloud, реактивный стек (CloudJava)
Деплой микросервисов в Kubernetes. Helm (CloudJava-2)
Стажировка + Многомодульный Maven, многопоточность, JavaEE
Стажировка Enterprise Java-разработчика (TopJava) без проверки
Многомодульный Maven, многопоточность, JavaEE (MasterJava)
Стажировка TopJava с проверкой и ревью выпускного проекта
Многомодульный Maven, многопоточность, JavaEE (MasterJava)
Всем участникам предоставляются:
Поддержка преподавателя, ответы на вопросы и обсуждение занятий и домашних заданий в группе участников.
Общение с нашими выпускниками в
специальной группе Slack и канале Telegram
Свежие вакансии для начинающих разработчиков, помощь с Java, отзывы о работодателях, события IT, интересные видео...
Доступ ко всем материалам навсегда, без привязки ко времени и местоположению
Все видео доступны для просмотра онлайн и скачивания в любое время и без ограничения по срокам. Записи разбиты по темам и тщательно отредактированы. Большое количество подобранных ресурсов для углубления в детали.
После успешного прохождения курса – сертификат об окончании
Специальные цены участника на все наши проекты
Способы оплаты:
Сертификаты
После успешного прохождения обучения выдаются электронные сертификаты.
Образцы сертификатов:
- Java-разработчик корпоративных приложений ( TopJava )
- Многомодульный maven. Многопоточность. Работа с XML. Web-сервисы. Удаленное взаимодействие ( MasterJava )
Результаты опроса выпускников:
Расписание
- Осваиваем Java Enterprise. Трудоустройство. Ответы на вопросы.
- Системы управления версиями. Git.
- Работа с проектом (выполнять инструкции)
- Домашнее задание (HW0 + Optional)
- Замечания к HW0
- Рассылка вступительного письма с вводной информацией
- Старт проверки домашнего задания вступительного занятия (для участников с проверкой решения присылать до 03.02).
- Разбор домашнего задания вступительного занятия (вместе с 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
Составление и ревью личного резюме
После стажировки мы составляем твое резюме Java разработчика:
- Обязательно убери из резюме любое упоминание Junior.
Количество
обращений возрастет на порядок.
Еще из рекомендаций сделать позицию: «Java-разработчик» - После завершения проекта ты освоишь все заявленные в нем технологии -
вставь их в квалификацию.
Обязательно должен быть Spring Boot, это майнстрим! -
В разделе опыт работы (если нет коммерческого опыта Java разработчика) вставь:
-
участие в разработке Spring/ JPA enterprise-приложения c
авторизацией и
правами доступа на основе ролей на стеке:
Maven, Spring MVC, Spring Security, REST (Jackson), Java 8 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, H2, Swagger/OpenAPI 3.0
-
участие в разработке Spring/ JPA enterprise-приложения c
авторизацией и
правами доступа на основе ролей на стеке:
Maven, Spring MVC, Spring Security, REST (Jackson), Java 8 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 и программировании.
Григорию спасибо! Всем участникам проекта удачи и успеха!