If you're more of an UNIX/Linux kinda guy, then go the Java way, and use the Slick2D library. It should enable you to skip DirectX/OpenGL by providing a thin wrapper around it. (Note that it's only for 2D games)
Personally I prefer Java, but that is because I don't aim to work with AAA engines like UDK and Unity. But if that's what you want then head C++.
Not that it will matter much anyway if your want to work with AAA engines, as most offer script language to modify the engine rather than the C++ code itself. Unless you pay up $$$ or work at a company which has a license for the engine, or you go the open source way like Lordikon.
As for the road you want to take, here are somethings which I think are milestones you need to achieve.
1)Learn programming basics:
-Arrays and links
2)Learn Object-Oriented programming. This is where the fun will begin, as at this point you will be able to start experimenting. Learn things like polymorphism, inheritance, classes, objects, etc...
3)Find a programming language, library and IDE that best suit your needs. (For me it's Java, Slick 2D and Eclipse)
4)Design your game. This is very important, as it will save you a lot of trouble later on.
6)Test game with friends and enjoy
Step 1 will probably be the hardest. Once you got the wheel running, Object Oriented programming will be a breeze.Edited by __Pat__ - 6/12/11 at 11:27am