• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Level of math in a quant job

But I think you downplaying "logical thinking" too far. Deep logical deductions play an important role in pure mathematics, while computing tactics several moves ahead in chess (and not merely recognizing learned tactical patterns) should also be considered "logical thinking"...

Well, I'm going off on a tangent but the topic seems interesting. The first point is why calculating a tree of variations should be considered "logical" in any sense. As a tournament player I calculate such trees as a matter of course but the tree of variations is constructed on the basis of prior patterns in the mind. It's not a logical and conscious process (it would be far too slow if it were). Secondly, even when time for a game is reduced from 2 hours for 40 moves for each player to 10 minutes for the whole game for each player, the quality of moves doesn't deteriorate that much (though time for calculation has of course to be drastically curtailed). The point is that trained instinct,which consults an unconscious library of positions and motifs at lightning speed, tends to choose strong moves. That's why when you pit a master against an amateur, giving the former five minutes and the latter two hours, the master will still prevail. Indeed, the studies conducted so far seem to indicate that masters actually calculate less than weaker players -- their calculation is just more pertinent because of the catalog of positions and motifs in their subconscious. Their hand knows where the pieces belong. Come to think of it, the runner-up for the ChessCafe Book of the Year is Hendriks' Move First, Think Later.

I suspect the same is true in any area of math and in coding. The key point is that in each of these areas the patterns are very specific to their areas and there is little crossover. Assimilating thousands of chess patterns is not going to make you a better mathematician and assimilating a lot of differential equations or algebraic topology is not going to make you a better coder.
 
Most (derivatives) quant jobs nowadays are pretty much a combination of math and programming. You can't really be an effective financial programmer without knowing the underlying math, although most of the time you won't have to derive the math. OTOH, programming is a must requirement. A mathematician with zero programming skills can hardly be employed as a quant.
 
Read my above post and read the part in parentheses about what being good at 'maths' means.

I've never met a really good programmer who didn't also have good quantitative reasoning skills (which is what I mean by being good at 'math'). Also, every exceptional math person I've ever met has also been an exceptional programmer. If you only care to be mediocre, that's something else.
Best programmer I met had classical music at conservatorium. But they music ~ maths.

Is its possible to have 2 left hands? i.e. good at number theory and not at programming?


There is nothing special about maths.
 
Assimilating thousands of chess patterns is not going to make you a better mathematician and assimilating a lot of differential equations or algebraic topology is not going to make you a better coder.

But IMO implementing numerical algorithms will.
 
Eh, I am a quant for one of the BBs, and you know how many times I found myself exploiting the underlying math in order to make my code more efficient? In some cases computing time would have been 3x what it was had I not known the mathematical intricacies. Some of these things are subtle. And some people are arguing that you can be a good quant if you're a great programmer but not-so-good at math, but they are missing the flip side. If you think you can separate the two you're only fooling yourself. Be good at both! That's my advice.
 
I am a mathematician and I have been programmimg since 1978. I am begining to realise that progamming and/or creating software products is very very difficult.
 
How many comp sci courses are really discrete math courses at heart? Combinatorics is at the heart of computing. Besides, if you want to optimize your code, call it what you will, but that's math.

Nope.
CS education is dismal. It has been dumbed down since the 90's (and even before). Combinatorics is kind of like maths, but a very narrow and limited skills.

Do CS students learn how to build and maintain robust software systems?
 
Speaking of the interplay of coding and math for a quant, there is a market for a book that simultaneously teaches very basic C++ and very basic numerical algorithms. I have books that do it in MatLab, I have books on very basic C++, books on very basic numerical methods -- but none that do both basic C++ and basic numerical methods.
 
Speaking of the interplay of coding and math for a quant, there is a market for a book that simultaneously teaches very basic C++ and very basic numerical algorithms. I have book that do it in MatLab, I have books on very basic C++. books on very basic numerical methods -- but none that do both basic C++ and basic numerical methods.
That's a nice project and is on my TODO list. We could use that subset of C++ that is most optimal to show the essence of the numerical methods. Ideally, the cognitive distance between C++ and the math should be small.


http://www.datasimfinancial.com/course_detail.php?courseId=47
 
I like this one:

//

Here I shall present, without using Analysis [mathematics], the principles and general results of the Théorie, applying them to the most important questions of life, which are indeed, for the most part, only problems in probability. One may even say, strictly speaking, that almost all our knowledge is only probable; and in the small number of things that we are able to know with certainty, in the mathematical sciences themselves, the principal means of arriving at the truth—induction and analogy—are based on probabilities, so that the whole system of human knowledge is tied up with the theory set out in this essay.
— Pierre-Simon Laplace
 
No wonder a lot of mathematicians are not good at chess -- for one, many have poor memories, and two, their opponents are math problems, not other human minds. Sound familiar?
Anecdotally, one of the prerequisites for being an elite programmer is to have a good memory. This can enhance productivity by 1 or even 2 orders of magnitude (from the merely "good").

And practically for traditional devs, designing interfaces is very important - an area where you directly try to harness the mindset of other humans.
 
No wonder a lot of mathematicians are not good at chess -- for one, many have poor memories, and two, their opponents are math problems, not other human minds. Sound familiar?

Only those mathematicians who use Markov property (too literally).
 
C++:
                K[j] = (1.0 + alpha*D)*K[j-1] + D*(1.0 + beta)*R[j-1];
                L[j] = (1.0 + alpha*D)*L[j-1] + D*(1.0 + beta)*S[j-1] + D*gamma;
 
                R[j] = alpha*K[j-1] + beta*R[j-1];
                S[j] = alpha*L[j-1] + beta*S[j-1] + gamma;
That reminds me of my last boss. I tried to explain to him that he was violating the most basic principles of software design (among other things, he used to like copying the same block of code multiple times making minor modifications to each copy -- I'm not sure what this common anti-pattern is called), and he retorted "Ehh, I am mathematician!" with smug superiority: He claimed to have been a math professor in the old country.

In the old days you got paid on LOC (lines of code) :D Your ex-boss would be a millionaire by now.

My guess is that about < 20 lines of real code is written by a developer per week (excluding the plumbing).
 
I am a mathematician and I have been programmimg since 1978. I am begining to realise that progamming and/or creating software products is very very difficult.

Hi Daniel Duffy. Would you be kind to comment a bit more on this, please?
 
Anecdotally, one of the prerequisites for being an elite programmer is to have a good memory. This can enhance productivity by 1 or even 2 orders of magnitude (from the merely "good").

And practically for traditional devs, designing interfaces is very important - an area where you directly try to harness the mindset of other humans.

It's a different type of memory. And besides, the proportion of your typical mathematician's inability in chess that's attributable to their inability to understand other mindsets is probably significantly larger. I included lack of memory (particularly for interpersonal situations) as just one contributing factor. Anyone who's good at anything obviously needs to have a good memory for things related to their discipline to draw quick connections to prior experiences.
 
It's a different type of memory. And besides, the proportion of your typical mathematician's inability in chess that's attributable to their inability to understand other mindsets is probably significantly larger. I included lack of memory (particularly for interpersonal situations) as just one contributing factor. Anyone who's good at anything obviously needs to have a good memory for things related to their discipline to draw quick connections to prior experiences.
I'm not so sure about "situational memory", although I do admit that since you brought it up, I'm beginning to have doubts about how easy or obvious it is to determine whether one person has a better memory than the next.

But if there is absolute working memory, then the incremental payoff for a programmer is certainly greater than linear.
 
I'm not so sure about "situational memory", although I do admit that since you brought it up, I'm beginning to have doubts about how easy or obvious it is to determine whether one person has a better memory than the next.

But if there is absolute working memory, then the incremental payoff for a programmer is certainly greater than linear.

What about 'collective' memory (LTM)?

400px-Memory.gif
 
Back
Top