Serving the Quantitative Finance Community

 
User avatar
atlantaquant
Topic Author
Posts: 0
Joined: November 3rd, 2006, 5:04 am

what kind of c++ skills do a quant need?

August 23rd, 2007, 12:34 am

I have a Phd degree in applied mathematics and I now work at hedge fund on the west coast (outside SF) as a developer.My question: what kind of c++ skills do a quant need? Does a quant need to handle very large c++ softwares? I know that a quant write c++ code everyday. But does the code usually form some stand alone applications or is it part of a very large system? If a quant write develop large softares, what is the difference between him/her and a quant developer.Also, on average, how many hours does a quant program in c++ (or VBA), how many hours does he/she program in matlab (or mathematica, sas, etc)? how many hours does he/she read financial literature and do his/her analytic calculation?Thanks
 
User avatar
DominicConnor
Posts: 41
Joined: July 14th, 2002, 3:00 am

what kind of c++ skills do a quant need?

August 23rd, 2007, 6:25 am

The average figure is about 60%, but the distribution covers 0 to 100 of course.The difference between a Q and a QD is very hard to define formally, but the pay varies a lotYou ought to learn C++ to include STL, and Boost up to smart pointers. For interview purposes (and the more backward banks), you need malloc et al.Exception safety is a big thing at interviews these days, but sadly many banks do squalid tests of pointer arithmetic.One difference between a Q and a QD is that a Q will be using things like Matlab/Mathematica to explore relationships with data a lot more.
 
User avatar
twofish
Posts: 0
Joined: February 18th, 2005, 6:51 pm

what kind of c++ skills do a quant need?

August 25th, 2007, 2:15 pm

QuoteOriginally posted by: atlantaquantMy question: what kind of c++ skills do a quant need?It depends a lot on the role. Some roles require only programming at the level of "hello world". Others require decades of real world experience. I should note that any experience in commercial programming is useful because commercial programmers at least know about things like version control and the politics of software development.QuoteDoes a quant need to handle very large c++ softwares?Yes but "handle" involves different things. What happens a lot is that the people who are really, really good at C++ write frameworks and classes that allow the people who are really, really good at modelling but less good at C++, figure out a way of interacting with the system. This means that the people who specialize in C++ really need to be good since part of the challenge is writing classes and doing support for people who have very basic C++ knowledge in a way that the system doesn't fall apart. QuoteI know that a quant write c++ code everyday. But does the code usually form some stand alone applications or is it part of a very large system?It's usually part of a large system. That "system" doesn't merely contain code, but it also contains lots of people and processes.QuoteIf a quant write develop large softares, what is the difference between him/her and a quant developer.The difference is fuzzy in one sense, in that the work of an quantitative infrastructure programmer merges with a quant in that the infrastructure programmer has to understand what the quants are using the software for,In another sense the difference is clear since there is often a big difference organizationally between IT and the quant groups. This is important for career planning, because you want to be in the same "box" as the people whose footsteps you want to follow. If you are reading this board, then chances are that you want to avoid the IT groups.QuoteAlso, on average, how many hours does a quant program in c++ (or VBA), how many hours does he/she program in matlab (or mathematica, sas, etc)? how many hours does he/she read financial literature and do his/her analytic calculation?Really varies all over the place. In my case, about 80% of my time is in C++. No real Visual Basic, but a *lot* of interfacing C++ systems to Excel. About 20% of the time, I'm reading mathematical financial literature, and this is mainly to figure what the next strategic goals are for programming. I've never done paid programming in matlab, mathematica, or sas, but interfacing with those systems came in *really* useful. Also studying mathematica has greatly influenced the style of my C++ coding. But different people have very different mixes.
 
User avatar
twofish
Posts: 0
Joined: February 18th, 2005, 6:51 pm

what kind of c++ skills do a quant need?

August 25th, 2007, 2:24 pm

Also if you are an developer, one interview topic that will be useful for you to think about is why C++ programming is so @#$#@$ hard with so many @#$#@$# gotchas, and what can we do about it. A huge amount of C++ programming seems to be working around gotchas.
 
User avatar
dirtydroog
Posts: 0
Joined: July 12th, 2007, 6:32 pm

what kind of c++ skills do a quant need?

August 25th, 2007, 5:07 pm

QuoteOriginally posted by: twofishAlso if you are an developer, one interview topic that will be useful for you to think about is why C++ programming is so @#$#@$ hard with so many @#$#@$# gotchas, and what can we do about it. A huge amount of C++ programming seems to be working around gotchas.Examples?
 
User avatar
Cuchulainn
Posts: 23029
Joined: July 16th, 2004, 7:38 am

what kind of c++ skills do a quant need?

August 25th, 2007, 5:39 pm

QuoteA huge amount of C++ programming seems to be working around gotchas.Why? I don't understand this. I suppose I should ask: define what a gotcha isI second dirtyD: Examples. Maybe this? Steve Dewhurst's GotchasI call it: experience. It takes time to learn the syntax and to know how appropriate it is in a given context. So you are testing real life experience with these kinds of question. It does not say so much about how someone would develop a system but if they advocated deep inheritance and/or MI then you know what is up. Ask them the difference: ISA, A kind Of and Has A relationships (and how to implement then using OOP _and_ Generic Programming)
Last edited by Cuchulainn on August 24th, 2007, 10:00 pm, edited 1 time in total.
 
User avatar
atlantaquant
Topic Author
Posts: 0
Joined: November 3rd, 2006, 5:04 am

what kind of c++ skills do a quant need?

August 26th, 2007, 11:04 pm

Hello, TwoFish"No real Visual Basic, but a *lot* of interfacing C++ systems to Excel"How do you interface with Excel? Using COM?
 
User avatar
Cuchulainn
Posts: 23029
Joined: July 16th, 2004, 7:38 am

what kind of c++ skills do a quant need?

August 27th, 2007, 5:22 am

QuoteHow do you interface with Excel? Using COM? There are three main ways in C++/C- Automation (C++), activate from Tools menu, cannot create worksheet function in COM addin- COM Addin (C++), for worksheet functions only- xll; this is a C API
Last edited by Cuchulainn on August 26th, 2007, 10:00 pm, edited 1 time in total.
 
User avatar
DominicConnor
Posts: 41
Joined: July 14th, 2002, 3:00 am

what kind of c++ skills do a quant need?

August 27th, 2007, 5:36 am

There is also the Real Time Data interface, which is more sophisticated than DDE or Net DDE, was done by real banking techies at Credit Suisse.You can do sockets in VBA, which I did once for a client whose IT was crippled by the decision to hire an IT director based upon his being good at golf.Better to do them in C via a DLL or XLLAnd of course there is Network DDE, which scares weak people.Web services et al will also get data in.
 
User avatar
twofish
Posts: 0
Joined: February 18th, 2005, 6:51 pm

what kind of c++ skills do a quant need?

August 27th, 2007, 10:55 am

QuoteOriginally posted by: dirtydroogExamples?Someone wrote an entire book about them called C++ Gotchas.Just a few off the top of my head. You need to use forward referencing in header files if you have any non-trivial large system. There are rules like if you have a virtual function anywhere, then you have to have a virtual destructor, or that you have to remember that construction happens in a set order which may be different from the order that things are mentioned in the constructor.A lot of things make sense if you think about them. The trouble is that C++ forces you to think about them, and the rules aren't obvious to someone new. Part of the reason for thinking about them has to do with language design. For example, the use of shared pointers, exceptions, and STL containers kills an entire set of very nasty bugs, but in that case, you need to know to use the new syntax instead of the old, and that adds to the learning curve.