Discover your dream Career
For Recruiters

Can becoming a C++ expert ruin your engineering career?

If you're applying to one of the top paying software development jobs in finance, chances are they want experience in C++. The sad truth is that most engineers who consider themselves experts in the language won't come close to those positions. Even in low-latency C++, a niche subsection of the language, financial services headhunter Peter Wagner says "there's low-latency and then there's low-latency."

Click here to follow our new WhatsApp channel, and get instant news updates straight to your phone 📱

In a viral post on Hacker News, C++ veterans seem to believe learning C++ has crippled their career prospects. One engineer said they "hate it, and feel like it's a lot of useless knowledge." One with ten years of C++ experience called the language a "bottomless pit." 

Others suggest taking efforts to improve your C++ knowledge can be a significant sunk cost. "Many people who have been writing C++ poorly for decades never learn to do it better," said one, while another said C++ developers "have the smallest range of programming language knowledge" of any language specialist, making it difficult to find work utilizing other languages. 

They'll likely have difficulty finding jobs in C++ too. Despite being the 2nd most popular language on the TIOBE index, it doesn't even come close to the top 10 of our most popular languages in financial services job listings.

Ironically, committing yourself to C++ can also make your future self worse at C++. One engineer said, "I don't find that fluency in any other languages (including C++ from 10 years ago) translates well to fluency with C++." Another said some veteran C++ coders "developed bad habits" based on older version of the language, ill-suited to today. 

One such bad habit is the prioritization of performance over function regardless of goals. One engineer said C++ developers "usually write code which is efficient but hard to understand, even when effectiveness is not a part of the requirements."

Committing yourself to a language with minimal career prospects is all too common in finance. Q engineers using KDB frequently lament the choice to learn it while even at Jane Street, one of the top paying algorithmic trading firms, engineers who learn OCAML find their experience doesn't always transfer well to other jobs. 

Learning C++ just because an elite few job listings pay crazy money is a terrible mistake, but that shouldn't dissuade the truly elite programmers from giving the language a try. Ultimately, in contexts such as high frequency trading, there's nothing that works better than C++ (except maybe Rust, but that's a whole other debate). The question is, are you good enough?

Have a confidential story, tip, or comment you’d like to share? Contact: +44 7537 182250 (SMS, WhatsApp or voicemail). Telegram: @AlexMcMurray. Click here to fill in our anonymous form, or email editortips@efinancialcareers.com. Signal also available.

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.)

author-card-avatar
AUTHORAlex McMurray Reporter
  • qu
    quibble
    24 July 2024

    I use C++ and do it badly for my own satisfaction, for personsl projects, beholden to no one. I don't bother with the arcana of the language and just crank out what works. I wouldn't use it for production systems. I enjoy using C++ and don't tell employers I know it or use it. Fun laid-back coding is good for my mental health.

  • pb
    pbx
    22 July 2024

    I did C and C++ in the uni but nobody gave me the chance of actually prove it to hiring people. I find breaking into the C++ world too hard and people don't take that many chances.


    I can't say I am the ultra knowledgeable about everything there is in C++, but I feel like there is quite a barrier entering this field. Nowadays, I do wonder if it's even worth it.

  • MX
    MXM
    22 July 2024

    C++ is a runtime performance language, usually used for simulations - the most notable type of realtime simulation being computer and console games.


    If you avoid C++, you can never have a career as a significant engineer in this field, in particular -- at best you'll be consigned to writing tools and web services.


    Outside of realtime performance programming, avoiding C++ is fine -- although it's nowhere near as scary as it's detractors suggest. Almost every other language commonly used by computer scientists derived from it.

  • Pa
    Pareto
    20 July 2024

    I did a lot of C++ during my undergraduate degree (including a taught course unit, which was rare in those days and even less common to see today) and then a lot during my PhD. The first two years of work I pretty much exclusively worked with C++. I was using the language for 10 years and I now realize that the time could have been spent better elsewhere. I wouldn't say it was a total waste of time - C++ forces you to learn a lot about how computers work at a low level, and this is useful and transferable experience. However, given the same amount of time, it is absolutly true that I could have learned a much broader range of technologies. This might have been multiple languages, or potentially even a frontend framework, which would have allowed me to market myself as a full stack developer. My point being, if I had a much more diverse technology stack background, then I would be much more employable. Fortunately, I took a role where I worked exclusively with Rust for about a year. From this experience, I realized how long it takes to write C++ code, and on the other hand, how much faster I could have been writing software during the last 10 years if I had been working with a language which would have enabled me to be more productive with less lines of code and less characters typed. When I left the firm where I was last writing C++ code, I was considered to be one of the top developers there, but the firm was not a HFT. I interviewed with quite a few HFTs, but never became enthusiastic about the domain. I got the impression that most HFT work is just performing weird hacks in code to try and make the software run faster. I can't imagine this is a lot of fun. You write a worse code from a design or asthetic point of view, make it highly obfuscated and hard to understand, but the end result is it runs a bit faster? That sounds really, really arduous. I've decided my career went in the wrong direction and since then I've been doing as much as I possibly can to learn a more broad range of technologies, including frontend frameworks, other languages and other technologies such as Kafka. I feel like I wasted too much time doing C++, and became too focused on low level technical details rather than solving business problems quickly. The intricacies of C++ absorb a lot of engineering time and the end result is the time to market becomes very long. I'm glad I realized this early in my career so I can take a different path. Sorry C++ - I used to be obsessed with learning this language but now I realize it was just a distraction.

Sign up to Morning Coffee!

Coffee mug

The essential daily roundup of news and analysis read by everyone from senior bankers and traders to new recruits.

Sign up to Morning Coffee!

Coffee mug

The essential daily roundup of news and analysis read by everyone from senior bankers and traders to new recruits.