You are not going to be able to dive in and start coding without some background knowledge.
If you plan on developing games on mobile devices (like I do), then your graphical options are limited to OpenGL (for nice looking 2D or 3D) or the native methods used for drawing to the screen.
I recommend you choose the latter first to learn the basics before going farther.
On the other hand, if you are looking to learn how to develop for consoles/PC/Mac, you have many, many more options!
What it all comes down to is:
1. What do already know?
2. What do you need to learn?
Here are the ABSOLUTE basic things you need to learn/know:
1. Handling multiple threads. This is imperative. Most games (even basic ones) have a UI thread and a plethora of other threads that process input from the player, ai, physics, etc, and updates the UI thread.
2. You must understand graphics to some extent. At the bare minimum, you need to understand how encoding, resolution, alpha-blending and other different graphical properties work and relate to each other.
3. You need to be comfortable with a programming language of some kind. If you are going Mobile, then you are looking at Java or Objective-C. If you are going the realm of Consoles, you are looking at C++. As for PC's, mostly anything goes.
4. Most importantly, come up with an idea for a game that meets the scope of your abilities. The last thing you want to do is get discouraged by trying to make a full-blown Real Time Strategy game and finding out that you can hardly make a pixel move on the screen.
There are a lot more things I could have mentioned, but these are some of that absolute basics.
Pick up a book, read it, and then pick up another book.
Eventually things will start clicking and you will start seeing patterns. When that happens, start writing down what you have learned about game mechanics on a high-level, and you will be able to re-use that methodology on any project you work on.