Вы находитесь на старой версии проекта. Новая версия доступна по ссылке
Проект #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!

Впечатления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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