I've heard (and read somewhere) that there are certain games out there such as ancient Japanese game GO which help to improve the programming skills. We know chess helps a lot in improving our mental power. Besides chess, do you play any games as an exercise to improve your programming skills?
Lots of strategy games fill that niche in my book, as do some card games (involving strategy, but a different kind):
- Pinochle
- Checkers
- Backgammon
- Poker
- Risk
- Settlers of Catan
And two computer games that pop to mind:
- Civilization
- Age of Empires
Code Golf.
Not exactly a game in the traditional sense, but trying to do something in less lines, using all available language features and syntactic sugar, being creative is fun and education at the same time.
The Oreilly book, Mind Performance Hacks, cover sall kinda of mental activities: learning musical instruments, foreign languages, yoga and martial arts, memory /visualization tricks. Brain-calming and productivity music, etc
http://oreilly.com/catalog/9780596101534/index.html
also this one by Andy Hunt (Pragmatic programmer
http://pragprog.com/titles/ahptl/pragmatic-thinking-and-learning
http://www.sharpbrains.com/ provides a good overview over computer games that are designed to improve mental functioning. http://www.lumosity.com/ would be one website that provides good brain games that are scientifically designed to improve your mental functioning.
In general you games have to be challenging to help you improve your mind. You only learn something as long as the game gives you feedback that helps you to improve.
Check out Dual N-Back. It adjusts difficulty to keep your working memory at a constant level of challenge. There's also someone who maintains a list of puzzle games to mix things up a little. What seems to be important is for the task or game to provide challenge without being overwhelming.
Logic problems, Sudoku, Bridge(both playing and reading newspaper columns about it), and solitaire for examples of non-computer games.
There are also various brain teasers that I enjoy to help keep my brain sharp in some respects as well.
I don't know about improving your programming skills, but sometimes occupying myself with a mindless puzzle (like a Soma cube) helps me work through a given programming or design problem. I just make sure to have a pencil and paper handy.
Not that useful for experienced programmers (fun though), but I've recommended CeeBot to people who want to learn programming, and are mathematically inclined and/or visual learners. It teaches a handful of procedural and object-oriented programming skills by hand-holding users through simple programming challenges.
The problem is that it was always buggy as hell, wouldn't run on half my computers, and cost more money than I'm willing to spend on edutainment. But when it worked, it was great fun.
While this isn't technically a game, I have found that it can help you to be "quick on your feet" when analyzing a given programming problem:
You can fire up the competition "Arena" and practice or actually compete. I found it be a fun "game" when I wasn't in the mood to play a real "game" but still wanted to flex my brain a bit.
Personally, I like Monopoly.
Monopoly tracks a lot of separate bits of information and passes them around from person to person. Some of it on the board, some in the players hands, some of it globally. Some of it rather complicated, like when a property can/should be built on.
One of my favorite mental exercises is implementing and re-implementing various parts of the game in data structures, one of my favorites being an implementation of the gameboard, player pieces, properties, properties owned, and houses and hotels built with a single list and Godel numbering.
Good luck!
Go is great, Chess also great... and then there is the best of all... Make your own MMORPG :)
I've made dozens... they never get far, but man it's fun! Seriously, you'll never program anything more intense or demanding in the real world than your own MMO. And I've several times learned skills and technologies from doing it.
I'm getting myself excited to make another one... I better stop thinking about it so that I can acutally do some real work :(
Currently poker and iphone games are very famous in gaming world.
While traveling, in school, or my be when it's too bored at home, almost all of us have played a mobile game at least once in lifetime. May be not the 100% of mobile phone subscribers are the mobile gamers, but the percentage is nowhere less than 90%.
Thanks Jay
I wouldn't say it improves your programming skills, but I find that Fantastic Contraption is a game a lot of engineer-type people enjoy.
There was a game called MindRover a while back as well that was about building robots that would navigate courses or battle with one another, if I recall correctly. It was a lot like programming, unfortunately the site seems to be down.
Have you heard of Herbert? I was used by Microsoft's imagine cup for Algorithms round. It's a LOGO style robot, which understands three commands. Move Straight One Step - "S", turn 90 degrees clock wise "R", and turn 90 degrees counter clock wise "L". You were presented with a pattern which contains a pattern or a maze make of white dots and obstacles. You've to direct your robot in such a way that it is able to cover all the white dots in the maze in least amount of code. You get scores based on number of bytes you used in your code. Check out http://wildnoodles.com/index2.asp, though it's not officially supported now still you can find a work around and make it run on your machine. It's addictive!!!
For a fun, fast-paced game with (some) programming components and (lots of) defensive coding, I play RoboRally.
I think that all intelligent games help you improve your mental skills, and therefore make you a better programmer (and person).
I would like to signal the board game Carcassonne, which also has an online version.
Go. Really hard game, requires a ton of strategy and logic, You need to think many moves ahead of Your oponnent, and every play matters, a single error can easily cost You the game.
Correction, GO is originally a Chinese game invented long before Japan existed as a country.