I would actually recommend to start with the basics of the basics. Not only will you have no idea what a big game is doing, you also won't know why, or how.

What is the basics? Don't bother with any big libraries (including stl), and just use plain data such as simple structs, arrays, and pointers for everything. You won't have any memory problems if you don't allocate memory for every stupid little thing that shouldn't even of been allocated in the first place. KISS: Keep it simple stupid. Make a simple game, like breakout or asteroids. Once you understand what you are doing then you can do more complicated things and learn design patterns. I can honestly tell you that I've never once ever, ever used a BTree (ie., map),or Doubly-Linked List, in game programming. They are mostly useless. Just take a simple graphics API like SDL or allegro, and make something, anything, using only basic c++. Don't use templates.