Оффтоп Christina Kretsu
17 759

Семь игр, которые научат программировать

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

В закладки

Grasshopper (2018 год)

Сервис разработали выпускники бизнес-инкубатора Area 120 от Google. Разработчики подготовили базовые уроки программирования на JavaScript. В основе лежат головоломки и мини-игры, которые необходимо решить с помощью программного кода. Чтобы начать ими пользоваться, необходимо скачать его из Google Play или App Store.

Приложение включает курс, рассказывающий о функциях вызова, массивах, условных выражениях, переменных, строках, циклах, операторах и о том, как это всё вместе работает. После изучения основ приложение переносит пользователя в раздел, где он учится рисовать фигуры, используя JavaScript-библиотеку для обработки и визуализации данных D3.

Каждый раздел начинается с введения, за которым следуют инструкции и пример. В конце головоломки пользователь помещает код. И после запуска система анализирует и подтверждает его правильность.

while True: learn() (2018 год)

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

{ "items": [{"title":"","image":{"type":"image","data":{"uuid":"57f3ed88-634e-0797-4824-f85080faeeee","width":1920,"height":1080,"size":345996,"type":"png","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"9edbe2fc-f10a-124f-4442-63adaa9a2d12","width":1920,"height":1080,"size":461559,"type":"png","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"486aeda8-3372-695b-c610-419388364ae0","width":1920,"height":1080,"size":400346,"type":"png","color":"","external_service":[]}}}] }

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

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

Надеемся, что скоро порадуем игроков возможностями для построения систем беспилотных машин, свёрточными сетями, обучением с подкреплением и многим другим.

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

Олег Чумаков
генеральный директор Luden.io, создатель while True: learn()

Prime Mover (2017 год)

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

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

CryptoZombies (2017 год)

Игроки приложения учатся создавать смарт-контракты на базе Ethereum на языке Solidity. Каждый урок фокусируется на тонкостях языка и навыках, которые нужны блокчейн-разработчику. Пользователям не обязательно владеть знаниями о Solidity, но приветствуется базовое понимание программирования и технологии блокчейн.

{ "items": [{"title":"","image":{"type":"image","data":{"uuid":"e176eaa6-2b38-4b97-c88c-8c2093e56537","width":1680,"height":929,"size":56617,"type":"png","color":"","external_service":[]}}},{"title":"","image":{"type":"image","data":{"uuid":"e542869c-fdc4-c450-29df-823053a0b79e","width":804,"height":454,"size":49923,"type":"png","color":"","external_service":[]}}}] }

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

Каждый зомби обладает случайным ДНК и уникальным внешним видом. Новые уроки открывают дополнительные возможности. Например, зомби смогут сражаться с чужими героями. Цель игры — победить армию зомби.

Algotica Iterations (2017 год)

Игра-приключение помогает учить программирование и алгоритмы, чтобы разрушить «четвёртую стену». Задача пользователи — провести главного героя Лони от начального до конечного уровня, используя формальные правила и логику игрового мира.

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

Flexbox froggy (2016 год)

Технология Flexbox позволяет размещать элементы в контейнере CSS в соответствии с разными размерами экрана. Онлайн-игра Flexbox Froggy знакомит пользователя с обработкой в режиме макета. Цель игры — переместить лягушек, отображаемых в правой части экрана, на соответствующие лист лилии.

Пользователь управляет лягушками с помощью CSS-кода. Так как игра рассчитана на новичков, то игроку показываются советы, чтобы он не только дошёл до следующего уровня, но и узнал подробнее о работе Flexbox.

Swift Playgrounds (2016 год)

Apple называет Swift Playgrounds «революционным приложением для iPad, которое помогает учить Swift интерактивно и весело». По мнению компании, оно не требует знаний программирования, поэтому подходит для начинающих.

Приложение даёт основные уроки и задачи по программированию в графическом интерфейсе. Для начала игры пользователь выбирает одного из трёх персонажей. И затем управляет им в интерактивном 3D-мире, который можно вращать пальцами.

Apple постоянно добавляет новые задачи. Чтобы создавать собственные программы, в приложение добавлены шаблоны для использования технологий iPad, например, MultiTouch, акселерометр и гироскоп. Можно добавлять собственные музыку и изображения.

В 2018 году компания анонсировала задания по созданию AR-приложений. Например, пользователи учатся программировать анимированного персонажа, чтобы он перемещался по 3D-миру как часть игры с помощью камеры на iPad.

С помощью кода, написанного в приложении, пользователь может управлять роботами и другими подключенными устройствами, например, Lego Mindstorms EV3.

Как игры помогают научиться программировать

Игры о программировании часто учат согласно концепции «если написать команды, то компьютер выполнит их последовательно». Мы в while True: learn() рассказываем, что программирование — это ещё и про преобразование данных из формата А в формат Б. Кроме того, нашим игрокам понравилась концепция «точности» при анализе данных и «переиспользования» своих же наработок.

Со временем мы хотели бы прийти к решению проблемы приёма на работу молодых специалистов. Работодатель хочет брать сотрудников с опытом и пониманием контекста своего бизнеса. Чаще всего он платит за наличие этого контекста либо высокой зарплатой, либо временем, за которое сотрудник осваивается.

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

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

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

Различные курсы, в том числе геймифицированные, чаще страдают от низкого числа пользователей, завершивших курс, и обучения высокого порога входа. Курсы бросают более 95% обучающихся. Благодаря сильным сторонам игровых продуктов — умению создать плавный вход и удержать игрока— образовательные игры выглядят многообещающе.

Кроме того, продукты должны выигрывать конкуренцию за внимание пользователя, то есть быть настолько интересными, чтобы он не включал вместо игры видео на YouTube. А игры, как известно, могут похвастаться способностью привлекать и удерживать внимание.

Олег Чумаков
генеральный директор Luden.io

#игры

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Christina Kretsu", "author_type": "self", "tags": ["\u0438\u0433\u0440\u044b"], "comments": 12, "likes": 58, "favorites": 179, "is_advertisement": false, "subsite_label": "flood", "id": 37745, "is_wide": false }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15388' + '59599') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 37745, "author_id": 101172, "diff_limit": 1000, "urls": {"diff":"\/comments\/37745\/get","add":"\/comments\/37745\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/37745"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

12 комментариев 12 комм.

Популярные

По порядку

Написать комментарий...
0

Игра — огонь. Но, скорее всего, научит только писать "лапшу" из различных вариаций go-to.

Ответить
0

Люблю эту игру :) С нетерпением жду их новый проект https://store.steampowered.com/app/792100/7_Billion_Humans/

Ответить
3

Полтора года веду занятия в Swift Playgrounds, важно уточнить.

Голый Swift Playgrounds — это среда разработки для iPad. При наличии клавиатуры может поспорить с Playground в Xcode.

А вот то, о чём идёт речь в конце статьи — это плейграунды под Swift Playgrounds, 3 курса по программированию, написанные Apple, под названием Learn to Code 1 & 2 и 3.

Код этих плейграундов открыт, можно посмотреть, как они сделаны «изнутри».

Помимо них, существуют сотни плейграундов, их можно найти на GitHub и запустить внутри Swift Playgrounds без App Store. И, конечно, написать свои.

Ответить
1

Поставил, поигрался, снёс. Игра для детей, а не пособие по программированию. Смог начать изучение реального программирования, только купив iMac и загрузив Xcode. Без этого баловство одно.

Ответить
1

Курс на iPad не в противовес Mac — он дополняет для тех, кто совсем не понимает, что такое программирование.

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

Прошёл все три части Learn to Code на iPad, сейчас заканчивает App Development with Swift на Mac. Учебные приложения делает уже, надеюсь, дойдёт до своих.

Ответить
1

майнкрафт забыли
при особом подходе майн превращается реально в плейграунд кодерский
https://habr.com/post/272391/

Ответить
0

Тогда и Roblox туда же. Где одни дети делают игры для других.

Ответить
1

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

Демка беплатная.
https://store.steampowered.com/app/427520/Factorio/?l=russian

Ответить
0

CodinGame еще бы отметил. Потрясная штука
https://my-gamezone.ru/igry-dlja-programmistov/codingame-igrat-onlajn/

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Хакеры смогли обойти двухфакторную
авторизацию с помощью уговоров
Подписаться на push-уведомления