Получить первую работу ох как непросто. Даже если вы усердно занимались, прошли все 40 уровней, перешерстили десяток тематических книг и знаете весь Java Core от и до, вы не застрахованы от того, что рекрутер не поверит в ваше резюме. Просто потому, что эти ребята хотят видеть в команде людей с реальным практическим опытом. Что же теперь делать? Как преодолеть ситуацию «чтобы получить опыт, нужен опыт»?
Всё не так плохо: «хакнуть» систему можно! Причём легально, без нарушения законов и общественных норм или лжи. Есть несколько способов это сделать, один из них — пройти стажировку JavaRush, во время которой вы изучите новые технологии и поработаете над настоящим проектом.
В этой статье мы расскажем о том, что представляет собой наша стажировка, как туда попасть и что это даст.
Что такое стажировка JavaRush?
По сути, стажировка JavaRush и есть самая настоящая работа программистом, только обучающая. Вы три месяца работаете над серьезным проектом, параллельно получая теоретические сведения. Раз в неделю вам выдают блок, который нужно выполнить. В конце недели вы участвуете в обсуждении этого блока, исправляете, если нужно, ошибки и корявости, после чего получаете следующее задание. И так, пока проект не будет готов.
Набор на стажировку проводится четыре раза в год. Мы публикуем анонс за несколько недель до нового набора в группе Random на сайте JavaRush и наших страницах в соцсетях, чтобы все желающие успели подготовиться.
Что изучают?
На выходе вы получите опыт работы с платформой Java Enterprise и полнофункциональное приложение на Spring/JPA Enterprise c авторизацией и правами доступа на основе ролей с использованием наиболее популярных инструментов и технологий Java. А это Maven, Spring MVC, Security, JPA (Hibernate), REST (Jackson), Bootstrap (css,js), datatables, jQuery + plugins, Java 8 Stream and Time API.
План стажировки.
Неделя 1: Системы управления версиями
- Системы управления версиями. VCS/DVSC.
- Основы Git
- Date and Time API in Java 8
- Java 8 Stream Tutorial
Неделя 2: Maven. WAR. Веб-контейнер Tomcat. Сервлеты. Логгирование
- Java 8 Lambda
- Основное в Java 8
- Среда сборки проектов Maven
- Build Lifecycle
- Запуск Tomcat из IDEA. Динамическое обновление без передеплоя.
- Добавление зависимостей логирования в проект
- Log4j, Logback
- Управление логированием по JMX
- Контекст приложения. Деплой в Tomcat без IDE. Remote debug
Неделя 3: Обзор Spring Framework. Spring Context. Слои приложения. Создание каркаса приложения.
- IoC, DI, IoC-контейнер
- Паттерн DTO. Value Object и Data Transfer Object
- Обзор Spring Framework
Неделя 4: Spring context, JUnit, ORM
- Spring изнутри. Этапы инициализации контекста
- JUnit 4
- Базы данных. Обзор NoSQL и Java persistence solution без ORM
- Spring Jdbc Template
Неделя 5: Hibernate. JPA
- Повторяем Lambda и Stream
- Инициализация базы при старте приложения
- mock: подмена контекста при тестировании
- Hibernate. Другие ORM: TopLink, ElipseLink, EBean (used in Playframework).
- JPA. JPA Performance Benchmark.
- Конфигурирование JPA. Сканировние Entities. JPA definitions
- HQL/ JPQL.
- JPA Criteria API. Unified Queries for Java
- Java 8 Time API Converter
- Транзакция. ACID. Уровни изоляции транзакций.
- Добавляем поддержку HSQLDB.
Неделя 6: Транзакции. Профили Maven и Spring. Пулы коннектов. Spring Data JPA. Spring кэш
- Выбор реализации пула коннектов: BoneCP, Commons Database Connection Pooling, HikariCP.
- Spring Data JPA
- Кеширование в Spring Framework
- Распределённая система кеша ehcache
Неделя 7: Кэш Hibernate. Spring Web MVC
- Кэш Hibernate.Уровни кэширования Hibernate
- Spring Web. Паттерн MVC
- JSP, JSTL, internationalization
- Динамическое изменение профиля при запуске. Конфигурирование Tomcat через maven plugin и jndi
- Spring Web MVC
- Spring Internationalization
Неделя 8: REST
- Tomcat pool. Auto generate DDL
- Тестирование Spring MVC
- REST контроллеры
- Тестирование REST контроллеров. Добавление Jackson
- jackson-datatype-hibernate. Тестирование через матчеры
- Тестирование через SoapUi. UTF-8
Неделя 9: Bootstrap. Datatables. AJAX. jQuery. Spring Security
- WebJars.
- Bootstrap. Datatables
- AJAX. jQuery. Notifications
- Добавление Spring Security
Неделя 10: Шифрование пароля. Binding. Spring Security Test.
- Собственный провайдер авторизации. Шифрование пароля
- Binding/Validation
- Работа с Dandelion Datatables через Ajax
- Spring Security Test
Неделя 11: CSRF. JSTL. Taglib.
- Защита от межсайтовой подделки запроса (CSRF)
- Создание страницы логин, профиля и регистрации
- JSTL/ Taglib
- Обработка исключений в Spring MVC
Неделя 12: Миграция.
- Spring Boot 3.0.1
- Spring Data Rest/HATEOAS
- Lombok
- H2
- Thymeleaf
Как попасть на стажировку?
Всё очень просто. Вот что нужно сделать:
- Дойти до 35 уровня JavaRush или выше.
- Иметь подписку Premium Pro или расширить свою подписку до таковой.
- Загрузить себе тестовое задание.
- Выполнить тестовое задание.
- Загрузить его на Github.
- Открыть форму заявки на странице “Стажировка” и заполнить необходимую контактную информацию
- Добавить ссылку на решенное задание в специальное поле в этой форме.
- Отправить задание на автоматическую проверку: это займет 10-20 секунд, после чего вы узнаете результат.
После этого вас определят в группу к преподавателю. Если вы не справились с тестовым заданием за отведенный срок, то сможете получить новое тестовое задание перед следующей стажировкой.
Как проходит?
Проект рассчитан на 12 недель (3 месяца). Каждую неделю вы будете изучать очередную технологию и добавлять очередной кусок функциональности к вашему проекту.
В начале каждой недели вы будете получать видеозапись урока (длиной 2-3 часа!), на которой разбирается и объясняется очередная технология, а также дается задание на дом, которое вы должны сделать за неделю. Задания средней сложности. Если в первый день вы во всем разобрались, то сделайте его за 1-2 дня. Если сразу не поняли, то в неделю должны уложиться.
Через неделю куратор стажировки выкладывает свое решение, и вы можете посмотреть/разобрать его, независимо от того, заработало у вас ваше решение или нет. Вокруг стажировки образовано очень полезное комьюнити, где можно получить дополнительные материалы, проконсультироваться и обсудить решение и изучаемые технологии.
Это очень эффективный подход, т.к. разбирать решения опытных разработчиков может быть на порядок полезнее, чем сделать свое кое-как. Особенно, если вы только что днями ломали голову, ища способ все сделать хорошо, быстро и красиво.
Что говорят об онлайн-стажировке ее участники
Вот парочка примеров:Очень понравилась методика преподавания, при которой проходишь естественный путь от изучения базовых понятий к применению соответсвующих фреймворков. Плюс к этому — реализация одного и того же функционала разными способами. Таким образом складывается максимально целостная картина.
Конечно же, возможность общения с другими участниками проекта и обратная связь с преподавателем — это само по себе много стоит.
Что касается общего мнения о курсе, то это как раз то, что нужно после квестов JavaRush. Вы получите очень хорошие знания, и что важнее, поймете, как и куда их применить.
Итоги: зачем нужна стажировка
- «Легальный» способ получить первый опыт
- Знание кучи технологий JavaEE и полезных фреймворков
- В вашем резюме будет реальный проект с указанием изученных технологий, который можно выложить на GitHub