Отзывы студентов о Хекслете
Для меня это был какой-то непрекращающийся спринтомарофон с огромным количеством информации, изучением новых технологий, борьбой с ошибками. Как-то я провел час пытаясь понять почему не работает "git push [сервер] mastery". Естественно, ветки "mastery" не существовало :) Но из-за непонимания инструмента приходилось буквально наощуп все делать. Еще никогда я столько раз подряд не ощущал себя обезьяной с гранатой.
Мне кажется этот проект здорово окунает в процесс настоящей разработки, в которой сам по себе язык — дело десятое. Одно дело писать простенькие (или не очень) фунции решающие учебные задачи, и совсем друго дело — пытаться свести все это к какому-то приложению, собрать в одном проекте. Ну, и конечно, ментор вовсю давал почувствовать, что это такое - работать с начальником и заказчиком.
Словом, все это здорово дероманизирует процесс разработки и показывает направления куда нужно копать, навыки, которые нужно освоить. Крайне советую всем сомневающимся пройти хотя бы его и, только после, думать хотят ли они заниматься разработкой дальше. А я с нетерпением жду второй этап.
Конечно, я дошёл до конца проекта, но не до конца работы над программой, буду потихоньку, уже не торопясь, её доделывать)
А вообще, должен сказать огромное спасибо Кириллу, всем, кто мне давал советы, и Хекслету в целом. Без этого проекта я бы потратил раз в 30 больше времени, чтобы понять, что такое асинхронность в js и промисы в частности!
Благодаря команде «Hexlet» мною сделан очередной важный шаг на пути в освоении профессии Бэкенд JS-программист, им стало участие в проекте «Вычислитель отличий».
Было непросто, но каждый пройденный этап проекта расширял многогранно мои знания в области того, как необходимо думать о задаче, искать информацию, проектировать и писать код, соответствующий стандартам.
Начало проекта у меня прошло под девизом «Долой мутации!!!». Как оказалось, где они только не были скрыты. Далее я понял сущность и реализовал на практике такие паттерны программирования как «Фасад» и «Адаптер». На этапе построения AST дерева я больше понимал эту структуру данных, возможности работы с ней.
На протяжении всего проекта меня сопровождали тесты. Знакомство с тестами и осознание их важности в процессе разработки в значительной мере помогали мне понимать происходящее в коде, находить ошибки, отлаживать код.
Хочу отдельно поблагодарить Кирилла Мокевнина – ментора, ведущего проект, за его желание делиться знаниями и учить.
Ребята, так держать!
Когда только приступил к проекту, голова пухла от обилия информации, которую нужно прочитать. git, npm, настройка окружения. Выбрал стратегию (не сознательно, скорее мозг включился в режим) "поиск минимально необходимой информации, чтобы пройти на следующий шаг". Получил палку о двух концах, пример с гитом, если бы сел и просто прочитал внимательно документацию, то не столкнулся бы с проблемой откатов, если задание учитель не принял, а так по началу зацепился за команду git reset —hard... один раз ее исользовав, очень стимулирует больше не повторять. Вывод для себя: не филонить с подготовкой к проекту, и читать документацию более вдумчиво.
Что получил в процессе. Понял что, пройденные курсы на Хекслете очень повлияли на стиль программирования, руки сами пишут код в функциональном стиле. В целом программирование я изучал, можно сказать со школы, потом колледж, но фактически не работал по профессии, но везде учили "императивщине": циклы, переменные и т.д. В проекте же даже мысли не возникло использовать циклы, только рекурсия, только константы.
Так же уяснил для себя нюанс, если прочитал документацию и что-то не понял, лучше уточнить у ментора, чтобы не осталось белого пятна, и оно не вылезло в проект. У меня это был пример с семантическим версионированием, я не до конца понял, когда изменения сделанные в программе, изменяют минорную версию и мажорную, в итоге при добавлении просто новой игры, программа стала из 1.3.4 — 2.0.0. Хорошо, что есть ментор который сразу кидает в тебя тапком за это =))
По структуре самого проекта, много небольших шажков и в целом я считаю, что это хорошо, есть некий минимум информации который нужно изучить, чтобы пройти шаг, и мозг не так сильно кипит. Плюс когда сделал шаг-два и они приняты, возникает чувство завершенности и удовлетворения от проделанной работы, что день прожит не зря, что-то узнал новое и применил на практике, получил обратную связь и продвинулся еще на шаг вперед)
Хорошее переосмысление было на 9-м шаге первого проекта, когда нужно было вычленить общее из целого и разбить на модули. Т.е. создать по сути слои абстракции. Хорошее замечание было, про то что, нельзя определять функции внутри функций, т.к. они будут постоянно переопределяться при вызовах и их нельзя будет протестировать отдельно.
Пройдя первый проект, я узнал почему важно правильное окружение, как больно не знать git, зачем нужны линтеры и как их подключить в проект, как настроить package.json, и что оказывается с помощью него можно делать bin файлы. Что есть крутые штуки, который выкачивают твой код и сами его тестируют на работоспособность и анализируют его на качество. А так же, что можно круто автоматизировать задачи с помощью make. Ну и на выходе написал свой первый проект, который работает! и который может установить себе любой желающий) Надеюсь дальше будет не менее интересно! =)
Только что я закончил второй учебный проект на Хекслете. Обоими проектами я остался очень доволен и чувствую, что они многое мне дали в плане освоения профессии. Прохождение любых, сколь угодно качественных, учебных курсов и решение многочисленных искусственно придуманных тематических задач и примеров никогда не позволит прочувствовать реальный процесс разработки какого-либо целостного решения. Такой процесс всегда использует многие инструменты и концепции и требует умения держать в сознании все решение целиком. Поэтому участие в такого рода проектах я ощущаю как следующий большой шаг после освоения базовой теории, несмотря на то что задачи все еще относительно просты по сравнению с реальными. По мере прохождения проектов я несколько раз замечал в себе перестройку моделей мышления и стиля, в котором я решаю задачи. Точные замечания ментора каждый раз направляли меня по новому маршруту, заставляя обнаружить свои слабые стороны. После завершения каждого из проектов я стал чувствовать себя увереннее относительно того, что я уже умею, и стал лучше понимать, куда мне двигаться дальше. Большое спасибо авторам за эту замечательную возможность быстрого и приятного профессионального становления!
Проект позволил мне закрепить знания, полученные из курсов, и убедиться, что я их правильно понял и усвоил.
Благодаря проекту, я начал использовать make как универсальный доступ к проекту, с инициализацией проекта со всем необходимым для современной разработки. Опубликовал свой первый модуль в npm. Понял, как нужно строить архитектуру приложения, чтобы другим программистам было удобно использовать модуль.
На 9 задаче я совершил роковую ошибку, наставник поправил меня и объяснил в чем была моя проблема. Конечно, пришлось все переделать, но, благодаря этому, я стал чуть умнее, за что я очень благодарен. Так же в проекте мне очень помогли псевдокод и тактика проектирования «Мечтать не вредно».
С нетерпение жду и готовлюсь к следующим проектам! Хорошо, что есть уникальная возможность проверить свои знания на практике с опытным наставником. Еще раз спасибо за возможность!
Проходить проект оказалось достаточно забавно, потому что как только начинаешь его делать сразу появляется ощущение небольшого соперничества с другими участниками. Естественно цель проекта не победить, а научиться чему-то. Чему научился я:
- Пользоваться гитом и гитхабом уже на практике.
- Настраивать окружение для проекта и различные модули.
- Публиковать пакеты npm. Опубликовал и установил свой пакет, и когда он заработал улыбка была до ушей.
- Подключать сторонние библиотеки. Разобрался с импортами и экспортами.
- Работать с архитектурой проекта. Для меня это главный урок, после которого произошел качественный скачок в понимании того, как все устроено.
- Работать с абстракциями. Открываешь файлы с кодом и сразу понятно за что отвечает любая функция или константа.
- Самостоятельно изучать документации и пользоваться гуглом прежде! чем спрашивать у кого-то.
До проекта, когда делал упражнения на Хекслете, я сразу писал код и не разбирался что там за код автор мне написал, какие функции дополнительные созданы, какие файлы созданы, тесты вообще магией казались. Прочитал задание и в путь. При этом как-то умудрялся проходить. На следующий день после проекта, я начал новое упражнение на Хекслете в одном из последних курсов и поймал себя на мысли, что нужно изучить файлы, импорты и экспорты, что там за функции дополнительные и пришло осознание, что упражнение - это маленький проект, и я понял как работают файлы из этого упражнения.
В целом все понравилось, получил то на что и рассчитывал, а именно понимание и осознание некоторых вещей, и опыт который можно приобрести только на практике.
Поначалу было довольно трудно, я бы сказал не совсем для новичка. Сразу наваливается куча информации, которую не знаешь куда применить и как, потом думаешь "ладно, сделаю как написано, а потом видно будет где это применяется". Тебя как будто окунают в условия, приближенные к реальным, и говорят: "Не знаю, как ты это будешь делать, но предоставь нам рабочий код"
В итоге лопатишь кучу информации, разбираешься как "это" работает и радуешься, потому что оно просто работает. И это, я считаю, самый лучший способ саморазвития.
На самом деле у меня возникли трудности только в 2 местах: было трудно правильно настроить пакет, потому что всё это я видел в первый раз; и реализовать (именно реализовать) файл с общей логикой. При реализации архитектуры (после суток раздумий у меня уже началась паника, что не успею сделать проект) без подсказки все-таки не обошлось. Далее просто решал задачи в удовольствие.