Как правильно проходить проекты

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

Готовьтесь к проектам!

В описании проекта есть список курсов и материалов, которые мы рекомендуем изучить перед стартом интенсива. Вообще, проекты органично встроены в программы обучения на Хекслете. И мы советуем обучаться, двигаясь по стеку курсов и проектов, определённому в выбранной вами профессии.

Технические детали подготовки описаны в нашей вспомогательной статье Как подготовиться к проектам. Обязательно её прочитайте (особенно, если у вас операционная система Windows).

Рефакторинг через обратную связь от ментора

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

Делайте шаги последовательно, не перескакивайте. В целом, цикл выполнения шага может выглядеть так:

  1. Изучаете задание. Пишите код. Если что-то непонятно, задавайте вопросы в комьюнити.
  2. Отправляете готовое задание на проверку. Ментор проверяет код и оставляет вам обратную связь по нему.
  3. Если задание принято, то переходите к следующему шагу. В противном случае делаете работу над ошибками: исправляете все замечания ментора. Затем снова отправляете на проверку (смотрите 2-й пункт).

Решение не должно быть СРАЗУ идеальным

Некоторые ученики стремятся написать с первого раза некий "идеальный" (в их представлении) код. На что тратят много усилий и времени: например, несколько дней "бьются" над одним шагом, не отправляя код на проверку, пока не доведут его до "идеального" состояния. Как правило, по объективным причинам сделать это не получается. Хотя за это же время можно было провести несколько итераций по циклу получения обратной связи от ментора. И на основе всех советов и замечаний отрефакторить код и успешно сдать задание.

Отсюда двойственный вывод:

  • С одной стороны, прилагайте максимум усилий, чтобы написать хороший код (в пределах того, на что способны вы, конечно). Стремитесь к тому, чтобы у ментора не возникло к нему замечаний.
  • С другой стороны, пишите код так, как можете — не переусердствуйте! Откиньте позывы перфекционизма, не усложняйте и не ищите глубокие смыслы. Для начала попробуйте написать решение, что называется, "в лоб" — выберите наиболее простой и понятный вам способ реализации.

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

Не молчите и не замыкайтесь

Интенсив — это выход из зоны комфорта (особенно для новичков), столкновение с новым и непонятным. То есть стрессовая ситуация. Некоторые ученики, столкнувшись со сложностями при решении задач, "уходят в себя":

  • либо погружаются в чрезмерно долгие раздумья ("я не знаю, надо что-нибудь спасительное почитать"), пропуская проверки и/или не задавая вопросы в комьюнити
  • либо вовсе падают духом ("всё сложно, я не могу"), снижая свою активность к нулю

И здесь стоит отметить, что "у страха глаза велики". Проект не так сложен, как может показаться на первый взгляд. Точнее, он спроектирован таким образом, что при равномерном распределении усилий (лучше "каждый день понемногу", чем "всё за один раз") вы дойдёте до самого конца за отведённое время.

Поэтому не паникуйте и проявляйте активность!

Способы общения

Каждый шаг (задание) проекта размещён на отдельной странице. На странице шага вы увидите описание задания и обратную связь от ментора: комментарии с замечаниями и советами. Код-ревью ментора видите только вы, другие пользователи не имеют доступа к этим комментариям.

В нижней части страницы шага располагается публичный раздел "Вопросы ментору", где участники интенсива обсуждают с ментором задание текущего шага и задают все волнующие вопросы. Обратите внимание, что вам доступны обсуждения всех других участников с прошлых сессий: пользуйтесь этой возможностью, читайте топики — здесь накоплен большой опыт решения часто возникающих проблем. И, возможно, ваш вопрос ранее уже поднимался и есть готовый ответ.

В слак-чате Хекслета есть канал #hexlet-projects. Вступите в него: здесь вы можете общаться на любые темы по проекту со своими одногруппниками, а также людьми, которые ранее уже прошли интенсив. Единственное ограничение: запрещено демонстрировать и обсуждать конкретный код.

Взаимоотношения между ментором и учеником

  • Ментор играет на вашей стороне. В его интересах, чтобы вы добросовестно и качественно выполнили проект.
  • Ментор направляет в правильную сторону, но не пишет код за вас. Не стоит ждать от него медвежьих услуг в виде прямых подсказок или готовых инструкций.
  • Обратите внимание, что на интенсиве отрабатываются ваши навыки работы в команде. При этом ментор выполняет роль стейкхолдера проекта. Ваши взгляды могут не совпадать с требованиями, которые предъявляет ментор — и это нормально. Но при возникновении таких разногласий и спорных ситуаций (по которым не удаётся прийти к общему консенсусу) последнее слово остаётся за ментором.
  • Относитесь внимательно к фидбеку от ментора: не стоит пропускать или игнорировать его замечания.
  • Приоритетное значение имеет качество кода — он должен быть не только рабочим, но и чистым. Поэтому к замечаниям ментора, касающимся качества и читабельности вашего кода (начиная от именования и заканчивая количеством пробелов), следует подходить со всей серьёзностью.

Бессмысленность читерства и списывания

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

Но это не самое главное. Надо понять, что, когда ученик списывает или каким-то иным образом пытается "обхитрить систему", то единственной реальной жертвой этих действий является он сам. Он обманывает прежде всего (и только) самого себя.

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

Читер добровольно лишает себя всех этих плюшек. Поразмышляйте, насколько это разумно?

Удастся ли мне завершить проект?

По нашему опыту в среднем успешно завершают проект с первого раза от 70 до 95 процентов участников.

Но не стоит расстраиваться, если у вас не получится закрыть проект к дедлайну. Это нормально и так бывает.

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

У разных людей проект, как говорится, заходит по-разному. У нас было некоторое количество пользователей, которые с большим трудом проходили первый проект (и не с первого раза!), но в дальнейшем хорошо прибавляли, показав себя сильными учениками и перспективными джуниорами.

Время проверки, дедлайн, etc

Проект длится неделю:

  • Первая проверка — вечерняя в понедельник
  • Последняя проверка (дедлайн) — утренняя в понедельник (через неделю)

Проверка происходит каждый день два раза в сутки:

  • чтобы успеть на утреннюю проверку, отправьте домашнее задание до 9.00 по МСК
  • чтобы успеть на вечернюю проверку, отправьте домашнее задание до 17.00 по МСК

Утренняя проверка производится после 9.00 по МСК, вечерняя проверка — после 17.00 по МСК. Проверка может длиться до нескольких часов. Точное время и длительность проведения проверки могут варьироваться в зависимости от фактической загрузки ментора. В редких случаях по причине форс-мажора ментор может пропустить проверку — не переживайте, он добавит (компенсирует) вам дополнительное время в конце проекта.

На вопросы в комьюнити ментор отвечает в течение дня.

Сколько часов в день / неделю выделить на проект?

Всё сильно зависит от уровня подготовленности каждого конкретного студента. Сильные (опытные) могут завершить проект за половину недели, бывает и обратное — не удаётся успешно пройти проект с первой попытки.

Если говорить про средние цифры, то рекомендуем выделить от трёх до пяти часов в день на проект — этого должно быть достаточно для равномерного комфортного прохождения интенсива.

Нужна помощь? Свяжитесь с нами Свяжитесь с нами