Even as an experienced programmer it is not as easy as just to start programming a game. So the question would be where to actually begin with the learning, programming, design stuff.
As far as I am concerned i like to start by reading. Reading about the topic what did others do, how did others start. This includes tutorials and recommendations and also read some code from small simple games solved by others. Learning through assimilation could be used here.
Good sites to look out for posts are the gamedev subreddit. Where some articles give good hints on where to start as well as the side bar, which states some basic links like Amit’s Game Programming Information which gives a great comprehension on the different tasks of a game and also gives and FAQ on where to begin.
Another good source for beginners like me is gamedev.net, especially an article I found there about beginning game development depicts a scenario which I liked much. The article tells the new game developer that it is not important which language to use or which library. It tells the reader to actually start programming and try to improve himself with feedback from other developers. The article states some different game to start on and an overview of mechanisms which are learned from these games. But it does not tell the user where to get the desired code reviews from. For most parts forums provide this service or something similar.
In my opinion the way to begin is to actually read a little more about different topics, continued by learning some basic programming principles, e.g. input handling, player handling, npc handling. With the help of those basic principles, which have been applied in different games, e.g. the ones stated in the article above, entering challenges or something similar where the whole game as well as the code is reviewed and you get different types of opinions, for code as well as for the game idea as such.
Beside the opinion and critics you are able to enter only those challenges with the topics you like, which boosts your fun and your endurance because you want to finish the game as well as getting good scores.