• 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!

From PhD in mathematical physics to Quant?

Joined
6/18/18
Messages
4
Points
11
Dear all,

I will get a PhD in mathematical physics in France in about one year (more precisely, conformal field theory and its relations to pure mathematics). Prior to my PhD, I studied theoretical physics in a top 3 school in France. Today, I feel like I need new (and concrete) challenges, and working as a quant in an investment bank sounds challenging and exciting to me. I read several stories from PhD people in statistics or experimental particle physics who got a quant job, but my case is different. I will try to list some good and bad points about me.

(Huge) Bad points: Right now, I do not have most of the tools required for a quant. I didn't do any proba/stats/stochastic processes during my PhD. I also didn't do any programming (I use Mathematica every day for computations, though). Before my PhD, I did some projects using C++/Python, and I did an undergrad internship in particle physics doing data analysis at the LHC. I still have some basic notions, but I forgot a lot of stuff.

(Subjective) Good points:

I'm quite confident about the other maths (linear algebra, analysis, etc). I am not afraid about working a lot to progress on the other domains, and I think I can learn quickly. I also teached maths and physics during the PhD, which gave me some communication skills. I don't really care about where will I work in the future.

Questions:
1) Do I really have a chance to get a quant job, compared to the people who have a huge statistics/programming background ?
2) How would you prepare yourself to get a quant job in my situation? I am thinking to work by solving exercises given in interviews (I bought the book "Frequently asked questions in Quantitative Finance"), and probably buying a book dealing with finance in general, for the culture. Do you have other advices to be well prepared?
3) Let's say I have my chances, and that I have to start working September 2019. When would you start applying?

Any advice would be highly appreciated!
 
If you come from a top 3 engineering school in France, why don't you try to get into El Karoui ? I know it's not what you asked, I am just being curious.
 
That would be possible I think, but if I can get a job right after my PhD, I would highly prefer.
 
more precisely, conformal field theory and its relations to pure mathematics).

Can you give some background? sounds esoteric.
 
To be a little bit more precise about my PhD, I use a physical theory (Liouville field theory - Wikipedia) as a framework to study some pure mathematical problems. This theory is kinda known because it was related to string theory in the early 80's, for example.

What is amusing is that several (unsolved) problems in mathematics (in representation theory or integrable systems for instance) can be naturally reformulated (and therefore solved) within this theory. Concerning my work, I realized one year ago almost by accident that a group of mathematicians and a group of physicists were working on the same problems since 20 years, but using a different language. So I'm working on making a precise correspondence. But unfortunately, it doesn't have something to do with stats/programming.
 
My guess is your field might be a bit exotic for quant work. I found @Cowstar suggestion good. You certainly have the maths knowhow.

some suggestions

learn programming
learn numerical analysis/methods
 
Ok, so you seem to have decided that you want to work for a bank, as opposed to a hedge fund. That's a good first step in deciding what to learn and how to prepare for an interview.

So suppose you start an internship a year from now: You should start applying probably Novemberish this year or whenever it is that the annual internship positions are accepting applications. I know some firms may say that the internship starts in June, for example, but even when they seem inflexible, they are in fact quite often flexible, so do apply even if you can't start before September and negotiate later (it's a matter of HR being inflexible, but the quant group usually doesn't care when you join, though there are benefits for you if you can join at the same time as everyone else - any reasonable hiring manager would try to convince HR to convert the internship offer into an offcycle internship if they found a really good candidate and the candidate so wished).

So now, then, can you become a quant? There are many types of quants, and some roles require more math, while some are focussed more on programming. If you were to work in model validation, depending on the bank, you might be in a role where you need not code at all, but just to read, review, and point flaws in the documentation the front office quants, i.e. the model developers, submit. For this type of thing, you will need to be solid on the financial math fundamentals, which I'm sure you can read up and digest enough of in a few months if you really put time and effort into it.

The model developers, the pple you typically think of when you think about quants, do write up the models in a peogramming language, so knowing how to program is important (and while in banks the typical CS background has traditionally not meant much, with increasing complexity of systems and general interest in machine learning, that curriculum is more sought after now than it once was). That said, programming ability is quite difficult to test in an interview, so I think you can "bluff" your way through, by which I mean you can probably do reasonably well without years of programming experience if you read a couple of intermediate+ level books on the programming language of your choice and try the concepts out in some toy setting. Real programming of course is nothing like this, but involves interacting with thousands or millions of lines of badly written legacy code that nobody understands anymore, and designing new classes and interfaces for a specific purpose. Testing these skills in an interview is difficult, and you can see this on Glassdoor etc if you look at what people were asked, so interviewers instead tend to ask for toy implementations of some basic concepts/classes (like shared pointer in C++), basic language trivia (like what does std::move do, or what is pimpl), i.e. textbook material (I don't think this in itself is a bad thing; I would be concerned if a senior quant didn't know the basics of the language they are using and spending 50% of their time writing code in, so the questions are not meaningless).

You are, however, toast if you can't write a simple algorithm (say, quicksort, or a simple PDE solver or similar) in your programming language of choice, but this doesn't really test programming ability per se (I've seen many candidates who were verbally able to explain what needs to be done and how whatever algorithm I was asking about works, but when asked to write it down in code that produces a number, get completely stuck)
 
Last edited:
(I've seen many candidates who were verbally able to explain what needs to be done and how whatever algorithm I was asking about works, but when asked to write it down in code that produces a number, get completely stuck)

I agree; learning and 'doing' go hand in hand. There's no substitute for getting your hands dirty.

Just reading stuff is almost next to useless IMO in this context.
 
Thank you very much for your answers! I completely agree with the fact that reading stuff will not be enough, especially in programming where I should be an actor rather than a spectator.

I started to work on proba/stats/stochastic calculus and finance in general. I'm also thinking to apply on some coursera courses.

The programming part is maybe the issue in my case. I actually have a few background on Python: during my MSc, I did a project on modeling the aurora borealis. It consisted on resolving numerically some equations, an plotting some 2D or 3D figures. I feel kinda rusty, but on the very short term, I can refresh my mind about the very basics. Unfortunately, I haven't done any C++ since 6 years. Also, during my PhD, a research project was about asymptotic analysis of some non-linear differential equations, theoretically, and numerically on Mathematica.

Do you think it's okay if I leave C++ coding behind me, and improve my level on Python (by attending online classes, or maybe participating in some GitHub/Kaggle projects, and redoing on Python some numerics that I did on Mathematica? Or C++ is essential?
 
Do you think it's okay if I leave C++ coding behind me, and improve my level on Python (by attending online classes, or maybe participating in some GitHub/Kaggle projects, and redoing on Python some numerics that I did on Mathematica? Or C++ is essential?
I do feel that having some experience with a systems programming language is very helpful. Python is, in my mind, not a proper programming language: it's the duct tape to roll out a quick prototype, but building production software that doesn't end up a steaming pile of shit with it requires a very skilled and disciplined team. And so working in a large Python project, with others, makes me sad, even though it is my language of choice to get something quick and dirty done and proof of concepts written.

It is easy to write bad C++ because the language is so massive and feature packed (and it is easy to write bad Python code because you have no compiler to help you out and enforce correctness), and because modern C++ looks very different from C, or C with classes, which is how C++ is still sometimes being taught. This is why I think it is important to read a book or two and try a couple of more abstract problems than something like Kaggle which doesn't measure code, but the algorithm.

Solving a couple of given equations is a toy problem from a coding perspective. What you need to learn is to design systems. This can be in the context of solving physics etc, but the difference is that the code must be generalizable, fast, and with clean APIs.

In the world of finance, models are typically much more hierarchical than in physics for you're not in the reals of just one model. To price a Bermudan, you might use a term structure model. Now of course the Europeans, which the model degenerates to, must hit the relevant European prices, so there needs to be some calibration there to a vanilla model. And to price anything on the vanilla model, you of course need a model for curves/forwards etc. And you want to be able to switch any of these to a different model (the term structure could be a tree or a Monte Carlo) and still have the pipeline work. This design, and making it clean and well thought out, can be more difficult than the maths or the actual programming of the algorithms.

tl;dr Using just Python is fine as long as you understand the language features, but I must say that it will make you CV look quite weak. I think without knowledge of something a bit lower level, like C or C++, or least another language, it can be difficult to relate the concepts to something more fundamental (or if you want in some way go the opposite direction and relate to higher level convepts like Haskell, that'd be fine too).
 
Knowing a bit about software projects on several levels I suspect that writing readable and maintainable multi-team, long-terms and large software systems in Python is well-nigh impossible.

In fairness, Python wasn't built for that, in contrast to Ada, Fortran and Cobol.

Rumour has it that Guido van Rossum invented Python during the Christmas break once at the University of Amsterdam.

I think Python is best for one-person prototypes. Correct me if I am wrong.

I agree with KillingField tbat you should know the underlying principles in order to avoid being seen as a 'plumber'. Learning Haskell is a good investment IMO beats playing PACMAN ..

take-control-control-code-complexity-44-638.jpg
 
Last edited:
What you need to learn is to design systems.

This is crucial. But many developers have never learned design which is NOT the same as programming.

Analogy: like a house, developers very seldom have any kind of architectural/design blueprints before jumping into code. These engineering skills are not taught in CS education. But it's been like that for the last 50 years. In that respect, little progress has been made.

Anyways, my 2 cents.

2Nri8mm2C2vRZU3FhSfEL1PvYsFxiyawowPa2bFcE6s.jpg
 
Last edited:
Knowing a bit about software projects on several levels I suspect that writing readable and maintainable multi-team, long-terms and large software systems in Python is well-nigh impossible.

In fairness, Python wasn't built for that, in contrast to Ada, Fortran and Cobol.

Rumour has it that Guido van Rossum invented Python during the Christmas break once at the University of Amsterdam.

I think Python is best for one-person prototypes. Correct me if I am wrong.

I agree with KillingField tbat you should know the underlying principles in order to avoid being seen as a 'plumber'. Learning Haskell is a good investment IMO beats playing PACMAN ..

take-control-control-code-complexity-44-638.jpg

This is incorrect for Data Science. Python is regular used to deploy ML/AI models. It is an OOP language. And there are many C/C++ optimisations under the hood in many popular Machine Learning packages.

Aside: This is not 2003-2008 you don't automatically get a quant job for having a PhD. Whilst I'm still relatively young in my quant career all of these posts are now absolutely hilarious to me with some time in the industry. "I have a PhD - how do I make millions in finance - LOL"

Reality: If have a PhD in XYZ STEM subject but no interest in finance, no corporate work experience, and no understanding of mathematical financial and/or econometrics/multivariate time series forecasting it will still be tough to get hired (In Europe).

Only go into finance if you actually like finance. Especially in Europe where banks are now regularly paying Quant Dev PhDs the same as Bachelors graduates (30-45K). There is huge variation in salaries for those who actually like finance and have relevant experience and all the soft skills VS those PhD types who think they should get paid just for having a PhD.

In terms of job applications - start now - you will be competing with PhD/MSc students who have wanted to go into finance for 3-5 years and have the same skills as you required on the job.
 
Last edited:
@JulienR
Tres interessant, j'ai à pein fini de lire... Qu'est-ce que tu as fait enfin? As tu pu trouver quant boulots à Londres? Je suis curieux, j'ai fait presque ton meme parcours
 
Back
Top