You're going to need to get a grounding in general coding stuff first of all. Forget about C and C++, these days they're for the people who want to make the game engines rather than the games.
C# in combination with Unity3D is worth aiming at. But I think if you start there you're just going to learn Unity rather than coding.
I'd very strongly recommend starting with Lua and using
Love2D which is a really nice cross-platform, hardware accelerated game engine. Lua's a lovely language which will give you a solid grounding in a lot of coding principles. And Love2d's good enough that you can actually make proper
games in it - it's not simply a learner's tool. It has very good documentation in its wiki and it's all very self-contained. Easy to distribute stuff you make, too.
And when you're comfortable with the way a game flows as a program you can decide where to go next. Or you could stick with Love, there's no downside really unless you want to do something 3d.
I'd avoid Python/Pygame. It gets recommended a lot for beginners but it's comparatively disjointed/disorganised, has fucking awful documentation and distributing stuff is a pain. And Python's a bit
too weird/idiosyncratic compared to other languages so less of what you learn will be transferable.