Советы по прохождению проектов

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

В описании проекта есть список курсов и материалов, которые мы рекомендуем изучить перед стартом. Проекты встроены в программы обучения на Хекслете, и мы советуем проходить курсы и проекты в том порядке, в котором они стоят в учебном плане.

Технические детали подготовки описаны в статье «Подготовка к проектам». Обязательно её прочитайте, особенно если вы используете ОС Windows.

Решение не должно быть идеальным

Некоторые студенты стремятся написать с первого раза идеальный в их представлении код. На что тратят много усилий и времени: например, несколько дней бьются над одним шагом, пока не доведут его до «идеального» состояния. Как правило, сделать это не получается, и за это же время можно было пройти несколько шагов.

Отсюда два вывода:

  • С одной стороны, прилагайте максимум усилий, чтобы написать хороший код. Стремитесь к тому, чтобы не пришлось исправлять ошибки при проверке.
  • С другой стороны, пишите код так, как можете. Для начала попробуйте написать решение «в лоб» — выберите наиболее простой и понятный вам способ реализации.

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

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

Но проект не так сложен, как может показаться на первый взгляд. Он создан таким образом, что при равномерном распределении усилий — лучше «каждый день понемногу», чем «всё за один раз», — вы успешно дойдёте до самого конца.

Поэтому не паникуйте, задавайте вопросы и двигайтесь вперёд!

Кому задавать вопросы

В зависимости от формата обучения, вопрос можно задать:

  • в чате группы. Ответят одногруппники или наставник. Если вы учитесь в группе, важно задавать вопросы публично, а не в личных сообщениях — так формируется общая база знаний, которая поможет и другим студентам. Чтобы не подсказывать, не вставляйте ваш код в текст сообщения, лучше прикладывайте ссылку на Гитхаб
  • персональному наставнику. На плане Премиум наставник не только ответит на вопрос письменно, но и устроит сессию лайвкодинга, чтобы решить часть задачи совместно, если будет нужно
  • другим студентам в нашем сообществе или в обсуждениях на сайте. Если вы учитесь без наставника, задавайте вопросы в канале #hexlet-projects в нашем Слаке. Обсуждения есть на каждом шаге проект внизу страницы, ответы на некоторые вопросы можно найти в топиках ваших предшественников

Наставники отвечают на вопросы по проектам максимум в течение 2–3 дней, а за сроком и качеством ответов в группах следят кураторы. В сообществе и обсуждениях отвечают другие студенты,  время ответа не регламентировано. Поэтому если вы почувствовали, что вам нужна профессиональная помощь, обратите внимание на обучение в группе или мини-группе.

Работа с наставником

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

О списывании

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

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

Списывающий добровольно лишает себя всех этих возможностей.