Стажировка JavaRush — твоя первая работа

Доступно с 35-го уровня

Получить первую работу ох как непросто. Даже если вы усердно занимались, прошли все 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. Слои приложения. Создание каркаса приложения.

Архитектурные слои приложения в Spring
  • 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: Деплой в PaaS-платформу Heroku.

  • Деплой в PaaS-платформу Heroku.

Неделя 13: Миграция.

  • Spring Boot 2.4
  • Spring Data Rest/HATEOAS
  • Lombok
  • H2
  • Thymeleaf

Как попасть на стажировку?

Всё очень просто. Вот что нужно сделать:

  • Дойти до 35 уровня JavaRush или выше.
  • Иметь подписку Premium Pro или расширить свою подписку до таковой.
  • Загрузить себе тестовое задание.
  • Выполнить тестовое задание.
  • Загрузить его на Github.
  • Открыть форму заявки на странице “Стажировка” и заполнить необходимую контактную информацию
  • Добавить ссылку на решенное задание в специальное поле в этой форме.
  • Отправить задание на автоматическую проверку: это займет 10-20 секунд, после чего вы узнаете результат.

После этого вас определят в группу к преподавателю. Если вы не справились с тестовым заданием за отведенный срок, то сможете получить новое тестовое задание перед следующей стажировкой.

Как проходит?

Проект рассчитан на 12 недель (3 месяца). Каждую неделю вы будете изучать очередную технологию и добавлять очередной кусок функциональности к вашему проекту.

В начале каждой недели вы будете получать видеозапись урока (длиной 2-3 часа!), на которой разбирается и объясняется очередная технология, а также дается задание на дом, которое вы должны сделать за неделю. Задания средней сложности. Если в первый день вы во всем разобрались, то сделайте его за 1-2 дня. Если сразу не поняли, то в неделю должны уложиться.

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

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

Что говорят об онлайн-стажировке ее участники

Вот парочка примеров:

Главное для меня в этом проекте — это возможность изучить на практике множество наиболее популярных технологий. «На практике» — это ключевое слово.
Очень понравилась методика преподавания, при которой проходишь естественный путь от изучения базовых понятий к применению соответсвующих фреймворков. Плюс к этому — реализация одного и того же функционала разными способами. Таким образом складывается максимально целостная картина.
Конечно же, возможность общения с другими участниками проекта и обратная связь с преподавателем — это само по себе много стоит.
Предлагаемый курс содержит целую кучу технологий, которые рассматриваются поэтапно, и прикручиваются к уже работающему проекту. Если рассмотреть стек технологий то, можно легко потеряться в самих названиях (так их много), не говоря уже о том, что изучить их за короткий срок. Но на Online-стажировке JavaRush мы все это разобрали и получили отличный опыт.
Что касается общего мнения о курсе, то это как раз то, что нужно после квестов JavaRush. Вы получите очень хорошие знания, и что важнее, поймете, как и куда их применить.

Итоги: зачем нужна стажировка

  • «Легальный» способ получить первый опыт
  • Знание кучи технологий JavaEE и полезных фреймворков
  • В вашем резюме будет реальный проект с указанием изученных технологий, который можно выложить на GitHub
Комментарии (1365)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Pryshchepa Java Developer Expert
позавчера, 12:08
Набор на стажировку окончен. Следующий набор будет ориентировочно через 3 месяца.
Александр
Уровень 35
позавчера, 12:27
как или где получить дальнейшее действия по стажировке?
Roman Pryshchepa Java Developer Expert
позавчера, 15:19
Тебе на почту, которую ты указывал при регистрации на стажировку, должно было прийти письмо с дальнейшими инструкциями. Проверь почту и папку спам.
Artur May Software Developer в UA-GIS
позавчера, 19:55
посилання на slack вже не активне, можна нове?
GSTV11
Уровень 35, Москва
позавчера, 20:12
Говорили же, что набор до 24 числа! я не могу отправить заявку!! у меня все готово(((
GSTV11
Уровень 35, Москва
позавчера, 20:12
Пуститеее((
Александр
Уровень 35
позавчера, 22:12
Нашёл, в спаме была. Спасибо!
Наталия
Уровень 35, Russian Federation
19 мая, 20:44
Добрый вечер! Вы можете подсказать, когда начнется набор на стажировку? Или уже можно отправлять заявку?
Anton Parfenov
Уровень 35, Russian Federation
19 мая, 21:54
От саппорта: Регулярно стажировка проходит раз в 4 месяца, сама стажировка 3 месяца и месяц на подачу тестового задания. До 24 мая 14:00 ожидаются тестовые задания от желающих, начало стажировки стартует 26 мая. Делайте тестовое
Poldrion
Уровень 39, Самара, Россия
18 мая, 19:18
Добрый вечер! Вопрос по заданию - редактирование и удаление player должно происходить на странице с параметром {id}. Макет страницы нужно создать самостоятельно?
Guzey
Уровень 27, Москва
18 мая, 06:15
Добрый день, подскажите, есть ли сейчас какие то ограничения со стажировками в связи с санкциями?
Зепп Бранниган Admin в JavaRush Moderator
19 мая, 06:15
На данный момент стажировка проходит без изменений.
bazhukovsi
Уровень 35, Петрозаводск, Russian Federation
17 мая, 15:30
Вопрос по тестовому заданию. Не выводятся данные в веб форму, запросы в браузере отображаются.
Mentor-02 Backend Developer в JavaRush Mentor
18 мая, 06:01
А хоть что-то в браузере показывает? В режиме разработчика пробовал смотреть что происходит?
Руслан
Уровень 38
15 мая, 21:35
В июне будет набор на стажировку?
Зепп Бранниган Admin в JavaRush Moderator
17 мая, 09:37
Наборы проходят ежеквартально.
Наиль Гафиятов
Уровень 49
12 мая, 15:31
Насколько важно использовать именно 9 версию Tomcat? Я установил и настроил 10, не хочется менять пока все работает) И должно ли что-то отображаться на начальном этапе при запуске?
Alex Li
Уровень 36, Украина
12 мая, 18:55
Tomcat 9 всегда можно скачать в zip архиве, распаковать в каталог и использовать без установки. При запуске приложения в браузере откроется стартовая страница.
Konstantin Romanovsky
Уровень 37, Санкт-Петербург, Russian Federation
11 мая, 11:23
кто выполнил тестовое задание напишите в личку, пожалуйста
Alex Li
Уровень 36, Украина
12 мая, 09:14
Есть хорошая статья про такие проекты ссылка на статью Тут человек очень хорошо описал как устанавливать MySQL
GSTV11
Уровень 35, Москва
10 мая, 20:41
Помогите с тестовым заданием, пожалуйста
Alex Li
Уровень 36, Украина
12 мая, 18:55
Что именно не получается реализовать?
AlexSir
Уровень 5, Russian Federation
18 мая, 17:59
Студентам РУДН большой привет 😄
Anonymous #2909077
Уровень 35, Irvine, United States
8 мая, 16:48
Добрый день! Подскажите, пожалуйста, что мы должны использовать для настройки валидации реквестов в проекте стажировки? Пакет javax.validation не включен в pom.xml файл, изменять pom.xml нельзя по условиям задания, поэтому аннотации (@NotNull, @Min, @Max etc) не компилируются.
Alex Li
Уровень 36, Украина
12 мая, 08:02
Старый добрый if решает проблему, меньше, больше, кидаем ошибку