|Like I said, I'd love to be able to program at least simple 2D games. So what do I do?|
My advice: start programming simple 2D games.
I never believed in the whole "master the console before you try anything else" BS philosophy. If you have a passion for games, then working on games will motivate you more and you'll learn more quickly. So just do it now.
As long as you understand your limits and don't bite off more than you can chew, it's a great way to learn (and actually it is how I learned).
The key is to break things into smaller steps to understand the concepts. That is... don't try to make a full game right away.. but rather start with some basic components of a game. Your first few projects should be something like this:
1) Create a blank graphical window
2) Draw some kind of stationary graphic to that window
3) Use the keyboard so the user can move the graphic around
4) Add another graphic that moves around on its own over time
5) Do something when those graphics intersect/overlap
Those 5 steps account for most (maybe 90%) of what a simple game (like some kind of basic vertical shooter or maybe even asteroids clone) entails. You can piece together the rest of what you need as you go. Just understand that your first few game attempts will be sloppy, inefficient, and not very good. But even just making the attempt and practicing with real-life scenarios that actually interest you will teach you 100x more than reading a stuffy book or doing mundane console tasks you don't care about.
So yeah. Get a graphic lib. Fire it up... and start practicing. I highly recommend SFML. It's fast and about as easy as a lib of its type can be. Plus it has some basic tutorials on its site: