Skip to content

Стажировка Enterprise Java разработчик (TopJava)

Seflaks edited this page May 8, 2023 · 1 revision

Общая продолжительность ~ 3.5 месяца.

Формат

Стажировка ведется по подготовленным на основе вебинара, разбитым по темам и отредактированным записям. Раз в неделю (четверг) производится рассылка новых материалов, обновления к проекту (патчи) и домашние задания. Домашние задания подобраны по темам занятия и требуют реализации функциональности, схожей с пройденной на занятии. Выполнение вводного занятия дает хорошее представление о том, как будет проходить стажировка. Разница в том, что каждый урок начинается с разбора домашнего задания и состоит из 6-8 тем/видео и 7-15 патчей к проекту. Начиная с 4-го занятия участники параллельно с общим проектом разрабатывают выпускной проект на нашем стеке (Maven/ Spring MVC, Security/Hibernate/ REST). Ресурсы для лучшего усвоения всех тем проекта.

Требования к участникам

Некоторый опыт программирования на java: предполагается, что вы уже знаете, что такое классы, конструкторы, аннотации, анонимные классы, исключения и пр. Желательно знание сервлетов. Мы начинаем использовать их на первом занятии, кратко повторяя основы. Желательно знание JDBC/SQL (на уровне select/update/delete), самых основ JavaScript, HTML. Весь "Enterprise": Maven, Git (в том объеме, который нам нужен), Spring, Hibernate, REST даются с азов.

Варианты участия в проектах:

  • Без проверки домашних заданий: сюда входят все материалы, участие в группе Slack, разбор домашних заданий, ответы на вопросы и помощь с проектом.
  • Расширенное: добавляется проверка домашних заданий и ревью выпускного проекта.
  • А также для всех участников: бесплатное участие в следующий выпусках проекта.

Проверка домашних заданий:

Проверки делаются в отдельной группе слак в личном канале.
В него шлете свою ссылку на свой GitHub-репозиторий, в котором есть ветка с решением ДЗ. Домашние задания будут проверять кураторы @Valeria и @Katherine. Ветку по каждому ДЗ делать одну, коммитов можно несколько. Сдавать рекомендуется заранее (до воскресенья, понедельника), чтобы была возможность исправить замечания и пройти ревью еще раз. Я участвую в решении сложных и спорных вопросов.

Пожелание от кураторов по проверке:

  • Новые уроки выкладываем в четверг, крайний срок сдачи ДЗ на ревью - ВТОРНИК.
  • Перед тем как отдавать код на ревью, ВНИМАТЕЛЬНО читаем типичные ошибки и подсказки в конце занятия, также обязательно проверяем и тестируем приложение.
  • Ревью кода происходит в след порядке: первое ревью, замечания кураторов (если необходимо), правки, второе ревью. Обычно 2-х ревью достаточно, но если есть необходимость - то возможно 3-е ревью.
  • Код с правками на ревью принимается до выхода нового урока.
  • Крайний срок сдачи ДЗ во вторник, но если хотите получить более одного ревью - то старайтесь сдавать ДЗ в воскресенье-понедельник
  • Если не успеваете сделать полностью ДЗ - то присылайте то, что есть.
  • Не бойтесь задавать вопросы. Настоятельно рекомендую их задавать, а также активно участвовать в обсуждении ДЗ в общем Slackе. НО перед тем как задать вопрос - погуглите (большая часть часть инфо на англ., поэтому приучаемся гуглить на англ).
  • Подходите серьезно к ДЗ, просто посмотреть чужое решение недостаточно. Это как учиться кататься на велосипеде. Нужно все пробовать самому, если только смотреть как кто-то красиво делает трюки - сам не научишься.
  • Если форс-мажор и не успеваете - предупреждайте заранее, возможно перенести проверку на пару дней позже (но не превращайте такой подход в привычку)
  • Если не справляешься с ДЗ, возможен ОДИН перенос оставшихся проверок на следующий выпуск (старт topjava27 в конце сентября 2022г.) и ТОЛЬКО С ТЕКУЩЕГО домашнего задания. Если ты не сдаешь ДЗ и не предупредил о переносе, они пропадают!
  • Также, если материал оказался сложным, возможен перенос стоимости проверки ДЗ на проект "Разработка веб-приложения База данных резюме (BaseJava)". Здесь мы проходим основы Java: Core, JDBC, транзакции, сервлеты (программа). В сентябре можно бесплатно повторить TopJava (с доплатой за проверку ДЗ или без проверки).

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

Описание проблемы:

Очень важный навык разработчика - описание проблемы.

  • Что делаешь. Подробно!
  • Делаешь что-то одно! Не надо в одной проблеме писать кучу вариантов, каждый со своей ошибкой.
  • Логи. Полные! Как минимум полный последний exception, обычно вверху него причина (хотя не всегда). Лог не давать скриншотом, только текстом
Лучше давать в 3х обратных кавычках (слева вверху, где ~) - Slack и md форматирует
  • Результаты дебага
  • Вкладка Network браузера, если идет взаимодействие в браузером Если у вас есть рабочий проект и нерабочий- нужно сравнить все настройки и максимально упростить, сделать их похожими. Никогда не удаляйте код, который вы не понимаете.
    При грамотном описании проблемы очень часто приходит ее решение. Главное на наших проектах - научиться работать разработчиком. Для этого нужно стремиться делать все по-взрослому, как будущий разработчик

Проект ведется на Community и Ultimate IDEA

После месяца trial варианты продлить Ultimate

Общение по проекту ведется в группе https://slack.com/ по темам

Для каждого нового урока будет делаться отдельный канал. Кроме каналов урока:

  • #general: Объявления, важные события. Не для вопросов.
  • #java_help: Вопросы по Java, не относящиеся к занятиям
  • #flooding: Оффтопик
  • #diploma: Оформление Дипломной программы
  • #git: Вопросы по git
  • #idea: Вопросы по IDEA
  • #maven: Вопросы по Maven
  • #feedback: Замечания, правки к урокам

Ваши вопросы:

Достаточно ли изучить технологии проекта, чтобы претендовать на должность junior/middle developer?

После проекта я настоятельно рекомендую убрать слово junior из резюме, количество обращений возрастет на порядок. Здесь нет прямолинейного ответа. Для разработчика Java нужно уметь алгоритмически мыслить (программировать). Очень желательно иметь какой-то опыт в программировании, участие хотя бы в небольших проектах. Еще (очень часто): знание SQL. Все остальное идет как дополнения к основному. Тк мы разрабатываем достаточно сложный проект (а не технологии в отрыве от всего), то самое основное, что вы получаете, это опыт работы в реальном проекте Spring/ ORM/ Hibernate/ Maven/ jQuery/ REST/ Security. При условии, что вы делаете домашние задания, повышение вашего уровня java разработчика на порядок гарантировано. Посмотрите также на позиционирование проекта topjava. Особенно полезно применение на практике полученных знаний - выполнение вами выпускного проекта, который мы начинаем делать с 4-го занятия.

Будет ли оказываться помощь в составлении резюме, советы по трудоустройству?

Да. В конце курса мы совместно ревьюим ваши резюме и вы заполняете на Java Online Project свой профиль, который становится доступен HR менеждерам и фрилансерам (на 25.10.2017 рассылка идет по 135 HR контактам). Есть трудоустроенные участники, почитайте истории некоторых из них. Также в группе выпускников Slaсk происходит активное общение бывших участников на эту тему, часто туда публикуют вакансии со своей работы, отзывы по работодателям и опыт трудоустройства. Посмотрите также информацию по турдоустройству.
Также мы предлагаем специальные условия у нашего партнера по трудоустройству CodeReview

Я правильно понимаю, что в процессе курса мы будем строить приложение с нуля, каждый будет делать это самостоятельно и в конце каждый участник развернёт его на собственном сервере?

Приложение строится с нуля и в конце каждый участник деплоит его на собственный выделенный сервер. На занятиях я последовательно разрабатываю приложение с подробными объяснениями и теоретическим материалом по теме. Домашние задания также выполняются по теме занятия и являются частью проекта. В начале каждого следующего занятия я разбираю домашнее задание и добавляю его в проект. Из практики лучше всего оказалось делать домашние задания в отдельных ветках git для отсылки мне на проверку. На вступительном занятии подробно разбирается работа с проектом в системе управления версиями Git. Начиная с 4-го занятия, участники параллельно с общим проектом разрабатывают выпускной проект на нашем стеке (Maven/ Spring MVC, Security/Hibernate/ REST), ревью которого входит в участие с проверкой. Это будет уже полностью твой собственный проект.

Можно поподробнее про проверку домашних заданий? Пример домашнего задания и как будет проходить проверка?

Разбор домашний заданий происходит в начале каждого занятия. Проверка заданий подразумевает ревью твоего кода (лучше ДЗ присылать пораньше, чтобы успеть поправить ошибки и сделать еще одно ревью). Ты увидишь именно свои ошибки в стиле, структурах данных, алгоритмах и кодировании. Это самый эффективный способ научиться программировать. Все домашние задания это часть проекта. Часть из них достаточно простая, часть Optional - сложнее. Обычно участники чекинят код в гитхаб и шлют ссылку на репозиторий. Проверка заданий делается ассистентом при моей поддержке, фидбэк пишется в slack. Получается эффективно и оперативно. Можно что-то переделать и снова поревьюится. Пример сокращенного домашнего задания: HW0 вводного занятия.

Можно ли будет потом получить все записи стажировки?

Все записи видео будут вам доступны во время и после завершения проекта. Их можно скачать для просмотра в отсутствие интернета. Также вам доступны все обновления проекта и бесплатное участие в следующих выпусках topjava.

Какие требования к компьютеру? Postgres обязателен к установке?

Postgres не обязателен, хотя желателен. Мы также будем использовать HSQLDB (установка не требуется). Для компьютера - достаточно, чтобы работала IDEA (с плагинами Spring, JPA). Также мы будем использовать инструмент SoapUI (тоже опционально).

Пожелания к участникам.

Обычно участники подбираются с разным уровнем. Поэтому главное- не стеснятся задавать вопросы! Всегда есть поддержка группы, меня и ассистента. Проходят занятия раз в неделю, поэтому времени для усвоения пройденного и выполнения домашних заданий достаточно, при условии что вы не ОТКЛАДЫВАЕТЕ обучение на потом. В зависимости от уровня подготовки на обучение необходимо уделять от 5 до 15 часов в неделю. Для усвоения материала выполнять домашние задания НЕОБХОДИМО: после лекции, через месяц у студента в голове остаётся 3% знаний. А если он выполнил упражнение на практике то в памяти сохраняется 95% знаний + бонус. Студент, практикуя упражнение, открывает ещё 50% нюансов знаний, которые не были озвучены преподавателем.

Результат других исследований: люди запоминают только

5% того, что узнали из лекции.
10% того, что прочитали.
20% того, что узнали посредством аудио-визуального воздействия.
30% визуальной демонстрации (опыт, эксперимент).
50% материала групповой дискуссии.
75% практической отработки теории.
90% того, что объясняют кому-то еще.