Games have a wide appeal to users all over the world.
The best way to learn game programming is to actually write a game. I recommend that for every article on programming you happen to read, you write some sort of code to test what you have learned. Actually writing code will teach you much more than reading ever will. DirectX. No longer, do we need to figure out the video card, write drivers for 20 different sound cards, etc. It's all their for us.