Основные возможности платформы 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 серьезных периода роста в программировании, первый пару лет назад когда я попал в компанию где использовались гит, редмайн, код ревью и прочие вещи, о которых я не подозревал, второй «пинок» (в хорошем смысле) дали вы.

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

И почему в универе так не преподавали? И это основы, самый базовый курс, Карл! Я потел, бил кулаком по столу, часами сидел над какой-нибудь задачкой и хотел кого-нибудь придушить. Но наконец-то дошёл до конца и Решено 21 (и все без подглядываний!). За последнюю задачу я бы вообще штраф выписывал за издевательство над мозгом). Если сравнивать с всем известным сайтом http://learn.javascript.ru/, то могу сказать так - там тоже задачи не самые простые, однако желание их решать и подача материала там лично для меня скучнее. Здесь же была и злость и спортивный интерес, что угодно, но только не скука. И современнее, это тоже.

Считаю, что нет предела совершенству и можно найти недостаток везде. У этого курса только 1 недостаток - я уже забыл что там было в начале(. Через месяц вернусь к нему и повторю.

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

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

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

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

Конечно, bad design имел место быть, но в купе с риторикой авторов литературы, он просто погружал в депрессию, причем так, что я надолго закинул программирование как "не мое". Будь авторы многочисленных книг чуть более объективными, думаю, я бы имел более "здоровую" картину происходящего и здоровое отношение к себе и своим возможностям.

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

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

Всем здравствуйте. Меня зовут Георгий. 22 года. Сразу хочу сказать, что мне очень понравился данный сервис обучения программированию. С детства мечтал стать программистом и только с недавнего времени стал реализовать свою мечту в действие. И хочу поблагодарить создателей за такой замечательный ресурс. Свое путешествие в мир кода начал с изучения различных ресурсов по программированию и книги "Изучаем Python". Естественно до нынешнего времени о понятии систематизации я не догадывался и делал все интуитивно на ощупь по ходу продвижения пытаясь осваивать изученное. Почти за три месяца изучения книги, честно говоря, удалось мало добиться каких-либо результатов в продвижении. И я каждый день это понимал, но все же в надежде пробить дыру в голове продолжал впихивать в себя невпихуемое. Вчера случайно на Ютубе наткнулся на канал данного ресурса где в превью был ваш вебинар. С некоторой долей неуверенности начал смотреть и по ходу дела стал понимать, что человек действительно говорит вещи, которые я не замечал попросту. А именно что изучение должно быть последовательным, конструрированым и вести должен человек который имеет навык в этом. И свою некомпетентность до этого момента я не смог трезво оценить. Считал, что можно все одному научиться, в общем действовал по принципу "Слабоумие и упорство". Сегодня начал изучать курс "Основы программирования" и с первых уроков понял, что это действительно мне поможет думать абстрактно и думать так, как думают профессионалы в этом деле. В дальнейшем намерен платную подписку взять. В общем, еще раз хочу поблагодарить создателей за такой ресурс замечательный и желаю дальнейшего успеха и продвижения.

Для меня это был какой-то непрекращающийся спринтомарофон с огромным количеством информации, изучением новых технологий, борьбой с ошибками. Как-то я провел час пытаясь понять почему не работает "git push [сервер] mastery". Естественно, ветки "mastery" не существовало :) Но из-за непонимания инструмента приходилось буквально наощуп все делать. Еще никогда я столько раз подряд не ощущал себя обезьяной с гранатой.

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

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

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

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

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

Прошёл второй проект — "вычислитель отличий", в результате чего сформировалось устойчивое ощущение level-up'а. :)

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

Проект показался заметно сложнее предыдущего, хотя при взгляде на уже написанный код кажется, что вроде бы всё просто и понятно, наверное потому что много узнал и осознал в процессе написания: работа с тестами, тонкости построения ast, cli, более подробно познакомился с такой отличной вещью, как lodash, понял, что методы работы с json намного мощнее, чем мне изначально показалось, и ряд других вещей.

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

Отдельно выражаю благодарность ментору Александру за разборы полётов и рекомендации по коду.

Первый проект... Учитывая реальный опыт работы программистом (Progress 4GL, Cache Object Script, C#), думала, что отщелкаю его на ура. Сделаю все задания за пару дней. Черта с два. Оказалось, что я совсем не умею проектировать приложения и выделять абстракции. Оказалось, что моё понимание, когда нужно выделять кусок кода в метод, а когда - нет, оставляет желать лучшего. Короче говоря, мозг взорвался где-то на четвертом этапе. Пришлось переписывать почти весь код два раза.

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

Очень жду следующих проектов.

В своё время реализовал задачу при помощи php + bootstrap + jQuery. На DOM смотрел через призму jQuery. Потом захотелось большего и начал изучать JS, понял что много упустил и наткнулся на Хекслет. А дальше всё как в тумане... И вот спустя 4 месяца с Хекслетом я осознал, что я вообще ничего не понимал в разработке и увидел, как вся эта история должна выглядеть на самом деле.

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

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

Но к проектам надо серьезно подготовиться, чтобы не тратить чрезмерно много времени на настройку окружения и разбирательства с системой. Желательно установить линукс, если вы еще на виндоуз :-) И лучше еще раз пройтись по урокам из курса "Основы программирования" (либо "Введение в программирование" - там очень наглядно объясняется рекурсивный и итеративный процесс, работа с модулями). Обязательно порешать задачи из дополнительной практики к этим курсам.

Ну, и не сдаваться, если вы уже на предпоследнем дне сдачи проекта, а впереди еще 3 нерешенных этапа :)

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

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

Завершен проект номер два "Вычислитель отличий", завершен со второй попытки.

Восторг от процесса и от полученного опыта! Урраа !!!

Теперь сначала.

Первый проект познакомил и научил пользоваться в разработке, инструментами: npm, babel, git, codeclimate, travis, самая каверзная штука - это eslint и как дополнение eslint в редакторе Atom. На процесс настройки пришлось потратить не малое количество времени, нюансов очень много: файлы, конфиги, добавление различных опций, связь между собой, игноры и т.д. Проникся "console.log", отладка наше все. Package.json в купе с Makefile просто коробка с кнопочками, рычагами и выключателями. Код получается красивый eslint на страже. Еще, что дал первый проект - понимание игрового потока.

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

Второй проект. Теперь я знаю, что такое AST =)) (Абстрактное синтаксическое дерево). Наверное, это весь отзыв на второй проект.

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

Этапы каждого этапа:

  • в начале ничего не знаешь как делать;
  • что-то делаешь, вроде как то работает, где, то хочется подогнать под тесты;
  • оказывается что все "неправильно";
  • ты не знаешь как "правильно"
  • исправляешь на "правильно" и опять работает; (последние три пункта часто уходят в цикл) Вот тогда-то и понимаешь в чем твои ошибки видишь, что оказывается все просто.

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

Чего мне не хватало, это знания английского (дело поправимое), именование переменных и вообще грамматика. Мы за ментальное программирование. Сейчас появилось общее понимание. Надеюсь и чтение документации в дальнейшем прокачает это.

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

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

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

Да самое главное в коде это ES6 и только функциональный стиль !!!

Тот, кто не проходил проекты на Хекслете, не знает, что такое Хекслет !!!

Спасибо лично ментору Кириллу Мокевнину, а также всей команде Хекслет!

Такое мое начало пути к познанию программирования!

Было очень интересно, каждый уровень проекта приносит понимание вещей в объеме сравнимом с десятком курсов (часть из этого видимо то, что при прохождении курсов как-то не осело в голове). На этом уровне конкретно проникся любовью к тестам, во много крат возвращают экономию во времени и сил в сравнении с потраченным на их написание. Ну и лучше стал понимать (надеюсь :slightly_smiling_face: ) полиморфизм. Самое сложное было разобраться с commander.js и прокидыванием через него опциональных аргументов. Все сделанные замечания очень ценны, обязательно буду их в будущем учитывать. :

Спасибо за реальный проект. Самый действенный способ вспомнить и закрепить полученные в уроках знания и навыки. К сожалению, неделя перед проектом у меня выдалась очень загруженной, следующая обещала быть такой же и я сомневался в необходимости сдавать первый шаг, думал, что не найду достаточно времени. Тем не менее, решил рискнуть. Про подготовку к проекту я вообще забыл и не читал ни про Jest, ни что там еще рекомендовалось, только необходимые курсы закончил. Из семи дней, отведенных на проект, в общей сумме 3 дня я не притрагивался к коду. А после субботней лекции в слаке разбирался с построением АСТ и форматированием дерева до раннего утра. Как говорится, "захочешь - сделаешь". Откладывать проект на месяц не хотелось, в планах к осени закончить четвертый проект и думать о необходимости трудоустройства. Очень понравилась разработка через тесты с использование Jest и его режимом --watch, очень удобно моментально видеть в терминале изменения результатов теста после сохранения файла с новым кодом. Из сложностей - именно работа с АСТ деревом заставила меня очень сильно понервничать. В какой-то момент плюнул, устроил двухчасовой перерыв, после чего со свежей головой снова сел за код и дописал его. Правда, на следующий день половину кода пришлось переписать, но это нормально, без косяков никак)

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

Закончил первый проект. Очень круто! Получил много полезных навыков от настройки рабочего окружения до публикации пакета в репозиторий. Раньше работал с репозиторием npm только как пользователь, теперь же лучше понимаю как он устроен и как с ним взаимодействуют разработчики. Плюс, во время разработки, понимаешь что упустил во время обучения, а очень легко что-то упустить без практики:)

Основной упор проекта сделан на построение правильной архитектуры. После третьей - четвертой итерации, я смог построить ее правильно! Спасибо Рахиму за подробные и полезные комментарии:) В общем, проект заставит вас думать, много думать.

P.S. Список того, что изучить перед стартом - очень помогает:)

Сразу оговорюсь, что это было определенно одно из лучших вложений денег в моей жизни. Я получил очень полезный опыт и многое в голове встало на свои места.

Во-первых-это понимание экосистемы. npm, git, eslint-без этого просто никуда. Мне было очень важно познакомиться с этими инструментами, теперь мое резюме определенно будет выглядеть чуток лучше. Второе-сам процесс разработки архитектуры и написания кода. Когда я прохожу курсы, архитектура по сути уже разработана, все готово, по сути нужно только решить задание, написав код. В данном интенсиве все нужно было делать самому, и вот эта необходимость самому строить взаимодействие разных кусков программы, думать, что куда передавать, с какими параметрами-вывела меня на новый уровень понимания того, что происходит в программировании.

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

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

Завершил первый проект удачно, но с мыслью - «всё плохо!» Советы бывалых, что достаточно уметь строку переворачивать и с массивами работать оказался совсем из другой оперы. Понимание самого процесса, происходящего в программе, оказалось куда важнее и нужнее. Остальное — это просто вовремя подгружаемые модули.

По сути ничего сложного и заставляющего сильно пыхтеть над кодом не было. Ну т.е, не было после того, как весь проект два раза полностью переписан и больше страдать не нужно, можно успокоиться ;) Да, сама настройка окружения напрягает - один пропущенный шаг или символ и все, ничего не работает, полный лог ошибок, «тушите свет, расходимся». Читал где-то в комментариях, что половина тех же начинающих верстальщиков отваливаются на установке фотошопа. Сколько же людей отвалилось на настройка редактора, git или того же npm!? Поэтому, перед первым проектом, обязательно должно быть всё загружено, поставлено и три раза проверено!!!

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

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

По всему этому, хочется сказать СПАСИБО всей команде Хекслета, за грамотный подход, очень быструю обратную связь и, особенно, за комьюнити. Оно действительно решает!

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

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

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



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



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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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