I first took a class in C++ in 9th grade (I'm a soph in college now), but everyone in my class was retarded so we went really slow and I hardly learned anything about object orientation. I learned C *really* well working as a coder on a MUD. I kinda went into it having decent coding skills but never really having applied them before (I picked up a book on C called C Primer Plus by Stephen Prata - great book for C), and by figuring stuff out in the MUD server code as I went, I learned a lot about good programming practices and everything you could ever want to know about pointers (very important and difficult concept). That was in 11th/12th grade...so I guess at that point I had a great knowledge of C and didn't know shit about object-oriented programming. Then I started college.
My school teaches their programming classes in Java, so in my first quarter of taking comp sci classes I started picking up the concepts of object-oriented programming, which I'd always thought were worthless when I was coding in C but turned out to be way cool and helpful once I started understanding them. I picked up a book on C# last summer to see what all the hype was - if you're interested in programming web pages then C# + ASP.NET rocks, but if you want to make games then I don't think it's about to become a standard anytime soon. Anyway, now that I knew Java and C#, I decided to go back and pick up all the C++ stuff that my retarded 9th grade class never got around to learning, and it was pretty easy because C++ is the same object-oriented concepts that Java and C# have, just using a different syntax. However, I don't recommend learning C++ after Java or C#, because getting used to a pointer-less language and then trying to learn C++ will fuck you up hardcore. I still make stupid mistakes with pointers in C++ programs because Java made me stupid by not making me worry about them. Anyway, I still suck at making Xbox programs, but I'm working on picking up DirectX and the Intro to 3D Graphics Programming class I'm taking at school starting in three weeks will probably really help that. So, all this is my experience, and what I recommend based on that is:
Learn C++, get a solid understanding of a.) pointers and b.) object-oriented concepts like classes, inheritance, polymorphism, etc. With that knowledge, picking up Java or C# would be hella easy - then, as long as you have solid math knowledge, you can start taking on 3D graphics programming, which is the step I'm currently on.