Originally Posted by rhink
C#, VB, even Java will have less of a learning curve than C++. As far as what's a "perfect combination", it depends on what you want to do, I guess. I'd be happy going the rest of my life without touching VB again, but to each his own. I don't think I'd be happy with most of your typical web/database programming jobs out there, so there's things I tend to de-emphasize the importance of.
HOWEVER, I agree with vin about just starting with C++ (though if you already know a little of something else, I could certainly understand that biasing your decision). The main difference in learning curve is memory management, and learning pointers. Understanding how pointers/referencing works is going to make your life easier in darn near any language, including the ones referenced above (though you can get away without it in most garbage collected languages, it still helps). The main difference is, going from C++ to Java or a .NET language is pretty simple- going the other way, not so much, because you'll be clueless when it comes to memory management and pointers if you go that route.
I learned C++ out of "C++ How to program" by Deitel and Deitel... adequate... nothing spectacular... /shrug. Of course the C++ Bible is "The C++ Programming Language" by Stroustrup, but it's more of a reference volume than a textbook. Though if you have a little bit of programming experience under your belt, that may suffice.
I learned Java out of "Java in a nutshell". Still more of a reference book.... though again, once you have an object oriented language under your belt, it's not that hard to move between 'em with a little bit of sample code to get you started.
I do think you should pick a language and master it. Once you've done that's relatively easy to pick up another language from a few code samples and online references, esp one with a similar paradigm (ie, once you pick up the basic concepts and syntax of any OOP language, it's pretty friggin simple to start coding in a different one pretty quickly).
Thanks for your reply. I started learning Java in my university then I took a small course about C++ and YES I was clueless when it came to pointers!
But things went well later.
Anyway, in Java I could create GUI and I learned about OOP:Inheritance-Encapsulation-Exceptions I don't know if there were other stuff but I don't think they were deep enough to make me fully everything. So, I want to make a clean start to make up for everything I missed. btw, what language is mostly used in modern games?
Also don't forget to enlighten me with your "perfect combination".