Проект Игры разума

Уровень: 1

Профессия Фронтенд JavaScript

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

9
шагов
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!

Впечатления

Хочу поблагодарить Рахима и остальную команду за этот проект в частности и за Хекслет в целом.

  1. Понравилось, что проект даёт возможность поучаствовать в разработке в условиях приближённых к реальности. В первый раз убил полдня, чтобы просто настроить окружение и мало что понял, во второй пошло как по накатанной. Чувствуешь какой-то полурелигиозный экстаз, когда начинаешь понемногу понимать, как что работает внутри node.js, как устроен git и так далее :)
  2. Понравилось, что ребята учат не просто кодить, а писать грамотный, понятный и логичный код. Во многом пришлось доходить своим умом, но это, в принципе, то, что нужно - любой разработчик должен уметь искать и читать документацию. Последний раз я так копался с кодом, наверное, лет 20 назад на ZX Spectrum.
  3. Спасибо, что научили оптимизировать процесс. Вообще не понимаю, как раньше работал без линтера. Travis - крутая штука. Asciinema - супер. Вообще, удивительно, как здорово программисты всё для себя оптимизировали, это я сравниваю со своей основной сферой проектирования в строительстве.
  4. Сами по себе игры простые, но, взглянув на них снаружи, даже и не поймёшь, как всё хитро и интересно внутри устроено. Появилось желание написать ещё несколько игр и вообще подучить алгебру.
  5. Из пожеланий - было бы здорово немного понизить сложность (в том смысле, чтобы что-то подробнее объяснять). При недельном дедлайне и работе, которая отнимает большую часть дня и мозга, разобраться быстро в сложном невероятно сложно (сорри за каламбур). Пару раз был на грани бросить и забить, потом остывал и разбирался :)

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

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

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

Вообщем, все очень противоречиво, но может это возрастное, мне уже 44. А может это личная ломка, я последние 7 лет верстаю и уже давненько пытаюсь перейти на новый уровень. Может это оно и есть? Мы уже программисты или еще нет, хотя бы джуниоры? ;)

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

Добрый вечер Сергей.

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

Александр, большое спасибо за вашу работу! Надеюсь продолжим столь же эффективное сотрудничество на следующем проекте)) Спасибо!)

Вопросы и ответы

Я — новичок. Справлюсь ли я с проектами?

Все зависит от вас! Проекты начинаются с базового уровня, и для старта вам не требуется большого опыта или знаний. Главное — задавать вопросы менторам и решать проблемы сразу. К тому же, вы можете остановиться в любой момент и продолжить с того же уровня в любое время в будущем.

Какое расписание у проекта?

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

Как оплачивается проект?

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

Зачем нужны проекты?

Проект помогает реализовать на практике то, что вы узнали на курсах. Важный момент: написанный вами код навсегда остается в вашем репозитории на GitHub. Фактически это ваша первая работа в портфолио.

Что делает ментор в проектах?

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

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

Пишите нам на [email protected], вам ответит живой человек из команды Хекслета. Или нажмите на иконку со знаком вопроса в правом нижнем углу экрана. Там есть ответы и на другие вопросы и удобная форма для отправки сообщения нам.