Спешу поделиться впечатлениями от первого проекта (JS). На Хекслет я пришел практически без знаний в программировании. Единственное - пару лет назад проходил гарвардский вводный курс “CS50” (отличный, кстати!), который заложил в глубины подсознания переменные, циклы, массивы и алгоритмы сортировки. После чистого Си JS совсем не шокирует, а даже наоборот, но на Хекслете быстро понимаешь, что всё впереди, и чем дальше в лес, тем больше будет дров. Ах да, собственно проект…
Первый проект - это “step up” после первого блока курсов и испытаний. На курсах загружаются в мозг и оттачиваются функции, рекурсии и прочие фишки. Проект же - это применение всего багажа в реальных условиях реальной задачи по реализации реальной программы. Он про настройку окружения для разработки, архитектуру программы, модульность, абстракции и грамотный код. В первую очередь про грамотный код. Это оказалось некоторым сюрпризом. Несмотря на то, что функционал программы прост, а на курсах я достаточно хорошо поднаторел в решении задачек, и сделать так, “чтоб работало”, не вызывало затруднений, написать хороший код оказалось не так-то просто. Стоило хоть немного отключить голову при написании кода, как тут же сыпались замечания от ментора, досадные, но, как я потом понимал, полностью справедливые. Мораль: когда пишешь код, нужно всегда понимать, почему ты пишешь его именно так, а не иначе. Проект длился всего неделю, но этого хватило, чтобы выявить множество типичных косяков в моём коде и привить привычку постоянно задавать себе вопросы: а всё ли тут в порядке, а не стоит ли сделать по-другому. Большое спасибо менторам за их внимательный и подробный фидбэк!
Кроме того, нельзя не упомянуть про настройку окружения. Это был самый психологически сложный этап проекта: когда барахтаешься по уши в документациях; как что устроено - до конца не понятно; какие могут быть подводные камни - неизвестно; если что-то заработало - тоже не очень понятно, почему оно так. В общем, чувствуешь себя как пятиклассник за пультом ядерного реактора. И тут остается только собраться с духом и нырнуть в эту неуютную неизвестность.
Если давать какой-то совет гипотетическим читателям, которые собираются проходить первый проект, то это - хорошо проработать весь предыдущий материал. Рекурсии (к черту циклы!), функции, возвращающие и принимающие функции, пары, модули, работа в консоли и с гитом - если всё это будет отскакивать от зубов, то проект пройдет легко, непринужденно и увлекательно.