One thing here hasn't been mentioned yet: the reason for its existance. C++ was created first for systems programming; thus, it will always be a systems language. C# was created for the web. Both will coexist for many years to come. My personal advice is not to learn C# right away. If you're a good C++/Win32 programmer, you'll be more powerful in your C# training. You'd be more valuable to a team that has a knowledge of C# only. .NET is basically the next Windows API, but it is an overlap "layer" of Win32. How can you be a proficient C# programmer if you haven't grasped the "core" of where the language built from?
From personal experience. I wanted to write a windows program.
c++ route: I go out and buy the bible of windows program. I read page after page of the 1000 page book and after weeks still can't write a simple little windows program.
c# route: read a quick how to and 30 seconds later I had a simple functional windows program.
Since I'm not a full time programmer, c# is quickest way for me to write little programs that work.
Yeah, if you're a hobbyist, C# fits in just fine for beginners. It's meant for abstraction since its a component-oriented language, and it's definitely used by professionals, too. It's like the next Visual Basic craze, but probably undergo another support deprication while C++ still stays strong
To be fair, as I try to be in my posts (never works) but MS has put a lot of work in C# and I wouldn't expect it to deprecate any time soon. Funny that .NET already is, though, due to their new "superset" .NET framework for Vista. I'm not sure how they manage all this backward compatability with all their new project innovations, and making sure C# has forward compatability with it. It's a headache to think about it.
Last edited by dxfoo; 10-11-2005 at 11:18 PM.
Perhaps knowledge of Win32/C++ helps, but most small to medium businesses won't care. Take a company I worked for, Synetech (not sure on spelling), they needed a piece of software for donations. So they hired a pair of .NET developers (VB but still). The product does the job (although the idiots never debugged it apparently cause it kept crashing on us) - no need for interacting with C++.