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 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, so you'll have to do the memory management yourself), 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: email@example.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.)