10 интерактивов и игр для обучения программированию

JavaScript в лабиринте, SQL для поиска убийцы и интерактивный Python

С помощью игр для программистов можно научиться основам JavaScript и SQL, а интерактивные графики и симуляторы помогут разобраться в нейросетях и математике. Рассказываем о 10 интерактивах для начинающих, которые помогут понять работу алгоритмов и начать программировать.

Обучение JavaScript в игре-лабиринте

Bit’s Quest — игра, в которой нужно провести робота через лабиринт с помощью строчек кода на JavaScript. У робота есть четыре двигателя: запуская каждый из них с помощью функций JavaScript, вы сможете довести робота до выхода. В игре есть все инструкции для написания кода, по мере обучения вы сможете стрелять во врагов (использовать знания о событиях и замыканиях в JavaScript).

JavaScript — язык, на котором программируют интерактивные элементы на сайтах и в приложениях. Если на сайтах HTML отвечает за общую разметку страницы, CSS — за оформление и дизайн, то JavaScript — за реакцию на действия пользователя. Например, с помощью JavaScript программируют браузерные игры, приложения на Android, а также страницы социальных сетей.

Изучение CSS-селекторов на обеденном столе

CSS-селектор — правило на web-страницах, которое помогает браузеру определять, к какому элементу применять стиль. Например, в интерактиве CSS Diner можно шаг за шагом обучиться селекторам, описывая предметы на обеденном столе строчками несложного кода. Обучение идет от простейшего к сложному: после всех 32 уровней уже можно верстать собственные страницы со сложными стилями.

CSS — это язык для описания внешнего вида сайтов. Создать простую веб-страницу можно и с помощью HTML, но возможностей для дизайна там не много. С помощью CSS можно задать стили для разных элементов HTML-страницы: шрифты, цвета, расположение блоков. Если видите красивый сайт — это все благодаря дизайнеру и программисту, который работал с CSS.

Основы алгоритма A* для гейм-девелоперов

А* — алгоритм поиска кратчайшего пути из точки А в точку Б. Например, разработчики игр используют его для перемещения персонажей. В этом интерактиве можно научиться его основам на примере игры-лабиринта: читайте инструкции и выполняйте несложные задания. Бонус: русский перевод интерактива есть на Хабре.

В разработке игр много математики: векторы, интегралы и алгоритмы заставляют героев выполнять команды игрока и двигаться. А* или «Поиск А*» — это алгоритм для решения задач из теории графов (объектов, связанных между собой линиями). Кстати, он полезен не только в гейм-девелопменте, но и при разработке нейросетей: связи между нейронами тоже можно описать графами.

Тригонометрия для программистов

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

C# («си шарп») — это язык для программирования игр, похожий на C++ и JavaScript. На нем программируют в популярной у гейм-девелоперов среде Unity — например, так сделаны игры Hearthstone, Fallout и Pokemon Go. Все эти игры нельзя было создать без знаний тригонометрии: синусами и косинусами описываются движения карт в Hearthstone и монстров в Pokemon Go.

Предсказание «случайных» нажатий клавиш

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

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

Решение моральных дилемм для ИИ

Тест «Машина морали» от MIT поможет разобраться с моральными дилеммами, с которыми сталкиваются разработчики искусственного интеллекта. В тесте нужно выбрать решения для 13 вариантов «дилеммы вагонетки»: кого должен сбить на дороге ИИ внутри беспилотного автомобиля. Результаты теста помогут понять, как бы вы запрограммировали ИИ, а исследователи используют ваши ответы для развития беспилотных машин.

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

Игра-квест SQL Murder Mystery поможет выучить SQL-запросы к базам данных. Все что вам известно: 15 января 2018 года в городе SQL-сити произошло убийство. Все остальное нужно выяснить, отправляя несложные запросы к базе данных о подозреваемых. Если сначала ничего не получится, можно решить задачу вместе с пошаговым прохождением.

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

Симулятор нейросети

В этом интерактиве можно «покрутить» свою нейросеть и ничего не сломать. Выберите датасет для обучения слева (наборы оранжевых и синих точек) и изменяйте основные параметры нейросети: свойства, слои и скорость обучения. Справа получите результат обучения: нейросеть научится определять точки и отмечать их фоном соответствующего цвета.

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

Запоминайте hex-коды, убивая пришельцев

Игра Hex Invaders поможет разобраться с hex-кодами, которыми программируют цвета. Убивайте цветных пришельцев: отмечайте тех, чьи цвета соответствуют заданному hex-коду сверху. Помните, что каждые две цифры в коде соответствуют RGB: так освоить их в игре будет проще.

В программировании есть несколько способов закодировать цвета. Самый известный — RGB, где три числа сообщают компьютеру о наличии красного, зеленого и синего компонента, на которые можно разложить любой цвет. Hex-коды похожи на RGB, но используют шестнадцатеричные числа: после знака # пишут по две цифры на каждый компонент. Например, hex-код черного цвета — #000000, а белого — #FFFFFF.

6 полезных математических функций для Python

В этой интерактивной статье можно научиться шести полезным приемам программирования на Python и других языках. Например, можно выбирать случайные цвета по выборке из золотого сечения, смешивать их, а также перемещать предметы с помощью математических функций. Попробуйте работу каждой функции в интерактивных окнах: меняйте значения аргументов и следите за изменениями на экране. Если собрать все приемы вместе, можно написать программу заполнения пространства подвижными цветными шарами на Python — всего за 75 строчек кода.

Python — один из самых популярных языков программирования. Его используют в веб-разработке, дата-сайенсе и даже в разработке игр. Например, на Python писали код для World of Tanks, Civilization IV и Battlefield 2. Python хорошо подходит для новичков: кода для программ на нем нужно писать меньше, чем в других популярных языках.

Узнайте подробности о том, как получить профессию

Блог SkillFactory
Добавить комментарий