“Where to start” is a great question - and there have been some great answers which I wholeheartedly agree with. Especially about starting small! I know the temptation is to go all-in with all guns blazing but that'll lead to nowhere but frustration. I strongly recommend that you really understand how something like Space Invaders or any other 2D arcade game with sprites works. Then you will understand how thousands of games work!
I reckon C with K&R is great and well worth the read (and re-read). OpenGL is written is C, SDL is written in C, GLSL is "C like", we have C++, C#, Objective-C ... You can do C++ without first learning C but I'm glad I did C first. At least I understand what has no become some sort of secret - memory is not infinite and must be managed. The memory fairies won't be able to sprinkle fairy dust and make all the problems go way.
Chances of going astray with C are pretty low. You could then get SDL which is an OpenGL library and learn the examples it comes with like fireworks.c - then modify and build from there.
Or you could start with Lua - a C like language which is used a fair bit in the gaming industry. If C++ is king then Lua might be a prince? There are many engines like Corona Labs which run Lua. The App Store must have thousands upon thousands of games built with it. You can find many small game examples to get you started.
C++ ? Hmm, I fear you might get distracted and roam around the wilderness a few years! It is a big language used in so many different ways in so many different arenas - it does not all translate well to game programming! Often the opposite of what you need!.
I am not rubbishing the "GOF" Pattern Book, it has some deep insights and knowledge. But evidently too deep for most people:
It says "favor object composition over class inheritance" (page 20), but what does the world do? The exact opposite! Deep and wide hierachies everywhere. This is only completely different, 180 degree, PI over 2, boolean negation operator, opposite! Went left - should've gone right. WOW.
And then there's STL, Boost, Templates, Multiple Inheritance and whatever else. Again these are not without merit (STL and Boost saved C++ IMHO) but for gaming they can all be a big problem - falling into a pit or three is almost assured.
Anyway I reckon finish C with K&R and either get SDL and examples which run with SDL. Or go to LUA. Either way learn what a game loop is ... Once you understand games and have built a few small ones then you might go to C++ - at least then you will be anchored on what is necessary for gaming.