JavaScript временами кажется запутанным и откровенно странным, но с его помощью можно сделать много замечательных вещей.
Разработчики, изучающие JS, обычно ограничиваются решением задачек по программированию и классическими веб-проектами вроде сайта-портфолио или онлайн-магазина. Но зачем же на этом останавливаться?
Забудьте на минутку о скучных упражнениях и включите свое воображение. На JavaScript можно сделать очень много всего. Давайте немного развлечемся!
101 Hello Word
Программы типа «Hello Word» годятся не только для начинающих. Проверьте, насколько вы креативны! Попробуйте придумать несколько разных способов написать на JavaScript программу, которая выводила бы на экран эти всем известные слова. Если не найдете свое решение в этом GitHub-репозитории, не стесняйтесь поделиться им с другими!
Создание 3D-объектов
Чтобы взяться за 3D-рендеринг в JavaScript, не так уж много надо. Достаточно иметь базовое понимание языка и познакомиться с библиотекой Three.js.
Все новички начинают с рисования 3D-куба или сферы, но, освоив азы, вы сможете создавать по-настоящему потрясающие вещи.
Библиотека Three.js также часто используется в VR и AR-проектах, так что кто знает, куда вас заведет такой проект.
Космические захватчики (Space Invaders)
YouTube-канал Coding Train — настоящий монстр в том, что касается необычных JavaScript-челленджей и проектов. Если вы уже имеете кое-какой опыт, я бы посоветовала попробовать самостоятельно придумать свою версию игры «Space Invaders» и затем сравнить результаты.
А новички могут просто следовать этому замечательному туториалу. Создавая игру, они узнают много новых интересных вещей о JavaScript и основах геймдева.
Хотите еще что-то вдохновляющее? Когда-то я и сама создала версию этой игры на C++. Она была настолько базовой, что я назвала ее «Sad Space Invaders» («Грустные космические захватчики»). Но, тем не менее, она была рабочей!
30 дней Vanilla JavaScript
Слыхали об усталости от JavaScript (JavaScript fatigue)? Это явление связано с очень быстрым развитием языка и его экосистемы, из-за которого просто невозможно уследить за всеми новыми инструментами и трендами.
Если вы, как и многие из нас, устали от бесконечных пакетов и библиотек, обратите внимание на этот курс по ванильному JavaScript с ежедневными заданиями. Очень освежает!
Начальные файлы и готовые решения для задач курса можно найти здесь.
Игра «Змейка»
Если верить этому парню, создать JavaScript-версию «Змейки» можно за 15 минут. Присоединяйтесь к челленджу!
Кстати, у этого автора есть целый плейлист с интересными задачками по программированию.
Фрактальное дерево
Может, это лишь мое личное впечатление, но мне кажется, что во фракталах есть некая магия. Вы только посмотрите на эти деревья, созданные при помощи библиотеки p5.js!
Вот общий обзор фракталов и фрактальных деревьев — чтобы было, от чего отталкиваться. А если вам нужна дополнительная помощь, обратитесь к этому руководству.
Множество Мандельброта
Раз уж зашла речь о фракталах, вот мой второй фаворит — множество Мандельброта. Если вам вдруг любопытно, третий фаворит — множество Жюлиа.
Попробуйте сперва поискать информацию о фракталах и самостоятельно реализовать собственную версию. Если что-то не сработает, вот набор полезных руководств.
Игра «Жизнь» Конвея
В 1970-х математик Джон Конвей придумал игру «Жизнь». Это не то чтобы прямо настоящая игра. Это скорее захватывающая математическая симуляция, которую довольно легко реализовать на любом языке программирования, в том числе на JavaScript.
Симулятор брутфорс-хакинга
Это скорее задача по фронтенду, но здесь есть своя доля интересных проблем, которые нужно решить.
See the Pen Bruteforce Hacking Simulator by Marco Fugaro (@marco_fugaro) on CodePen.
Куайн
Куайн (Quine) — программа, выдающая на выходе точную копию своего исходного текста. Написание такой программы может поначалу показаться простой задачей, но при желании вы можете ее усложнить. Попробуйте сперва придумать собственное решение, не заглядывая в чужие!
Имитация природных явлений
На Khan Academy в бесплатном курсе по программированию есть целый юнит, посвященный продвинутому JS и имитациям природы. Посмотрите сперва их видео, а затем выполните задания. Если вы новичок, вам может понадобиться посмотреть и несколько предыдущих юнитов, а то и весь курс.
Музыка и Tone.js
Проект, в котором сочетается создание музыки и программирование на JavaScript, может быть очень интересным. Создание музыки вообще имеет больше общего с написанием кода, чем можно подумать.
При работе над таким проектом вам пригодится библиотека Tone.js. Она довольно понятная и работать с ней просто.
AI с TensorFlow.js
Когда думаешь о машинном обучении или искусственном интеллекте, JavaScript — не первый язык, который приходит в голову. Тем не менее, с помощью библиотеки TensorFlow.js можно создать что-то по-настоящему крутое.
Симуляция физики
Замечательное руководство по созданию веб-симуляций с использованием HTML5 и JavaScript. Доступно в PDF и веб-версии.
Вирус
И, наконец, последняя задача — создание вируса на JavaScript. Конечно, это должно быть не что-то страшное, а чистое озорство. Но даже нестрашный вирус будет интересным проектом. Пример на GitHub.
Перевод статьи «Curious JavaScript Challenges for Developers of All Levels».
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]