Another thing I always wanted to do was game programming. Moving objects and interacting with the game, as well as having fun with them, gives great satisfaction.
I think the fun part is that you have immediate feedback of what is happening, it's just not like filling an edit text and pressing a button (or server side programming).
Given that I am spending much of my spare time in (trying to) learning mobile development, I tried to merge the two things, and I came across to andengine framework.
Andengine is an opensource framework for android game development, and it comes with a lot of nice features like physics and automatic scaling. I started developing my first game in January, and it's a simple peg solitaire. It's almost done but it still need to have some gui polishment (I mean I still need to have all the assets done :-) ), in any case it was a nice start. If anybody is interested, the sources are available under apache license on my github repo, which is http://github.com/fedepaol
Andengine is quite powerful, but it's main weakness is its lack of documentation. However, if you are brave enough you can look at the sources, and there is a nice forum where the author and other people give a lot of support.
One thing I still need to learn very fast, is how to perform unit tests in a game development environment, I already found a couple of links but still need to read them.
Once I feel comfortable with TDD on games, the next step (but I am moving very slow) will be to try to implement some kind of multiplayer game (or at least a one vs one game) using all the appengine stuff I learned during my experiments.
I will be posting again when I officially release the peg solitaire game.