views:

2810

answers:

30

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?

+13  A: 

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
warren
btw - I play very few non-strategic games, does anyone have good suggestions?
warren
I don't think you really need anything after Civilization.
MusiGenesis
in my mind, it really comes down to what needs to be done (Y) to get to X? I love civ's tech tree for that
warren
My favorite activity is borrowing lots of money from my neighbors and then utterly destroying them. Good family fun.
MusiGenesis
+6  A: 

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.

Tomalak
Just don't do it with collaborative code that your colleagues have to try to debug! ;)
Ian Hickman
+15  A: 

Lemmings

The Incredible Machine

MusiGenesis
+1 for TIM (love it!)
Paolo Tedesco
+21  A: 
Federico Ramponi
Upvote for mention of Project Euler - math-oriented, but great puzzles in there!
Jazza
+6  A: 

Sudoku; keeps your logic skills sharp.

GalacticCowboy
If you solve sudoku using trial and error, I'd prefer not to ever see/use any of your code... ;)
GalacticCowboy
Sudoku causes my brain cells to commit suicide from the utter boredom it generates.Whatever happened to those grid games that involved language-based clues and so on? Those were actually interesting...
Peter Boughton
Sudoku bored the crap out of me for awhile. Every time I did one I thought to myself "I could write a program to do this". So, I wrote a Sudoku solving program in C#. Once I verified that it could solve the most evil puzzles, I put it away and haven't done one since.
wcm
Sudoku is like solving a rubik's cube. It's a job that computers were made to do.
Greg D
How can a computer solve a rubik's cube without hands?
MusiGenesis
In some way like this: http://www.youtube.com/watch?v=jkft2qaKv_o :)
Davide Gualano
I prefer KenKen - more variety.
finnw
@wcm: I experienced exactly the same as you did: Solving Sudokus until a program did the job for me. My implementation was in Excel/VBA though ;-)
CL23
+8  A: 

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

Gene T
+8  A: 

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.

Christian
+2  A: 

C-robots.

http://en.wikipedia.org/wiki/Crobots

mliesen
+11  A: 

How about when the game is programming: Core War?

Dave Sherohman
Beat me to it. :-)
Jason Baker
Just love it :) Lets get on the hill sometime, Jason.
Mohit Nanda
+3  A: 

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.

yacdmnky
A: 

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.

JB King
A: 

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.

Bruce McGee
+1  A: 

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.

Jeremy Frey
+4  A: 

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:

TopCoder

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.

Alarion
+8  A: 

Magic: The Gathering

http://www.wizards.com

BoltBait
seriously, there's a stack, instancing, recursion, interfaces and a garbage collector in mtg. mtg is oo :)
annakata
plus, it teaches you about optimization, research, object interaction, and critical thinking. So, I say that the only "lame" one here is Timothy. :P
BoltBait
Amazing game. I used to played it seriously, when i was younger!
George
Shameless plug and totally not programming related - if you're reading this, odds are you like StackOverflow and Magic. If so, head over to http://draw3cards.com/
ripper234
A: 

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!

J.T. Hurley
+1  A: 

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 :(

Timothy Khouri
A: 

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

+1  A: 

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.

Dan Olson
+1  A: 

Sokoban, for developing problem-solving skills.

Pac-Man, for developing productivity skills under pressure.

mouviciel
+12  A: 

Robocode

Arkain
TankAI and DroidBattles are similar
dogbane
+1  A: 

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!!!

Anirudh Goel
+1  A: 

For a fun, fast-paced game with (some) programming components and (lots of) defensive coding, I play RoboRally.

Vatine
+1  A: 

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.

Paolo Tedesco
Second this. Same with Catan and similar games; they require some critical thinking to learn, but are based on economies and a little bit of luck so they don't have the years-and-years learning curve of abstract games like Chess and Go.
Jesse Millikan
@Jesse Millikan: and moreover, in Chess and Go you cannot insult your opponents by accusing them of excessive luck or cheating, which is a major drawback in a game.
Paolo Tedesco
+2  A: 

Let's say games by ChronicLogic !

  1. Pontifex
  2. BridgeIt
  3. Pontifex 2
  4. Gish

And this one - for patience ;):

  1. Ski stunt simulator
Engineering games like these are superb ways to waste a few hours. You never look at a bridge or support structure the same way again...
Lunatik
Totaly agreed :-)
+1  A: 

Active improvement while playing with: AntMe! (.NET Corewars Clone)

Bdiem
+1  A: 

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.

José Joel.
A: 

Correction, GO is originally a Chinese game invented long before Japan existed as a country.

Jon
+1  A: 

Quake. But you've gotta program it first (from scratch).

ldigas