It depends what you want to do. If you just want to start making basic 2D games, then you would want to learn C++ and Allegro. http://www.cppgameprogramming.com/cgi/nav.cgi?page=index
(Double click anywhere on the site to bring up a menu).
Start with the C++ tutorials and make some demo programs, then move on to using allegro to make games.
If you want to make more advanced games with C++, you will have to use DirectX or OpenGL, or one of the many game engines. However, this is entirely different from allegro and is a steep learning curve.
If you want to make fairly advanced 2D games, you should use Python with PyGame. PyGame is like allegro, but it also contains functionality for music and sounds, video etc.
If you want to progress further than that with PyGame, you can start using PyOpenGL (the python binding for OpenGL). This works through PyGame, so you are building on your existing knowledge. PyOpenGL is a fair bit easier than C++ with OpenGL, though it isn't as well documented and there are less tutorials.
It depends which way you want to go:
C++ and Allegro
Python and PyGame
My advice is to watch a tutorial for Allegro, then one for OpenGL (C++), then one for PyGame, then one for PyOpenGL.
MS has put out a lot of tutorials on how to do the basics for both 2D and 3D games using that framework. As much as I love C++ and I'd rather develop in that than any language, I can't say enough about the ease with getting stuff up and running with XNA.
If you want to easily make an awesome game, then go onto www.yoyogames.com and download Game Maker 8.0 Lite Edition. This free game creation package has a simple drag-and-drop system, so you can create your own game using no code at all! It also has the ability to use code in GML (game maker language).
Did I mention that this was FREE! [If you wish to purchase the pro edition, then do so and you will be able to create multi-player, online, and even 3D games!]