Do you want to learn programming so you can make games or is learning programming itself the goal?
If it's the former, just jump into Game Maker, Construct and ( another similar tool with a visual programming interface, the name escapes me though ). No point in making engines when the game design and creation is what interests you, you'll be able to pick up some programming as you go.
If it's the later, you can stay with C++ and SDL or learn Python and Pygame or C# and Unity. C++ isn't the horrible beast it's made out to be, but do try out the alternatives and stick to what you like.
Processing might be of interest to you. Download and install the environment, open one of the included tutorials and start tweaking. You can literally have stuff up on the screen within a minute of launching it. It lets you to output graphics easily, and that's important for getting a good sense of what you are generating at a given moment.
To emphasise what other people have at least hinted at, I think it's important you have goal/project in-mind when you start-out, because just "learning programming" is a daunting task (I've been doing it for 32 years and I'm not there yet).
As Victory says, if procedural generation/graphics and stuff like that are your interest, Processing is much worth a look - if you have other interests, there are other tools equally suited to other things.
If you want to make games, for example, a dedicated games creator will take you through that too (The GameMaker package new to Steam is probably the ideal starting point).
I'd say you have to want more than just 'learn programming' tho - because that's a bit like saying "learn foreign languages", there's a lot of them, they're very different, there are many different levels of knowledge (casual conversation, reading, writing, giving a lecture, writing a book on their Irregular Verbs(*) and so on).
(*) this could even result in you becoming the President of a South American country - but we're WAY off-topic now... ;)
As others have mentioned, starting out with C++ is a bad idea. C++ is like industrial machinery, it's huge and chock full of moving parts required to do the simplest thing, yet these moving parts will only make sense if you've worked a few years in the industry. To put it another way, don't be surprised if you have to write 60 lines of code to get a "Hello World" app in directx.
Regarding tutorials, with the vast array of blogs dealing with actionscript and flex development, googling will do just fine.
FlashDevelop is an open source IDE (dev tool) which can get you up and running relatively quickly: