TL;DR version: Considering the programming end alone, if you're looking to build a serious operation pumping out sleek 3D games with physics, AI and fancy graphics tricks, C++ is unparalleled. If you're a hobbyist (like me) and just want to dabble into the wonderful world of game programming and design, C++ is fantastic but will take you a while to get a good grasp on, while Python is much friendlier and has a phenomenal 2D library (PyGame) which will get you programming games in no time.
That being said.
Pick one! I'm also an aspiring game developer, and I've picked programming in C++.
Upsides:
--Extremely powerful, extremely quick.
--Everybody on the Internet knows all about it and can help you ever step of the way
--It has several open-source libraries to make things easier. I'm using OGRE for graphics, and writing my own open-source physics engine (Indigo Frost).
--Powerful, free tools for debugging, design, and testing.
Downsides:
--Pain to learn, especially without formal classes and whatnot. Not too much of a problem, you can find free programming classes online easily. Just be warned: you will spend a good many hours learning general C++ before you can even touch game programming.
--While I have complete control over everything and my software runs FAST, I also have to worry about everything my software does, and often spend time on things I shouldn't have to worry about as a programmer.
That being said, I'm going to make a pull for Python here.
Upsides:
--It is a language built for the programmer to be happy. Programming in Python is SO easy and quick.
--Python is also very well documented, because it is seriously the holy grail of programming.
--PyGame is a fantastic 2D game programming library, taking care of the ugly stuff for you.
Downside (right - just one):
--Python runs between 10-400 times slower than c++. For 3D game programming, this means no complex physics, AI, or bells and whistles.
Java also has its qualities, and so does Visual Basic.