Update от 10 Сент 2015 г: Более свежие посты на эту тему: #1, #2 и #3.
Интересный способ учиться программированию вообще или какому-то языку программирования в частности - играть в игры для программистов, в которых обычно от игрока требуется запрограммировать поведение робота, космического зонда, живого существа или еще чего-нибудь в этом роде так, чтобы победить другие алгоритмы.
Список таких игр с кратким обзором можно найти на хабрахабре.
Самые известные:
Это все open source по большей части, так что если надоест играть, то можно и в самих проектах поучаствовать.
Интересный способ учиться программированию вообще или какому-то языку программирования в частности - играть в игры для программистов, в которых обычно от игрока требуется запрограммировать поведение робота, космического зонда, живого существа или еще чего-нибудь в этом роде так, чтобы победить другие алгоритмы.
Список таких игр с кратким обзором можно найти на хабрахабре.
Самые известные:
- Robocode - соревнования между танками-роботами, алгоритм нужно писать на Java (пытаются написать C# клон игры - http://www.pureai.com/TankAI/).
- Google AI Challenge - создание программы по контролю над колонией муравьев, сражающихся с колониями муравьев других игроков. Программу можно писать на куче реальных языков программирования.
- GalaxyFx:Старатели - космические зонды должны собирать ресурсы. Игра сделана в Sun Microsystem, писать нужно на JavaFX Script. Можно участвовать в соревновании и выиграть призы от компании - главный приз ноутбук.
- Terrarium - создать живое существо и победить в борьбе за существование. Писать надо на C# (.Net 2.0)
- Breve - моделирование децентрализованных систем и искуственной жизни. Написано на Python, алроритмы нужно писать на нём же или на собственном языке.
- HabraWars - сражение роботов, писать надо на JavaScript.
- web-worker-wars - еще одно сражение ботов написанных на JavaScript.
Это все open source по большей части, так что если надоест играть, то можно и в самих проектах поучаствовать.
Есть куча подобных игр, использующих свои собственные языки программирования. С точки зрения обучения программированию это несколько более запутанный способ, чем писать на реальном языке, но в принципе тоже полезно. В конце концов когда я в ВУЗе учился, за 5 лет нас заставили попробовать писать примерно на 10 языках программирования, включая всякую экзотику, реально я из всего этого только C/C++ и Perl сейчас использую.
- A.I. Wars - программирование роботов-жуков
- Colobot, Ceebot - роботы, осваивающие другую планету. Язык программирования Cbot - смесь C#, C++ и Java.
- DarwinBots - программирование колонии микробов
- Infon Battle Arena - программирование жучков на языке Lua.
Полный (наверное) список подобных игр можно увидеть на DMOZ.
P.S. Еще одна возможность что-то запрограммировать в игре, которая приходит мне в голову - программирование скриптов в R3: Reunion. Это большая игра, посвященная космосу и разработчики оставили для всех желающих возможность перепрограммировать всевозможные скрипты в ней, подробнее можно ознакомиться тут - Космическое программирование.
P.S. Еще одна возможность что-то запрограммировать в игре, которая приходит мне в голову - программирование скриптов в R3: Reunion. Это большая игра, посвященная космосу и разработчики оставили для всех желающих возможность перепрограммировать всевозможные скрипты в ней, подробнее можно ознакомиться тут - Космическое программирование.