Вы находитесь на старой версии проекта. Новая версия доступна по ссылке
Проект #1

Игры разума

Фронтенд-программист

Погрузитесь в непростую экосистему JavaScript, научитесь настраивать рабочее окружение. Подружитесь с линтером (анализатором качества кода) и менеджером зависимостей npm. Поймёте, чем git отличается от GitHub, поработаете с внешними репозиториями. Получите опыт построения архитектуры полноценного приложения и написания чистого кода.

2-4
недели

Цель

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

  • Пакетный менеджер (npm, yarn). Управляет зависимостями, выполняет хуки и описывает проект.
  • Babel (Транспайлер). Позволяет использовать новые фичи, даже если они не поддерживаются средой исполнения.
  • Eslint - линтер. Проверяет корректность кода на соответствие стандартам кодирования.

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

Описание

В рамках проекта необходимо реализовать набор мини-игр, запускаемых из консоли. Будем называть их "Игры разума".

Пример игры:

$ brain-progression

Welcome to the Brain Game!
What number is missing in this progression?

May I have your name? Roman
Hello, Roman!

Question: 14 .. 18 20 22 24 26 28
Your answer: 16
Correct!
Question: 5 6 7 8 9 .. 11 12
Your answer: 10
Correct!
Question: 12 15 18 21 .. 27 30 33
Your answer: 24
Correct!
Congratulations, Roman!

Наставники

Вадим Сорокин
Frontend Developer, Universa Blockchain
Вадим Кудрявцев
Frontend Developer, OneTwoTrip
Кирилл Костиков
Frontend Developer, Pushwoosh
Александр Половников
Software Engineer, VideoCoin

Впечатления

Добрый день. Перед выбором данного ресурса пробовал несколько других и онлайн и офлайн. Сложилось впечатление, что Хекслет остался одним из немногих, в котором преподаватели работают на результат, а не на прибыль. Отдельную благодарность хочу принести Станиславу Дзисяк за оперативные и доступные для понимания разъяснения. Конечно, сам первый проект, только показал мне, как мало я еще знаю )). Но, с другой стороны, если "капнуть" чуть глубже (не без помощи ментора!) все становится проще и понятней. Поэтому продолжаем дальше, к смене профессии!

Итак, первый проект пройден.

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

Одним из важнейших подарков для меня стало знакомство с модульностью, также получилось потренироваться в работе с git, прочувствовать значимость принципов KISS, YAGNI, DRY в реальной работе. Начало появляться понимание, что это вообще такое, разработка.

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

Спасибо за проект и спасибо Станиславу за менторство! Самое сложное и главное в проекте - настроить окружение, разобраться со структурой проекта, настроить codeclimate, eslint и, что оказалось максимально времязатратным githubActions.

Проект принят, осталось исправить пару нюансов, и это мощнейшая мотивация для движения дальше.

Вот и принят мой проект ментором. Чему я, несказанно, рад :). Спасибо Станиславу Дзисяк за полученный опыт и подробные разъяснения по замечаниям. Познакомился вплотную в проекте с непрерывной интеграцией на GitHub. Это просто офигенная вещь! Также внеднил в реальности те правила написаниякода, о которых постоянно говорит Хекслет. Желаю Хекслет дальнейших успехов в совершенствовании программы обучения. А впереди ждет второй проект :)

Очень классный проект, в пользе от которого для себя я изначально сомневался, ведь я уже имел некоторый опыт в программировании, а тут, казалось бы, обычные консольные мини-игры. Но работа с ментором помогла разобраться с огромным количеством изъянов в моем понимании того, как надо правильно писать код в разных ситуациях. Большое спасибо Станиславу Дзисяк за настолько качественные проверки и развернутые ответы на мои нескончаемые вопросы! Кроме того, настройка окружения, makefile, github actions, работа с npm - со всем этим знакомят в проекте, и это очень полезно. И наконец, проект позволяет ощутить, насколько было бы классно иметь тесты. Во время code-review при внесении поправок постоянно приходится проверять, не сломалось ли что-нибудь в какой-то из игр. Так что проект дает дополнительное желание пройти предстоящие курсы про тестирование.

Сколько стоят проекты?

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

Зачем проходить проекты?

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

Проекты — портфолио программиста. Их код останется в вашем аккаунте на GitHub и будет преимуществом при поиске работы.

Чтобы узнать о том, что такое проекты и в чём их польза, прочитайте нашу статью «Анатомия проектов Хекслета».

Что делать, если возникли трудности во время выполнения проекта?

Задавайте вопросы в разделе «Обсуждение» на странице шага, на котором возникли трудности, или вашему наставнику. Изучите вопросы других студентов в «Обсуждениях»: там собрана большая база знаний, ей можно и нужно пользоваться. Попросите о помощи в нашем Slack-чате в канале #hexlet-projects.

Кто проверяет проекты?

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

У меня другой вопрос

Нажмите на виджет в правом нижнем углу экрана и поищите ответ в нашей справке. Или сразу пишите на support@hexlet.io — вам ответит живой человек из команды Хекслета.