Так и до оффера доиграться можно.
Чтобы освоить азы программирования или новый инструмент, не обязательно штудировать скучные талмуды. Если неправильно выбрать учебник — можно и вовсе разочароваться в IT. Куда веселее учиться по играм. Мы сделали большую подборку для тех, кто любит совмещать приятное с приятным. Здесь 20 игр для матёрых программистов, новичков и детей.
Инди-шедевры для гиков
Human Resource Machine
Скриншот: игра Human Resource Machine / Tomorrow CorporationПодробнее
Игрок управляет клерком, которому начальник даёт задания. Цель каждой миссии — автоматизировать работу клерка на игровом языке программирования. Строите алгоритм, перетаскиваете блоки inbox, copyfrom, jump и наблюдаете за результатом.
Кстати, авторы игры Human Resource Machine — создатели некогда популярной головоломки World of Goo. Изначально её выпустили для Windows, но заняла топы в магазинах приложений она после выхода мобильной версии.
Shenzhen I/O
Скриншот: игра Shenzhen I/O / ZachtronicsПодробнее
Вы — инженер-электронщик в Шэньчжэне, одном из центров китайской хайтек-индустрии. По ходу игры нужно разрабатывать электронные схемы и писать для них код на ассемблере. Можно даже создавать собственные задачи на Lua.
К игре прилагается 50-страничный PDF-мануал, без которого её не пройти. Отличная возможность познакомиться с низкоуровневым программированием — это подтверждают более 2000 крайне положительных отзывов игроков.
«Работаешь программистом, приходишь уставший домой и с мыслью „наконец-то поиграю“ включаешь симулятор программиста :)».
Комментарий пользователя в Steam
Скриншот: игра Shenzhen I/O / Zachtronics
7 Billion Humans
Скриншот: игра 7 Billion Humans / Tomorrow CorporationПодробнее
Продолжение Human Resource Machine. Игроку нужно автоматизировать деятельность толпы офисных работников и решать головоломки. В игре более 60 уровней, где придётся перетаскивать блоки вроде «взятьИз», «дать», «шаг», «если» — причём так, чтобы клерки идеально выполняли поручения босса.
TIS-100
Скриншот: игра TIS-100 / ZachtronicsПодробнее
Задача игрока — переписать повреждённые блоки кода на псевдоассемблере, чтобы починить «интеллектуальную систему». Есть руководство с подробным описанием команд. Игра подойдёт опытным программистам или тем, кто хочет развить логику и грокать алгоритмы.
Exapunks
Скриншот: игра Exapunks / ZachtronicsПодробнее
Ещё одна игра от Zachtronics развивает идеи TIS-100 и Shenzhen I/O. Сюжет такой: на дворе 1997 год. Игрок — хакер, который заболел странным недугом. Он заключил сделку: один взлом — одна доза суперлекарства. Необходимо читать местный журнал Trash world news, который печатает руководства и секретную информацию, писать вирусы, взламывать банки, университеты, правительство и… самого себя. Для тех, кто застрял, разработчики создали руководство по командам.
«Лучшая игра в мире! Если вы любите головоломки для программистов, конечно».
Комментарий пользователя в Steam
Машинное обучение с котиками
while True: learn()
Скриншот: игра while True: learn() / Luden.ioПодробнее
Эта головоломка — симулятор машинного обучения. Вы играете за программиста, который обнаружил, что его кот разбирается в компьютерах лучше него. Правда, котейка не может поделиться знаниями, потому что не говорит. Задача — освоить машинное обучение и написать переводчик с кошачьего на человеческий.
Игровой процесс сводится к переносу данных из левой части экрана в правую. Для этого нужно перетаскивать функциональные блоки, подбирать для них параметры и соединять их между собой. Если что-то не получается, спросите на CatOverflow.
«Это отличная игра для тех, кто хочет узнать больше о машинном обучении и о том, как его можно использовать в повседневной жизни — для работы или просто из любопытства, например чтобы понять, как общаться со своей кошкой!»
Комментарий пользователя в Steam
Осваиваем Git
LearnGitBranching
Скриншот: официальный сайт LearnGitBranchingПодробнее
Минималистичная онлайн-обучалка по основам Git. В начале каждого уровня игроку надо изучить теорию и посмотреть демо, а потом — выполнить практические задания. Например, создать ветку bugFix, переключиться на новую ветку командой git checkout bugFix и сделать один коммит. Команды вводят в игровом терминале.
Осваиваем Vim
Vim Adventures
Скриншот: официальный сайт Vim AdventuresПодробнее
Ты можешь знать сколько угодно языков программирования и видеть Linux насквозь, но какой в этом толк, если ты не умеешь работать в Vim? Игра в стиле ретро для тех, кто хочет стать тру-программистом. Задача игрока простая: нужно передвигать курсор по лабиринту с помощью кнопок, которые используют в Vim.
Учим языки программирования
CodinGame
Скриншот: официальный сайт CodinGameПодробнее
Это целая платформа с набором игр для программистов. Например, в первой игре, которую сайт показывает новичкам, игроку надо защищать планету от инопланетян. Для обороны разработчики предлагают использовать лазерную пушку и один из языков программирования — Python, JavaScript или другие.
В другой игре надо осваивать основы ИИ в многопользовательском режиме и сражаться с другими игроками. Тут есть даже испытание Code Golfing, в котором нужно сократить объём программ. У игрового комьюнити довольно живой форум и канал в Discord. Кстати, рекрутеры нередко ищут здесь сотрудников.
Swift Playgrounds
Скриншот: официальный сайт Swift PlaygroundsПодробнее
Приложение для iPad и Mac от Apple. В нём игроку придётся решать головоломки и учить Swift — главный язык программирования в iOS. Поначалу нужно писать простые методы вроде moveForward() и collectGem(), чтобы персонаж двигался и собирал предметы. От уровня к уровню задания усложняются.
SQL Murder Mystery
Скриншот: официальный сайт SQL Murder MysteryПодробнее
В городке SQL City произошло убийство. Игрок — детектив, которому нужно раскрыть дело с помощью команд SQL. Нужно изучить команды и писать правильные запросы к базе данных. Есть руководство для новичков.
CheckiO
Скриншот: официальный сайт CheckiO
Стратегия для тех, кто хочет изучить TypeScript или Python. Нет времени на раскачку. Никаких Hello, World!. Игрока сразу же погружают в ООП и объясняют основные концепции этой парадигмы. Нужно писать код в браузерном редакторе и строить военные базы, собирать армию и решать головоломки.
The Deadlock Empire
Скриншот: официальный сайт The Deadlock EmpireПодробнее
Задача игрока — использовать уязвимости в многопоточных программах, чтобы заставить их зависнуть или работать некорректно. Геймплей не для новичков, но в игре есть руководство на случай «затыков».
Cube Composer
Скриншот: официальный сайт Cube ComposerПодробнее
Игра для тех, кто давно хотел попробовать функциональное программирование, но боялся. В Cube Composer игроку нужно расставлять функции в правильном порядке, чтобы преобразовать цветные кубики в нужный паттерн.
SQL Noir
Скриншот: официальный сайт SQL NoirПодробнее
В SQL Noir игроку предстоит примерить на себя роль детектива. С помощью запросов к базе данных надо искать улики, анализировать их и решать загадки. В игре есть четыре дела, которые предстоит раскрыть:
- таинственное похищение портфеля с документами;
- кража ценной виниловой пластинки;
- загадочное убийство в Майами;
- убийство влиятельного аристократа Леонарда Пирса в его поместье.
Если у вас получится быстро раскрыть все преступления, можно попробовать себя в роли автора сценариев для других игроков. В репозитории SQL Noir есть подробная инструкция для разработчиков.
Оттачиваем мастерство
Guess This Code
Скриншот: официальный сайт Guess This CodeПодробнее
Викторина, в которой игроку по фрагменту кода нужно узнать язык программирования. За разгаданный фрагмент дают балл. Отлично подходит для проверки своих знаний, расширения кругозора и соревнований с коллегами.
Codebattle
Скриншот: официальный сайт CodebattleПодробнее
Соревнование для опытных кодеров. Правила простые: нужно решить задачу быстрее оппонента. Фишка в том, что игрок видит в реальном времени, как её решает соперник. Поддерживает 15 языков программирования, включая JavaScript и Python.
Программирование для самых маленьких
Scratch
Скриншот: официальный сайт ScratchПодробнее
Scratch — это визуальный язык программирования, который создали в MIT для детей и подростков. А ещё это платформа для создания простеньких приложений и анимаций. Программы «собирают» в drag-and-drop-редакторе из логических блоков, среди которых переменные, условия и циклы. Ученики знакомятся с основными концепциями программирования и создают интерактивные истории, игры и мультфильмы.
CodeCombat
Скриншот: официальный сайт CodeCombatПодробнее
В CodeCombat игроку надо управлять героями с помощью методов вроде heroMoveDown(), heroMoveRight() и сражаться в битвах, достойных Толкиена. Код можно писать с помощью JavaScript, Python, C++, CoffeeScript, и даже языков разметки HTML и CSS. Важно написать не только рабочий, но и чистый код.
У CodeCombat даже есть киберспортивная ИИ-лига, в которой можно потягаться в программировании с реальными соперниками. А ещё, на радость детям, разработчики создали свой мир в Roblox!
Tynker
Скриншот: официальный сайт TynkerПодробнее
В зависимости от уровня сложности нужно перетаскивать блоки или писать код вручную. Можно учиться создавать моды для Minecraft, выращивать монстров, сражаться с гоблинами и летать на Марс. У Tynker есть несколько мобильных приложений, среди которых учебный редактор Minecraft, туториалы по программированию на Java, JavaScript, Python и других языках.
Hour of Code
Скриншот: официальный сайт CodeПодробнее
Портал с огромным количеством коротких курсов по программированию и игр для людей разных возрастов и скиллов. Новички и малыши перетаскивают блоки, а более опытные игроки пишут код вручную. Можно написать игру Flappy Bird, потушить пожар с помощью кода в Minecraft, познакомиться с Python или JavaScript и даже создать целую галактику для «Звёздных войн».
Учиться кодить по играм здорово. Только на собеседовании вряд ли расскажешь, что выучил Java или Python, убивая драконов. За глубокими знаниями и боевым опытом приходите в Skillbox.