Originally Posted by Alaa
Thanks for your great replies.
walterman, I like C# too and I want to start my way in it from now on. Anyone has books to recommend? From beginners books (to fill in the gaps of the fundamental stuff in my head) to advanced ones.
I also want to have a background about Visual Basic, SQL and to be specific oracle. Is this a perfect combination of knowledge in programming?
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).