It depends on what you're interested in. If it's creating a engine from scratch then C++ and OpenGL or DirectX but if you just want to start programming games from day 1, I recommend getting the free version of Unity3D.
Even if you're not interested in creating an engine from scratch for a production game, I recommend you spend a few weeks learning OpenGL (modern OpenGL--not the fixed-function pipeline). Unity3D is great for some stuff, but understanding the core of what you're doing is valuable.
Haha...that's the hard part. I wish I had a good source for this, but, honestly? I learned through the guidance of a good friend (ex-nVidia). I wouldn't have gotten there without it, but at this point I can reason about (parts of) OpenGL as it "should" be reasoned about. Not all of it by any means--there is a lot of deep magic there--but I have the foundation to understand what other engines and tools are doing.