Pretty much agree with the suggestions already given.
As you are already comfortable with programming then I suppose the best advice is to - of course - make simple games to start off with. Here is a suggestion of projects, in ascending order of difficulty...
1) A command-line text game. Like the pioneers of old, see if you can bring a world to life with just your language-of-choice. Remake it with a GUI?
2) Pong! Get to grips with an api such as SDL without putting your back out.
3) Asteroids. Step up to the mark with some basic maths - square roots, SohCahToa and vectors are your friends.
4) Gauntlet. So far you've made do with just code, but now you need a basic level editor.
5) Wolfenstein3D. Pretty much employing the maths of Asteroids with the level design of Gauntlet...with ray casting.
...and for each project give yourself about two to three months.