Как вырастить айтишника
Как недавно признался Цукерберг, «я никогда не стал бы программистом, если бы не играл ребёнком в компьютерные игры». Не станем утверждать, что путь к успеху в IT лежит через геймерство. Но всё же без тесного знакомства с самыми разными программами и гаджетами программисту не обойтись. И в наши дни знакомство это начинается с достаточно раннего детства. Информационные технологии уже давно проникли в нашу жизнь. Современные программисты, в детстве игравшие на приставках и компьютерах, зачастую сталкивались с непониманием родителей, в чьей молодости не было подобных вещей. Зато теперь эти самые программеры сами обзавелись детьми и гораздо лучше понимают их увлечения. Зачастую даже становятся этакими наставниками по хайтек-развлечениями, обучая детей премудростям комбо-ударов, постройки юнитов и частой отправки врагов на респаун. Как волки обучают волчат азам охоты. И нам стало любопытно, во что же программисты сегодня могут поиграть со своими детьми? И не просто поиграть, а с пользой для молодого ума.
Это любопытный продукт, разработанный не где-нибудь, а в MIT Media Lab. Scratch представляет собой визуальный язык программирования для детей от 6 лет. Отличный способ развлечь ребёнка и одновременно научить его мыслить «как программер». Сейчас на сайте зарегистрировано уже более 6,7 млн человек, загрузивших 9,6 млн проектов, от анимаций до простеньких игр. Здесь вообще большую роль играет социальная составляющая. Все проекты выкладываются под лицензией Creative Commons, подразумевающей возможность использования чужого «кода». Короче, визуальный Github для самых маленьких. Язык доступен в версиях под Windows, Linux и Mac.
Интересный проект, разработанный в Институте Карнеги Меллона, предназначенный для школьников и студентов. Выстраивая в трёхмерном пространстве цепочки взаимодействия между разными предметами, молодые люди учатся объектному событийно-управляемому программированию. В демо-ролике можно посмотреть интерфейс Alice, примеры взаимодействий и получающегося программного кода. Подход сам по себе достаточно развлекательный, но можно внести дополнительный элемент игры: с помощью встроенного языка программирования воссоздавать какие-то сценки из жизни, с фотографий и картин.
Ozobot — это маленький робот, смахивающий на футуристический шлем космонавта, который движется по нарисованным траекториям. При этом его можно запрограммировать на разное поведение в зависимости от цвета линии, по которой он движется. Отличный способ поиграть «в роботов» и преподать ребёнку концепцию программирования. Можно играть с Ozobot на экране планшета, для этого есть специальные приложения под Android и iOS.
Детский робо-хайтек. MindStorms — это продвинутый конструктор, с помощью которого можно создавать весьма сложных программируемых, дистанционно-управляемых роботов. Ещё не факт, кому это больше понравится — отцу или сыну. Клиентские приложения доступны в версиях для Windows и Mac. В комплекте идёт управляющий модуль, являющийся «сердцем» робота, три вида датчиков, два вида моторов и россыпь конструкционных деталей.
Это коллекция из 27 обучающих мобильных приложений, выполненных в оригинальной стилистике. Не стоит ожидать от них глубокого проникновения в материал. Эти игры не столько обучают чему-то, сколько знакомят малышей с разными профессиями. Ну, не одному же программированию учиться ребёнку программиста. Среди прочих игр, есть там и аркада, посвящённая роботам.
Если ваш отпрыск без ума от MMORPG, то направить его на путь истинный можно с помощью Code Combat (13+). Эта игра мимикрирует под ролевуху, но все действия выполняются только после ввода команд на одном из выбранных для обучения языков программирования. Отличный способ оставить в голове сорванца побольше полезной информации, обернув её в привычную игровую форму.
Кстати, там даже есть кланы со своими лидерами.
Это настольная игра для всей семьи. Несмотря на то, что упор тут делается именно на развлечение, ребёнок всё же знакомится с такой штукой, как булева логика. А без неё в программировании никуда. Через эту игру можно привить дитяте мысль, что учиться программированию можно весело и интересно.
Милая браузерная игрушка (Lightbot Jr. для 4–8 лет и Lightbot — 9+), доступная и в мобильных вариантах, которая позволяет дать ребёнку азы алгоритмирования. Цель игры — довести робота до синей платформы и «подсветить» её. Для этого нужно составить и выполнить программу движения, со всем поворотами, прыжками и прочими действиями. На более поздних уровнях игра становится вовсе не так примитивна, здесь вводится понятия процедур и циклов.
В этой игре есть и экшен, и головоломки. Изюминка в том, что здесь нужно «хакать» объекты и персонажей, «перепрограммируя» их свойства, поведение, меняя правила самой игры.
P.S. Не обращайте внимание на специфичность трейлера.
В игре объединена аркада с псевдопрограммированием «на лету». Ваша задача — провести через препятствия странных роботообразных существ. Они могут прыгать и отскакивать от объектов, во время полёта вы можете остановить время и ввести команду, создающую какой-нибудь объект, чтобы помочь своему питомцу попасть в нужное место.
Отличная игра для iPad, в которой нужно задать программу движений грузового захвата, чтобы составить ящики в нужном порядке. Помогает развивать у ребёнка навыки планирования и алгоритмирования, как раз то, что нужно каждому программисту. К сожалению, версии для Android нет, но наверняка там есть другие, не менее достойные игры подобного рода. Если знаете — поделитесь информацией.
В общем, игр и развлечений для детей, которые познакомят их с информационными технологиями, можно найти немало. Причём для всех возрастов. Старшим можно уже в качестве «игрушек» предложить Raspberry Pi, Arduino, BeagleBone и прочие подобные микрокомпьютеры. А во что вы играете со своими детьми?