• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

C++ vs C#

Joined
2/21/10
Messages
50
Points
18
Why do recruiters ever prefer C++ over C#? As I read most of job requirements in this field C++ is being required in the vast majority of these cases. Can I replace C++ by knowing C#? Or it cannot be altered. Actually what I'm asking is if I can send the application to a job requiring C++ when I know C# not C++?


Thanks
 
My 2 cents: No.

To give an answer from my own background:

A C++ developer will learn C# pretty fast.

Let's take one scenario: A C# (or Java) developer who does not know C or how the compiler works (or has forgotten) will have a challenge moving to C++. It's a completely different world.

I think C++ and C# are both great. Here is a blog on C++ versus C# from a few years back.

http://www.wilmott.com/blogs/cuchulainn/index.cfm/BK

If they state C++, then it's C++!

hth
 
Second that opinion. C++ is a totally different beast. C# and Java are somewhat similar and let you skate free. C++ gives you enough rope to hang yourself and you will do it quickly if you are not careful.

If a job expects you to know C++ and you send your resume saying you know C#, the employers know you won't be able to convert quickly. However, if they ask for C# and you say you know C++ really well, they will know you will have very little difficulty learning C# and be productive real fast.
 
As a recruiter I look for C++ for several reasons:

0: Employers ask for C++ more than C#, and a lot more than Java.

1: It is evidence that you're smart. C++ is harder than C#

2: It is evidence that you've had a better education, people who do weaker courses do weaker languages, on average.

3: It shows you are a member of the set of people who do things to computers, more than someone who computers do things to. As Daniel rightly says, C++ allows you to hurt yourself badly which is good if you aren't broken by it.

4: C++ is the code they have most of their important work in.

5: C++ is a richer framework in which to express your ideas in code. Fully understand C++ and you understand very nearly everything in Java, C# , VBA et al.

Some employers will accept C# rather than C++, in fact some C# employers ask for C++ when they actually want C#, because on average C++ programmers are so much better clued up. I've even had that for Python developers.






2:
 
C# and Java are somewhat similar and let you skate free. C++ gives you enough rope to hang yourself and you will do it quickly if you are not careful.

Though one should add that you can hang yourself in C# as well by using unsafe code. Generally, though, you are right: the managed code of Java and C# means you skate free.
 
I don't strongly agree with the statement that "You should first learn C++ and then C#, since C++ is more complex and you will have a quick way while learning C# after".

C++ is more complex

Well, Thats true C++ is much more complex and if you understand the programming constructs of C++ thats very good and it'll definitely help you in learning all C-based languages (and not only those). But the fact is that in C# everything is simple-made. Many C++ techniques which could be verbose to construct are already made in C#(including libraries added). So when learning C# first and then going to C++ makes you see the need of what you have already learned there while reading or applying C++ code. Backward moving is not justified in general but still, in programming it can also be beneficial in some sense although I'm not fully sure.
 
When moving from C# to C++ you quickly realise what you still have to learn..Example: the use of 'const' in C++.

C# prepares you for the easy things. The others must be learned from scratch.

Of course, knowing C# without having learned C++ is much better than not knowing C#.

It is generally agreed that developer productivity in C# == 4 * C++.
 
Back
Top