I think it's very hard to learn from a single source. What I did was to learn the basics from somewhere, then relearn them from somewhere else and again and again until I was confident I understood it all, then just start coding whatever and research or ask when I got stuck.
In my opinion, you should start with Python. It's much easier than C++ and will give you a good programming base. The
official tutorial is excellent to begin with; once you're done with that, try taking a look at
Dive Into Python and
Beginning Game Development with Python and Pygame.
When you get bored of Python,
cplusplus.com and
Cprogramming.com are good starting points for C++. For game-making, I'm using Allegro, the basics of which I learned from
C++ Game Programming and some of
Stephen's games. From there on you can just use the official
Allegro manual for reference, it is great. The examples that come with Allegro are also useful.
Good luck! Hope you stick around and show us some of the games you're going to make.
DISCLAIMER: I can't really program for shit and am talking out of my ass (kind of).