Which to learn C++ or C#
Posted 03 January 2009 - 05:08 PM
I was wondering if it would be better to learn C++ to C#, I already know C++ is better its just i dont want to learn it to find out i've just learnt a dead language then find C# take over as the industry standard, so need helps guys any input you got
Posted 03 January 2009 - 05:51 PM
Posted 03 January 2009 - 06:00 PM
If I were you I'd ask myself what I want to later, because the fields in informatics to some extent dictate the language. Here is a *rough* breakdown..
C#: Mostly windows applications. Some XBox and PC game-dev as well.
C++. Jack of all trades language. You'll find applications, system and embedded programming, scientific stuff. De-facto standard for game-dev.
C: Language of choice for embedded and DSP stuff. If you want to go into automotive, avionic or medical world this is the language of choice.
But keep in mind, that the language you use is just a language to express your software-designs. It's much more important to learn and train your problem solving skills. These btw are language-agnostic. Knowing how to approach a problem is what makes up a good prgrammer, not knowing your language of choice inside out.
This skill can't be tought. You need years of practice to develop it.
Btw - The industry expects that you're able to pick up a new language fast.
If a project needs for example C and Java skills, and you're familiar with C only you get a month at most to get into Java well enough to be productive. (this does of course not include in-depth knowledge of the libraries, but in practice you need only a small part per project anyway).
My stuff: torus.untergrund.net <-- some diy electronic stuff and more.
Posted 03 January 2009 - 11:21 PM
If you're serious about getting into the game industry, learn C++ and DirectX. Learning OpenGL is nice too, but no where near as popular as DX. Learning C# after that will be a breeze. You'll probably need to spend a week to a month learning and getting use to the syntax. After that, it's all downhill riding.
If you're interested in getting into the software industry (ie: everything else), then C# will be more attractive on your resume. Java is another popular one, especially if you're into writing server-side code. There's only a handful of companies that even care about C++ developers where I live and their job offers are quite pitiful.
Posted 04 January 2009 - 02:27 AM
OTOH, a quality developer knows 2-3 languages to an average degree for every one he is above average in. If you know just C++, it's like a woodworker with just a hammer...
Posted 06 January 2009 - 03:29 PM
I'd say, do your self a favor, and start with the harder of the two first, c++. My first exposure to code was VB .Net v1.1... and these were the dark days of .Net to begin with. Regardless of the evils of 1.1, which is thankfully behind us, this was a poor place to start. VB is syntactically different from... everything. The transition to c# has been, frankly, an actively reproducing female k9... nevermind how difficult it's been trying to pick up on and really grasp c++.
Now it's all about familiarizing myself with books like code complete and the pragmatic programmer. Programming theory, over syntax specific language studies.
Posted 06 January 2009 - 05:03 PM
I'll go against the grain and say that if you pick C# (or Python before that) as your first language, you'll be better able to focus on learning the art of programming versus the joys of syntactic masturbation. C++'s breadth and versatility is usually a boon to all but newbies who get overwhelmed...
Posted 07 January 2009 - 11:58 PM
Posted 08 January 2009 - 09:18 AM
Posted 08 January 2009 - 12:53 PM
At least, that's how I saw it...
Posted 08 January 2009 - 03:18 PM
You get the speed of C++, and the UI tools from .NET
Posted 09 January 2009 - 05:14 PM
Kenneth Gorking said:
Posted 09 January 2009 - 05:50 PM
Nils Pipenbrinck said:
I agree with the above statement. Although it is nice to know a language inside out, that is not the most important aspect of programming.
A good programmer does not count on any specific language.
Just as a side note, after 10 years of C++, and having to recently learn C# for my daily work (where I program wireless systems), I'm quite satisfied, because it is relatively fast, stable and comfortable to code for.
EDIT: C# is comfortable for games programming as well.
Posted 09 January 2009 - 07:17 PM
C++/CLI is theoretically but negligibly faster. They both get compiled down to the same JIT code running on the same VM, after all. As for C++ (non-CLI) vs. C#, it's "speed advantages" are realized only in specific cases, involving benefits like the benefits of virtual method calls, which can lead to better inlining. Not sure how many special cases there are, or how often they are found within the general field of game development.
In practice, the best optimizer is the programmer, the second best is the compiler, last is the language itself. But, that's just preaching to the choir, I'm sure.
I would also agree with avoiding C++/CLI in game development. In fact, even if you don't want to do it now, it's probably good practice to know and implement the easier practices in cross-platform development in compliant C++.
Posted 11 January 2009 - 04:13 PM
I guess I should clarify my statement. I didn't mean people should code their performance critical stuff in C++/CLI, but rather use it for tools development. I will be much easier to piece an editor together using .Net tools, than dicking around with MFC or even the horrible Win32 API.
It also has the added advantage, that you can use already existing libraries off the bat.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users