Основные возможности платформы Hexlet не доступны в вашем браузере. Пожалуйста, обновитесь.

Отзывы учащихся

Ребята, ваш проект - это нечто! Ничего похожего нет нигде. Радует то, что вы реально закладываете основы, задаете вектор для развития как инженеров и формируете вокруг себя активное сообщество. Именно этого мне не хватало за все время своей программерской деятельности. Большое спасибо за ваш труд!

Курс - «JS: Составные данные», очень помог мне в понимании того, что такое хорошая абстракция в программе. Решение простых (и не очень :)) задач в конце каждого урока укрепляет понимание и углубляет его. Особенно хорошо, что есть возможность сравнить свое решение с решением учителя.

В уроке номер 6, который называется «Реализация пар», очень понятно описывается устройство конструктора, использование функций, как объектов первого класса. Вообще могу сказать, что Кирилл (учитель) описывает все понятно, последовательно и просто. Я, зная себя, скажу, что мне нужно именно хорошо объяснять, разжевывать. Правда, до этого я уже прошел несколько курсов по JS, и мне были не в новинку замыкания и работа с функциями в JS. Но этот курс хорошо структурировал мои знания и подложил под них фундамент. Ведь построение хороших абстракций не только увеличивает качество и простоту кода, но и сильно помогает в командной работе над программой.

Очень важно, что на Hexlet отвечают на вопрос ЗАЧЕМ вам этот или другой курс, и куда это вас это должно привести.

Я активно на Хекслете не так давно, так что пока рано делать выводы. Но чем больше я учусь, тем больше уверенности в том, что я в любую незнакомую штуку могу залезть и разобраться в ней без особых проблем. Раньше у меня как-будто блок был - типа технология незнакомая и всё. И главное - общение. В общем, очень я рад, что попал сюда

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

«Захотелось перестать кодить как попало»

Началось с того, что на работе мне потребовался JavaScript. Начал искать ресурсы по обучению - попал на learn.javascript.ru. Учил я себе учил... Прошёл больше половины материала и наткнулся в комментариях на ссылку на Хекслет. И всё... жизнь изменилась. Захотелось перестать кодить как попало (в принципе, давно так хотелось сделать). Посмотрел вебинары, понял, что пора браться за дело.

Переломным моментом было, когда Кирилл [со-основатель и преподаватель на Хекслете] рассказывал про ООП. В универе же Java учил. Мир перевернулся и стало понятно, что не то я в универе подчерпнул по ООП. И очень чётко в меня засело про объяснение того, как работает функция rand(). С этого, можно сказать, всё и началось. И вот что получается, JS я отложил и ушёл читать книгу "Код", СИКП, «В царстве смекалки»... То есть моё текущее состояние - это некое подобие рекурсивного вызова - пока не доберусь до дна, не стану делать изначально начатое.

Спасибо вам за отличный образовательный проект!

Влияние получил огромное, из основного это, наверное, мотивация. Раньше большая часть времени тратилась на бесполезные вещи вроде игр/сериалов, сейчас почти все свободное время уходит на обучение (в том числе и за рамками хекслета), и когда начинает получаться — происходит эйфория, непередаваемое ощущение. Стал мыслить по-другому, особенно после курса «Основы программирования», вот это сложно объяснить.

Из примеров в реальной жизни: можно сказать, что за последний месяц сильно прокачал коллег по цеху, настроил сборку фронтенда с помощью gulp, рассказал что такое babel, заставил всех изучать ES6 и использовать функциональные фишки типа filter, map, reduce. Также многие коллеги стали консультироваться со мной по различным вопросам написания кода и используемых технологий, хотя я только junior. Сейчас читаю Голдрата и уже думаю, как перестраивать свой рабочий процесс. Отдельное спасибо за эту книгу.

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

Серьезно улучшил навык работы с регулярными выражениями. Т.е. и до этого их знал, но не часто использовал, и как следствие - не продуктивно, а после курса, наверное, с неделю не вылезал с regex101 и regexcrossword.com. Вобщем теперь не я с ними на «вы», а они со мной.

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

Я перестал обходить стороной такие функции как map, reduce, filter. Раньше пугало, что в параметрах функции может быть еще функция :-) Не понимал, каким образом она перебирает свой соседний параметр. Поэтому обходил их стороной. Но когда на собственной шкуре прочувствовав реализацию этих функций... Когда начал понимать как там всё крутится — ну это как отрастить вторую руку однорукому человеку. То что можно возвращать функцию... я долго въезжал, что после возврата функции функцией, она еще может и принять параметр... Однозначно курс "зе бест" что я видел!

Что мне особенно понравилось - это то, что ребята уделили внимание, и даже, скорее, вывели на вершину угла базовые основы программирования, анализ и решение задач, понимание "фундамента". Мне всегда не нравился формат обучения, где "здравствуйте, урок первый: print helloworld". Хочется как-то разобраться что мы делаем и зачем, как все должно быть в идеале и как есть на самом деле.

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

Хочу поблагодарить команду Хекслета, за этот крутой проект. За последние 5 лет у меня было 2 серьезных периода роста в программировании, первый пару лет назад когда я попал в компанию где использовались гит, редмайн, код ревью и прочие вещи, о которых я не подозревал, второй «пинок» (в хорошем смысле) дали вы.

Честно говоря, ваши курсы для меня — открытие. Я уже много лет в программировании, в другой отрасли, и думал по своей наивности, что вряд ли смогу узнать что-то новое о программировании. А тут прямо целый пласт открылся. Вернулось то чувство, когда я впервые писал на бейсике в тетрадке, читая документацию по языку (тогда компьютеры были еще редкостью). А потом по вечерам бегал к отцу на работу, чтобы закодить, проверить и получить результат. Это была та еще эйфория!

Нравится, что вы делаете ребята. Спасибо за Хекслет!

Мой процесс занятий по профессии «PHP-программист» растянулся аж на целый год. Назвать это интенсивом можно конечно с большой натяжкой :) но точно могу сказать, что время не было потрачено впустую. Многие вещи были расставлены на свои места. Сформировалась довольно отчетливая картинка, что такое программирование и как оно связано с веб-разработкой. Для новичка Хекслет это настоящий кладезь знаний и полезного опыта. И речь не только о курсах. Вся сопутствующая информация, вебинары, блог, беседы в слаке, все это создает некую атмосферу, правильную атмосферу, погрузившись в которую, настраиваешься на изучение и открытие чего-то нового. Если говорить про учебный процесс, то сам формат организации курсов очень удобен для удаленного обучения. Выбрал интересующее направление, появилось свободное время — позанимайся.

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

А вообще, должен сказать огромное спасибо Кириллу, всем, кто мне давал советы, и Хекслету в целом. Без этого проекта я бы потратил раз в 30 больше времени, чтобы понять, что такое асинхронность в js и промисы в частности!

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

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

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

В итоге, могу сказать, это на сегодняшний день лучший опыт, что я испытал в обучении.

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

Благодаря проекту, я начал использовать make как универсальный доступ к проекту, с инициализацией проекта со всем необходимым для современной разработки. Опубликовал свой первый модуль в npm. Понял, как нужно строить архитектуру приложения, чтобы другим программистам было удобно использовать модуль.

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

С нетерпение жду и готовлюсь к следующим проектам! Хорошо, что есть уникальная возможность проверить свои знания на практике с опытным наставником. Еще раз спасибо за возможность!

Когда только приступил к проекту, голова пухла от обилия информации, которую нужно прочитать. git, npm, настройка окружения. Выбрал стратегию (не сознательно, скорее мозг включился в режим) "поиск минимально необходимой информации, чтобы пройти на следующий шаг". Получил палку о двух концах, пример с гитом, если бы сел и просто прочитал внимательно документацию, то не столкнулся бы с проблемой откатов, если задание учитель не принял, а так по началу зацепился за команду git reset —hard... один раз ее исользовав, очень стимулирует больше не повторять. Вывод для себя: не филонить с подготовкой к проекту, и читать документацию более вдумчиво.



Что получил в процессе. Понял что, пройденные курсы на Хекслете очень повлияли на стиль программирования, руки сами пишут код в функциональном стиле. В целом программирование я изучал, можно сказать со школы, потом колледж, но фактически не работал по профессии, но везде учили "императивщине": циклы, переменные и т.д.
 В проекте же даже мысли не возникло использовать циклы, только рекурсия, только константы.



Так же уяснил для себя нюанс, если прочитал документацию и что-то не понял, лучше уточнить у ментора, чтобы не осталось белого пятна, и оно не вылезло в проект. У меня это был пример с семантическим версионированием, я не до конца понял, когда изменения сделанные в программе, изменяют минорную версию и мажорную, в итоге при добавлении просто новой игры, программа стала из 1.3.4 — 2.0.0. Хорошо, что есть ментор который сразу кидает в тебя тапком за это =))


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

Хорошее переосмысление было на 9-м шаге первого проекта, когда нужно было вычленить общее из целого и разбить на модули. Т.е. создать по сути слои абстракции. Хорошее замечание было, про то что, нельзя определять функции внутри функций, т.к. они будут постоянно переопределяться при вызовах и их нельзя будет протестировать отдельно.


Пройдя первый проект, я узнал почему важно правильное окружение, как больно не знать git, зачем нужны линтеры и как их подключить в проект, как настроить package.json, и что оказывается с помощью него можно делать bin файлы. Что есть крутые штуки, который выкачивают твой код и сами его тестируют на работоспособность и анализируют его на качество. А так же, что можно круто автоматизировать задачи с помощью make. Ну и на выходе написал свой первый проект, который работает! и который может установить себе любой желающий)
Надеюсь дальше будет не менее интересно! =)

По поводу первого проекта: в целом все понравилось — настройка рабочего окружения, подключения сервисов, публикация пакета - для меня многое было впервые. Самая радость была когда написал код - опубликовал его - установил и оно работает! Ну и когда был пройден 9й шаг :)

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

В целом все отлично, прокачался уж точно, посмотрим что будет в следующих проектах.

Проходить проект оказалось достаточно забавно, потому что как только начинаешь его делать сразу появляется ощущение небольшого соперничества с другими участниками. Естественно цель проекта не победить, а научиться чему-то. Чему научился я:

  1. Пользоваться гитом и гитхабом уже на практике.
  2. Настраивать окружение для проекта и различные модули.
  3. Публиковать пакеты npm. Опубликовал и установил свой пакет, и когда он заработал улыбка была до ушей.
  4. Подключать сторонние библиотеки. Разобрался с импортами и экспортами.
  5. Работать с архитектурой проекта. Для меня это главный урок, после которого произошел качественный скачок в понимании того, как все устроено.
  6. Работать с абстракциями. Открываешь файлы с кодом и сразу понятно за что отвечает любая функция или константа.
  7. Самостоятельно изучать документации и пользоваться гуглом прежде! чем спрашивать у кого-то.

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

В целом все понравилось, получил то на что и рассчитывал, а именно понимание и осознание некоторых вещей, и опыт который можно приобрести только на практике.

То, что в связке с проектами лучше понимаешь и запоминаешь материал курсов, уже все заметили. Какие-то вещи могут просто не запомниться без закрепления, другие могут показаться сложными и попасть в ящик "потом разберусь"(никогда). На проекте про них напомнят и "заставят", порекомендуют применять. В итоге, вероятнее всего, ты найдешь их удобными/полезными и будешь использовать в дальнейшей работе. Базовое понимание построения приложений и написания нормального кода прилагается. Я, к примеру, в промежутке между проектами решил заранее решить большую часть заданий (уже видел их). Все получилось, но по итогу все это пришлось переписать. Это про то, что просто решить и нормально реализовать решение - разные вещи. На мой взгляд, первое решение было вполне себе ничего, но сравнив их в итоге разницу я конечно заметил. И тут даже не про иммутабельность или что-то такое, а просто в первом кода было в 1,5-2 раза больше и оно в 2 раза сложнее. В общем это примерно как качаться со стероидами и без - вроде про одно и тоже, а результат разный. Можно быть в топе по курсам, но на проекте скрипеть как несмазанная телега.

А "даже больше чем да" потому что главное что я для себя вынес - я что-то упускаю или делаю не так на глобальном уровне - эффект не пропорционален затраченному на обучение времени. Я как тот парень в зале который видит что делают другие, старается повторять, но не до конца понимает что к чему и в итоге результат получается слабый :) Скорее всего, я бы и сам это понял со временем, но хорошо, что это случилось раньше.

Благодаря команде «Hexlet» мною сделан очередной важный шаг на пути в освоении профессии Бэкенд JS-программист, им стало участие в проекте «Вычислитель отличий».

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

Начало проекта у меня прошло под девизом «Долой мутации!!!». Как оказалось, где они только не были скрыты. Далее я понял сущность и реализовал на практике такие паттерны программирования как «Фасад» и «Адаптер». На этапе построения AST дерева я больше понимал эту структуру данных, возможности работы с ней.

На протяжении всего проекта меня сопровождали тесты. Знакомство с тестами и осознание их важности в процессе разработки в значительной мере помогали мне понимать происходящее в коде, находить ошибки, отлаживать код.

Хочу отдельно поблагодарить Кирилла Мокевнина – ментора, ведущего проект, за его желание делиться знаниями и учить.

Ребята, так держать!

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

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

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

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

Итак - пройден первый проект. Оглядываясь назад, он кажется не сложным. Даже странно - почему это заняло столько времени. Получившееся решение кажется абсолютно простым и логичным. И как я сразу к этому не пришел? Но вот - не пришел. Главная моя проблема была в том, что я изначально переусложнил понимание задачи у себя в голове. Ментор намекнул мне об этом в самом начале, но осознание заняло некоторое время и несколько итераций, после каждой из которых я приближался к истинному пониманию того как должно быть реализовано решение.

Решаемые в проекте задачи сами по себе простые. Главная сложность (и видимо главная цель) проекта в правильной организации структуры кода и взаимодействии его частей. Из других положительных результатов - понимание правильной организации рабочего окружения. Это было не сложно, но очень полезно. Так же уяснил для себя на будущее некоторые принципы построения абстракций и правильного наименование переменных и фунеций - это действительно упрощает жизнь.

Тем, кто раздумывает о том, стоит-ли проходить проекты, скажу - однозначно стоит. Но будьте готовы к тому, что это может потребовать много времени. Если вы совсем новичок в программировании, то я рекомендовал бы максимально освободить проектную неделю от каких- либо других дел. Попробуйте подгадать на отпуск или каникулы. Заранее разберитесь с гитом. Обязательно ознакомьтесь с теми материалами и инструментами, которые рекомендуется изучить до начала проекта, что бы не тратить на это время в процессе.

Во время прохождения проекта я в первую очередь порекомендовал бы не торопиться. Внимательно читайте прилагаемые материалы и комментарии менторов. Если чувствуете, что вы в тупики - не зацикливайтесь на принятых решениях. Иногда бывает полезно удалить написанное и начать с чистого листа. Если нет идей - отвлекитесь от задачи. Пойдите прогуляйтесь или займитесь чем-нибудь другим. Это банальные советы, которые даются во всей литературе посвященной обучению, но они действительно работают. Мне лучшие мысли приходят по пути с работы =)

Что касается самого процесса прохождения проекта- был приятно удивлен, оперативностью работы ментора и очень развернутым фидбэком. Про под ход к обучению - я думаю Хекслету удалось реализовать менторство в его правильном виде. Ментор - это не тот человек, который дает правильные ответы, а тот, который задает правильные вопросы. В процессе прохождения проекта, ментор своими вопросами и критикой моих попыток заставил меня самого додуматься до верного решения. Знания и решения до которых "додумался" задерживаются в памяти гораздо лучше, чем готовые ответы.

Впрочем, заставлять думать - это вообще про Хекслет =)


Хотите добавить сюда свой отзыв или историю успеха?
Напишите нам на support@hexlet.io