“Python is like a toy programming language compared to C++”
Antony Peacock knows a thing or two about using C++ in finance. A senior C++ developer at Maven Securities, he is a member of the C++ standards committee and has worked on trading technology since 2008. Prior to joining Maven, Peacock was a quantitative developer at the hedge fund Citadel. And before joining Citadel, he was a quantitative analyst at Barclays and Citi. He has been coding in C++ for more than two decades.
“You can become a pretty good C++ programmer in a short time, but becoming an expert takes a very, very long time,” says Peacock. “There are lots of mistakes you can make in the language and hundreds of rules you need to remember. It’s very, very complicated, and you learn through years of pitfalls and mistakes and by fixing bugs and other people’s code.”
Start learning C++ young
Peacock learned C++ while still in college, where he majored in video game coding. “My thesis was like 100,000 lines of C++ code,” he says. “It may not have been very good C++, and there are huge amounts that I still don’t know, but I’ve spent hours and hours practicing the skill – I still find that many of the best C++ developers are self-taught.”
The problem today is that too few universities teach students how to code in C++, says Peacock. While some, like Baruch, still teach the language as a way to differentiate their students, many have moved on to teaching much easier languages like Python.
Python versus C++
Python is great for prototyping, but not so much for building commercial systems, says Peacock. “It’s almost like toy language,” he says, before quickly correcting himself for fear of upsetting the Python developers. “- Python is a serious language, but it’s a tool that has its place. You can use it to build rapid prototypes, but it’s not a language that has the level of robustness you’d want if you’re trading billions of dollars.”
Unlike Python, C++ has a static compiler that forces you to fix your mistakes as you go. In comparison, Python is a dynamically typed language, which only reveals whether the code will work correctly when you actually try to run it. For this reason, Peacock says Python can be a frustrating language to work with: “Python is very liberating – it allows you to express thoughts very quickly and concisely without having to worry too much about how you express the language, but there are a lot of people in finance who spend a lot of time debugging existing Python code.”
There’s also “a lot of bad C++” in finance, says Peacock, but the language is of a different order than Python. “It’s like a giant puzzle,” he says. “It’s the language of expert users – you can do things with a great level of control, but it takes a lot more effort.”
This complexity, combined with the frequent release of standards and new features (the latest being C++20) is what makes C++ difficult to truly master. The more you learn about the language, the less you realize you really know, says Peacock: “Bjarne Stroustop [the man credit with inventing C++, who works for Morgan Stanley] is pretty happy to stand up at conferences and say he scores 7/10 as a C++ developer,” he observes.
Should you learn C++ instead of Python?
It’s mes it’s worth learning C++. With the supply of university students proficient in C++ dwindling, Peacock says the financial industry is scrambling for an ever-shrinking pool of developers in the language.
Some companies choose to grab the nettle and train people themselves. At Maven Securities, Peacock plans to hire about 10 graduate recruits in September (up from two last year) and train them in C++20. It also hires experienced developers who want to work on Maven’s state-of-the-art systems. “Companies need to be more responsive to the C++ talent shortage and do more to teach people the skills,” he says.
Later this month, Peacock is hosting a free C++ training webinar for those interested in algorithmic trading jobs with renowned C++ trainer Rainer Grimm and Richard Hickling, the former trading floor technologist who left to create a cryptanalytic company last year. He also put together a list of C++ conferences and user group meetings to attend on the Maven blog.
It is possible to learn C++, points out Peacock – but it takes effort and patience. “We can teach you, but you also need your own motivation and mentors to guide you through the process. There are some really great resources online these days, and most lectures are re-streamed on YouTube.”
Click here to create an eFinancialCareers profile. Make yourself visible to recruiters recruiting for tech and finance jobs.
Have a confidential story, tip or comment you’d like to share? Contact: [email protected]com first. WhatsApp/Signal/Telegram also available (Telegram: @SarahButcher)
Be patient if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans may be asleep or away from their desks, so your comment may take a while to appear. Eventually, it will – unless it’s offensive or defamatory (in which case it won’t.)
Photo by Huy Hung Trinh on Unsplash