It was back in the day on the old TI-99/4A that I programmed my last video game. I learned skills that are still useful today by doing that, mostly the BASIC programming language, which I use to program the Picaxe programmable microcontrollers. It also taught me how to think about programming in general, as well as helping me think through problems. Good stuff.
Recently I started using MIT's Scratch program to make video games, and let me tell you, it's awesome. I have introduced my eight year old son to it, and through it he's learning about the coordinate system, and/or decisions, velocity, variables, nesting mathematical functions, and so much more, all on top of learning to program a computer. He loves it, and that's good, because they made the software just for kids.
Imagine writing a computer program by dragging commands into your script area, and the commands are shaped like puzzle pieces so that they only fit where they belong, and you've got scratch. It's awesome, and I suggest you check it out right now. I was able to write my first program in 15 minutes.