Discover your dream Career
For Recruiters
Yes, you probably do need to learn C++.

"C++ is the differentiator between good and very good developers"

Should you both learning C++? As we've noted here before, some of the highest paying jobs in hedge funds require C++ and yet hedge fund are also increasingly sucking up Python programmers as their reliance on data grows. Why bother with the more difficult language when Python might suffice?

This depends partly on what you want to do. Most high speed trading systems are built using C++ (with some low latency Java). If you want to work on these systems, you'll probably need to code in C++ and should learn it. But if you're happy cleaning and ingesting data and implementing machine learning algorithms, or are working on systems where low latency isn't a priority, Python may suffice.

There's another reason to learn C++ though.  And it's not about the practical application of the code. It's about signalling. C++ is not an easy language to learn or to use. As Paul Bilokon, former head of Deutsche Bank's e-trading quants wrote here three years ago, C++ is "the toughest programming language, fit only for the smartest people." Other languages are for dummies by comparison.

Given the well-documented functional issues with C++ (there's no garbage collector), this has led some to suggest that C++'s failings mean it survives only because it appeals to the ego of developers rather than to any innate superiority. As Bilokon - a C++ fan - points out: "You think you are debugging a Monte Carlo engine or PDE solver, whereas in actual fact you are spending most of your time debugging memory access."

From a signalling perspective, however, this doesn't matter. If only the smartest coders are proficient in C++, then you'll need to know the language to be considered a member of this elite group. At Baruch College, which runs one of the world's top Masters in Financial Engineering courses, the ability to code in C++ is a precursor to admission for this very reason. "Everyone knows Python," says course director Dan Stefanica. "- Even if a firm only needs Python programmers, having someone who is good at C++ is valuable. C++ is the differentiator between people who are good at programming and very good at programming."

Baruch students get jobs at hedge funds like Cubist, Millennium, Schonfeld and Squarepoint, and Stefanica says it's the hedge funds themselves that keep prompting him to retain C++ as a condition for admission to the course. 

 "We're constantly considering whether we should require people to know C++, but every time we think maybe we shouldn't require it, we get an email from an employer telling us how it important it is that our candidates know the language," Stefanica tells us. C++ ability is the key differentiator, he reiterates: "We want our students to have access to the best jobs in the industry." 

Rather than swerving C++, it may therefore be worthwhile to devote time to learning it. And, it's a time-hungry language to learn well. Stefanica says 70% of the Baruch Masters is taught in Python and just 30% is C++, but they also require C++ knowledge upfront because, "If you don't know it ahead of time, we won't have time to teach it to you."

Got a tip or a story idea? Contact: sbutcher@efinancialcareers.com in the first instance. Whatsapp/Signal/Telegram also available (Telegram: @SarahButcher)

Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)

Photo by 卡晨 on Unsplash

author-card-avatar
AUTHORSarah Butcher Global Editor
  • da
    darius
    25 February 2022

    JVM performs almost like pure C++.
    The difference is not worth having to deal with extra overhead.

    As for memory problems, I thought smart pointers have solved the problems.

  • Jo
    Jon Griebel
    25 February 2022

    "Should you both learning C++?"

    Spelling and proof reading are what make a sweaty teenager a student of journalism.

  • Ia
    Ian Joyner
    24 February 2022

    ""the toughest programming language, fit only for the smartest people." Other languages are for dummies by comparison."

    And that is exactly the attitude I addressed in my article at: https://www.efinancialcaree...

    C++ is programming at a primitive level, perpetuating things that should not be in a modern language. I'll quote Alan Kay, yet again, since he sums it up very well.

    “This is the most pernicious thing about C++ and Java in that they think they’re helping the programmer by looking as much like the old thing as possible but in fact they’re hurting the programmer terribly by making it difficult for the programmer to understand what is really powerful about this new metaphor.”

    https://www.quora.com/Is-c+...

    C++ is not for superior programmers, they just think they are. But really they are those who don't understand the subtlety of programming, who often think abstraction is nonsense, that that programmers need to deal with irrelevant issues.

    https://cacm.acm.org/magazi...

    “Computer science pioneer Alan Perlis defined low-level languages this way:
    "A programming language is low level when its programs require attention to the irrelevant.”
    “While, yes, this definition applies to C, it does not capture what people desire in a low-level language.”

    C++ just perpetuates the problems of C, and has spent many decades trying to fix that up. And yet, it is still 'pernicious'.

    "Given the well-documented functional issues with C++ (there's no garbage collector), this has led some to suggest that C++'s failings mean it survives only because it appeals to the ego of developers rather than to any innate superiority."

    Lack of garbage collection is hardly the problem. In fact, one would not expect systems languages to have GC. It is my article, which was not really about ego (that was more the way EFC cast it). However, there is truth in that, since many C++ programmers think that because they have to some extent mastered C++ (which even Stroustrup says he hasn't), they must be superior to others.

    Like C people they look down on other languages with advanced software theory built in as being 'training wheels for beginners'. That is a nonsense, and does not even start to understand what software development really should be.

    But like any cult, C and C++ appeal to the ego at one level or another, rather than being able to focus on what the real issues in programming are, and to have a mature discussion of those issues.

    What new programmers should learn is the foundations and principles of programming. Those are not in C++. All you learn with C++ is C++ and how to sidestep the issues of the past that should not be there in the first place.

  • Wi
    Will Prieto Fdz
    21 February 2022

    yeah i agred with that, but not in the way of "c++ its better than x languaje", (because lets be honest you cant remember all c++ sintaxsis), but in the way of how c++ works, you get forced to learn to write functions, poo, lambdas etc and that makes you get "programmer mind", after practice c++ basically you can learn any languaje more fast

  • te
    tetsuoii
    20 February 2022

    Real programmers use C, it's really the only language that matters. C++ programmers tend to get lost in modern constructs, syntax and methology that create more problems than they solve, doesn't perform and just looks plain wierd. Python is a toy language. C links better, performs better, looks better and ages better than all other languages so there's really no contest. As for new contenders... they have a lot to prove. To this day there is nothing that is even close to displacing C as the de facto standard.

Show more

Apply for jobs

Find thousands of jobs in financial services and technology by signing up to eFinancialCareers today.

Boost your career

Find thousands of job opportunities by signing up to eFinancialCareers today.
Recommended Jobs
US Execution Trader
Tavira Financial Limited
London, United Kingdom
Idex Consulting
Interest Rate Derivative (IRD) Trader - Director
Idex Consulting
Dubai, United Arab Emirates
Fourier Ltd
Junior Quantitative Researcher
Fourier Ltd
London, United Kingdom
Berkeley Croft
Institutional Sales - Global Equities
Berkeley Croft
London, United Kingdom