C++ in Quant Finance

Hi All,

I have a general question about C++ in the quant finance world. I like programming in C++ and I am fairly comfartable with the language but by no means an expert.

What is the desired skill level for a quant who majorly works on C++?..what aspects of the lang do you guys mainly work on? for example, is knowledge of multihreading in C++, Design patterns etc also very relevant?

Thanks
 

Daniel Duffy

C++ author, trainer
well.. I have an academic knowledge of C++, I have a bachelors degree in Computer Science..
I work for a tech firm ..but thats mainly using JAVA, J2EE ..JMS webservices etc..


To answer the original question based on your feedback: your current C++ knowledge will not be sufficient for quant dev work in C++.

And maths savvy is probably needed as well.

Multithreading and Design patterns are nice to know but not yet part of core C++ competency.
 
Can somebody spell out just what you need to know C++ wise to get into quant dev? If you learnt the material on this website: http://www.cplusplus.com/doc/tutorial/ for instance, would that be enough?

Their tutorial is nice as it gives a beginner a quick birds-eye view of language capabilities but it's not nearly detailed for the job. If you are a CS major it's all should be familiar to you. No tutorial on STL (as Duffy said). Their Reference section was very useful however they still haven't updated it with a new C++11 standard, and once you start learning STL it's better to start right from the new STL as its syntax is much nicer. Their forum is excellent - a good place to ask questions if you get stuck with something.
 
"C++ is the differentiator between good and very good developers"

"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."
 
Last edited:
I am working as a Strat and we use Java and Python to code Dynamic Index Strategies. I think that’s the case for many banks worldwide. The legacy systems of most banks is in Java as well.
Just wondering why it isn’t covered on Quant Net.
 
Last edited:
I am working as a Strat and we use Java and Python to code Dynamic Index Strategies. I think that’s the case for many banks worldwide. The legacy systems of most banks is in Java as well.
Just wondering why it isn’t covered on Quant Net.
A good C++ developer can easily learn Java, the same cannot be said the other way around.

It's also worth noting that there is actually a resurgence of C++ in many firms. Java and C# were a fad that did not work out as many intended.
 
Last edited:
Yeah, i meant on Quant Net, i found C++ (which i already completed), Python and one more I guess, but not Java. But that said, could you please point me to some really nice course which could help me in my role?
 

Daniel Duffy

C++ author, trainer
I reckon if you know C++ you can learn Java (not including libs) in a few weeks. Java Generics is (was?) awful.
I did Java in the 90s. Didn't like it .. that's just me. Not intellectually stimulating. It is useful for web apps but it won't teach a discipline of programming.

Java started life as applets


Java generics are implemented through type erasure, i.e. type arguments are only used for compilation and linking, but erased for execution. That is, there is no 1:1 correspondence between compile time types and runtime types.

Java is not worse/better than C++. Their strengths are othogonal.
 
Last edited:

Daniel Duffy

C++ author, trainer
Regarding C# perspective., iis is so that many banls use it, e.g. fixed income (See Duffy/German 2013) . It is a poweful language + high productivity levels.
I have been using it siince 2000 (version 1.0) in client trainng and applications for PDE, CAD and holography/optics.
And C++/CLI is compatible with C# .Net.

For me, I find it easy to switch C# <-> C++.


C# grew out of Java. They are siimilar.
 

Attachments

  • MC Application (5).pdf
    953.9 KB · Views: 9
Last edited:
i wish quant never code in C++ :) so i don't hv to debug mem issues for others LMAO

@Daniel Duffy Have you checked Rust? the program won't even compile for mem issues lol. but it is trait orientend. it doesn't support full spectrum of OOP. also. no downcasting~ lol (unless you do Any which is pain in the ass)
 

Daniel Duffy

C++ author, trainer
Rust is not suitable for my applications .. for me it's just another (quiche) language. Not intellectually stimulating.

i wish quant never code in C++ so i don't hv to debug mem issues for others
How did you wrangle yourself into this awful predicament?
Somewrong wrong here.
 
Last edited:
Top