My advice is to learn legacy-free OpenGL, which means OpenGL ES2.
Or you can use Lion's new OpenGL 3.2 Core Profile.
This gets rid of all the legacy stuff in OpenGL, no more matrix stack, no more archaics, only roll-your-own shaders with VAO and VBO.
It will mean a little more work for you, as you need to do your own model-view-projection math.
But you will be closer to how the GPU actually works, and it will be the future.
Also it is a lot more flexible, and you will learn a lot more about 3D graphics as all the math falls on the application programmer.
About C++, yes it is pretty much industry standard.
But frankly, it is a pretty ugly language. It is so easy to get your self into deep trouble with it.
Just read Scott Meyer's 'more effective c++' book to get an idea on how easy it is to screw up with C++.
C++ and STL should only be used by experts, as average programmers will cut themselves with it.
You'll be amazed on how many C++ programmers do not know how to delete an element while iterating the container e.g.
Also, I have seen OO gone awry in big commercial game engines. Often OO can harm you.
Noel Lopis has an excellent article on Data Oriented programming and Structures-of-Arrays vs Arrays-of-Structures. His advice: program everything in your game as you would program a particle system (SoA). Data Oriented programming may be less of an issue in smaller code bases for casual games e.g.
Personally, I prefer C or Objective-C. The former is more portable, the latter I would only use if iOS and OSX are your target platforms.