Эллеонора Керри
41 уровень

Зимняя онлайн-стажировка JavaRush: готовьтесь, пока есть время!

Пост из группы Онлайн-стажировка
4252 участников
Вы далеко продвинулись в обучении Java? Близки к 35 уровню или даже прошли его, но ещё не решаетесь рассылать резюме? Предлагаем вам провести весну с пользой! Совсем скоро, 30 января, стартует набор на онлайн-стажировку JavaRush. Присоединяйтесь!
Начало занятий — 22 февраля. Так что ещё есть время дойти до 35-го уровня. Набором, как и всегда, будет заниматься Vasyl Malik. Ниже — вопросы и ответы о грядущей стажировке.

Что дает стажировка?

Стажировка даст вам больше, чем 5 лет университетского образования. В первую очередь — уникальную возможность получить реальный опыт в работе с технологиями, которые постоянно мелькают в вакансиях Java Junior, но их непросто (а некоторые из них и вовсе невозможно) усвоить, обучаясь самостоятельно:
  • Spring,
  • Spring MVC,
  • Spring Security,
  • Hibernate,
  • JPA,
  • JSP,
  • JSTL,
  • ORM,
  • REST,
  • Bootstrap,
  • AJAX,
  • jQuery,
  • Git,
  • Junit.
Разумеется, за 12 недель стажировки вы не успеете изучить все эти технологии (весьма серьезные) досконально. Тем не менее, вы получите представление о том, как их используют в реальных проектах и сможете законно упомянуть их в своем резюме.

Сколько времени потребуется на стажировку?

Записывайтесь только если сможете уделять обучению 6-8 часов в неделю.

Каковы условия участия?

  • уровень на JavaRush 35 или выше;
  • у вас есть (или была, но закончилась меньше года назад) годовая подписка Internship, Internship+, Mentor или Premium Project. Также подойдёт активная подписка PREMIUM PRO;
  • вы осилили тестовое задание, и получили подтверждение от Vasyl Malik.
Если вы уже дошли до 30-го уровня, но до 35-го ещё не добрались, самое время попробовать прокачаться! Времени вполне достаточно: набор на онлайн-стажировку продолжается до 21-го февраля включительно (до 14:00 по МСК).

Могу ли я проапгрейдить свою Premium-подписку до Premium Pro?

В обновлённом JavaRush механизм апгрейда подписок не предусмотрен. Если ваша подписка не предполагает участие в стажировке, обзаведитесь подпиской PREMIUM PRO. Раньше участвовать в стажировке можно было только с годовой подпиской (Internship, Internship plus и пр.), теперь появилась возможность оплачивать стажировку помесячно, приобретая PREMIUM PRO. Оплату нужно вносить каждый месяц начиная с месяца набора (в данном случае — это февраль) и заканчивая последним месяцем стажировки — май. Итого выходит 4 месяца оплаты подписки PREMIUM PRO.

Я сделал тестовое задание. Что дальше?

Оставьте свои контактные данные в разделе «Стажировка» -> «Отправить заявку». Также надо в заявке оставить ссылку на выполненное тестовое задание.

Я не могу сделать тестовое задание. Могу ли я всё равно поучаствовать в стажировке?

Тестовое задание обязательно для выполнения. Если вы не можете его выполнить, значит вам пока рано идти на стажировку. Лучше потренируйтесь на задачах JavaRush, почитайте теорию, и готовьтесь уже к следующей стажировке.

Когда будет следующая стажировка

Стажировки JavaRush проходят 4 раза в год, раз в сезон. Ближайшая стажировка стартует в конце февраля 2018 года, следующая — ориентировочно мае или июне 2018 года.

Я уже прошёл стажировку/начал, но не закончил стажировку. Хотел бы пройти её ещё раз. Так можно?

Начиная с весеннего набора-2017, стажировку можно проходить сколько угодно раз. Если вы регистрируетесь на стажировку повторно, тестовое задание отправлять не нужно.

Сколько длится стажировка?

12 недель. Набор открыт до 21 февраля включительно (до 14:00 по МСК), старт самой стажировки – 22 февраля. После 21 февраля заявки приниматься не будут – будете ждать старта следующей стажировки (ориентировочно май-июнь 2018 года).

Как все будет происходить?

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

Как будут проходить занятия?

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

Как я буду получать отзывы и обратную связь?

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

Процесс регистрации на стажировку

  1. Заходите в раздел «Стажировка» -> «Отправить заявку».
  2. Загружаете задание.
  3. Решаете, заполняете все формы (для подачи заявки на стажировку желательно использовать почту google), нажимаете «Отправить заявку».
  4. После того, как вы отправили заявку на стажировку, на карте квестов (https://javarush.ru/quests) статус стажировки изменится на «Проходится: вы отправили заявку на стажировку».
  5. Экзаменатор рассматривает вашу заявку. Возможный исход:

    • Если у вас нет подписки, которая дает право проходить стажировку, вам на e-mail придет письмо об этом.
    • Если не всё гладко, на e-mail придет письмо с замечаниями экзаменатора.
    • Если все хорошо, вас примут на стажировку. Указывайте правильный почтовый адрес, так как вам на почту придет письмо с дальнейшими инструкциями.
Если будут вопросы по тестовому, задавайте их в этом топике. Заявки на стажировку будут рассматриваются 2-3 раза в неделю в зависимости от количества заявок.
Комментарии (53)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизироваться
Vasyl Malik 35 уровень, Киев
21 февраля, 16:18
Набор окончен. Следующий набор будет через 3 месяца, примерно в мае
Vasyl Malik 35 уровень, Киев
19 февраля, 17:18
Проверены все заявки на стажировку, оставленные до 18.02 включительно, и частично, оставленные сегодня. Следующая проверка будет завтра, 20.02
Юра Миронов 39 уровень, Москва
16 февраля, 17:39
что такое пейджинг?
Radolf 37 уровень
18 февраля, 09:22
Разбиение массива данных на отдельные страницы определенной размерности для дальнейшего отображения. Можно, например, получить напрямую из PagingAndSortRepository или CrudRepository, или дробить уже после обращения к базе с помощью new PageRequest()
Vasyl Malik 35 уровень, Киев
16 февраля, 12:54
Проверены все заявки на стажировку, оставленные до этого момента. Следующая проверка будет 19.02
Danila 36 уровень, Москва
11 февраля, 22:58
На случай, если кто пропустил ссылку: https://habrahabr.ru/post/257223/
Sergey Mitrichev 35 уровень, Нижний Новгород
10 февраля, 14:02
Подскажите по реализации задачи с простыми заметками. Сделал пагинатор, теперь надо к нему прикрутить сортировку по дате и фильтр по isDone. 1) Самое простое, что пришло в голову, прикрутить GET параметры фильтров ко всем ссылкам в пагинаторе (если такие параметры в запросе есть), чтобы при переходе на другие страницы фильтр/сортировка сохранялись. Думается, не самое элегантное решение. Стал смотреть в сторону кук. Тут можно создать CookieController и дергать его, когда надо получить или изменить куку при запросе списка заметок. Как это лучше сделать? 2) Делаю выборку по страницам/сортировке/фильтрам в DAO слое. Пока вся инфа для пэйджинга получается из session.createQuery отдельным запросом к БД, что очевидно, не очень хорошо. Стоит ли делать все одним запросом к БД с помощью Criteria или есть более современный метод? Или в этом задании не стоит на этом заморачиваться? 3) К модели в контроллере при запросе списка страниц добавляю мапу с инфой по пэйджингу:
@Override
    public Map<String, Integer> getNotePaging(int page, int pageSize) {
        Session session = sessionFactory.getCurrentSession();

        int totalNotes = session.createQuery("from Note").list().size();
        int pages = total / size + ((total % size > 0) ? 1 : 0);

        Map<String, Integer> paging = new HashMap<>();
        paging.put("current", page);
        paging.put("pageSize", pageSize);
        paging.put("totalNotes", totalNotes );
        paging.put("pages", pages);

        return paging;
    }
Как стало ясно при дальнейшей работе с JSP файлами, мапа в них не самый удобный вариант. Нужна ли отдельная сущность для этого? Или может даже есть что-то готовое для этого?
Nail Khafizov 40 уровень, Санкт-Петербург
10 февраля, 19:26
Поделюсь тем как я решил данные задачи. 1. Я реализовал при помощи параметров запроса. Всё получилось, но как показалось, что для хранения состояния это мало подходит. Второй вариант теоретически лучше. И если использовать для этого куки то сразу в паре с сессиями, чтобы по истечении какого-то времени куки обновлялись. Я думаю что вместо отдельного CookieController можно менять cookie на клиенте при помощи js. 2. Я использовал PageRequest и PagingAndSortingRepository. Было довольно удобно. 3. Почему map неудобный вариант? Это позволяет обращаться к значениям по ключам, а как иначе...
Sergey Mitrichev 35 уровень, Нижний Новгород
11 февраля, 09:13
Спасибо. Почему не мапа? В jsp нет подсветки ее ключей. Если работаем с сущностью, то там есть подсветка свойств.
Nail Khafizov 40 уровень, Санкт-Петербург
11 февраля, 12:55
Использовал шаблонизатор thymleaf, также пробовал handlebars(mustache) и в них idea подсказывала ключи объектов переданных в модель без создания сущностей.
Sergey Mitrichev 35 уровень, Нижний Новгород
11 февраля, 14:42
Интересно, попробую
Vasyl Malik 35 уровень, Киев
12 февраля, 13:11
Делайте максимально просто. Можно с фронт-энда передавать все нужную инфу параметрами в GET запросе. Потом параметри прокидывать из контроллера через сервис в DAO слой приложения. В DAO писать запрос с учетом фильтров. По реализации - это может быть как Criteria API, так и простой HQL/JPQL
tony 35 уровень
7 февраля, 14:25
Только что обратил внимание на начало стажировки. Можно вопросы? Сейчас на 34-м уровне, завтра планирую выйти на 35-й. Плачу помесячно по 30 баксов, 12-го числа следующая оплата, планирую переходить с нее на премиум про (раньше не получится, денег немного). Вопросы: можно ли будет с завтрашнего дня увидеть задание на стажировку без проплаты? Неясна формулировка "Оплата за 4 месяца с февраля". Означает ли это, следующая, после 12-го февраля, моя оплата пройдет 1.03?
tony 35 уровень
7 февраля, 14:39
Да, еще вопрос. Есть ли какие-то минимальные требования к железу и OS?
Vasyl Malik 35 уровень, Киев
7 февраля, 16:59
Ответы на вопросы: 1) Задание на стажировку можно получить вообще без подписки. Требование - 35й уровень. 2) Оплата у Вас остается раз в месяц. Если Вы оплатите подписку Premium PRO 12 февраля, то следующая оплата - 12 марта. Потом 12 апреля и 12 мая. 3) Требований к ОС и железу нет. Но для выполнения тестового задания нужна Idea Ultimate. Скачайте пробную версию на месяц, а на стажировке Вам выдадут учебный ключ на пол года
tony 35 уровень
7 февраля, 18:07
Шикарно! Спасибо!
Oleg 40 уровень, Москва
6 февраля, 15:05
Начало занятий — 22 февраля. 23 февраля — 25 февраля праздничные выходные в РФ. Я вот уезжаю c 21 по 25, и очень может быть что таких как я будет некоторое количество. Подскажите, насколько критичен будет такой пропуск?
Vasyl Malik 35 уровень, Киев
6 февраля, 16:59
Срок с 22.02 по 28.08 расчитан на выполнение вступительного домашнего задания. Но к вступительному занятию Вы можете приступать сразу после принятия на стажировку. Так что, если выполните тестовое задание не 21 февраля, а хотя бы 15, то даже пропуска не будет
Георгий Овечкин 36 уровень
5 февраля, 12:22
Всем привет! Есть вопрос по поводу отладки - можно ли её как-то ускорить? Сейчас делаю так: вношу изменения в Idea (community edition), собираю проект с помощью maven, дальше деплою в tomcat и смотрю, что получилось. Как-то это все долго.
Vasyl Malik 35 уровень, Киев
5 февраля, 12:48
Привет. Посмотри https://devcolibri.com/intellij-idea-%D0%B4%D0%B5%D0%BF%D0%BB%D0%BE%D0%B9-%D0%BD%D0%B0-tomcat/
Георгий Овечкин 36 уровень
5 февраля, 12:52
На подобный мануал натыкался, нужна Ultimate версия. В Community это нельзя сделать? Если нет - можно ссылку (в личку) на правильную версию? =)
Vasyl Malik 35 уровень, Киев
5 февраля, 13:17
https://www.jetbrains.com/idea/download/download-thanks.html?platform=windows Это лицензионная Идея Ultimate. У нее есть пробный период на один месяц. Набор на стажировку длится 3 недели, так что для выполнения тестового задания хватит. А на самой стажировке Вам выдадут учебный ключ на пол года для использования Ultimate версии во время стажировки
Георгий Овечкин 36 уровень
5 февраля, 13:19
Чудно, все предусмотрено. Спасибо за ответ!
Vasyl Malik 35 уровень, Киев
5 февраля, 13:34
стараемся
Vra 40 уровень
3 февраля, 09:40
разъясните, пожалуйста, по поводу скрипта.. вот написал скрипт, запускаю руками, заполняю базу, дальше произвожу махинации, тестирую.. или все же скрипт должен автоматом заполнять базу при запуске web app?
Vasyl Malik 35 уровень, Киев
3 февраля, 10:03
Скритп нужно выполнить один раз в ручном режиме
Vra 40 уровень
3 февраля, 10:24
понял, спасибо