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

MFE: To do or not to do?

That's my point, you do not need an MSF or MBA to work at an IB or PE. First off, CFA is basically an MSF. You won't gain anything from that. While an MBA may improve your chances to get into IB/PE, it certainly is not needed (it is more needed for IB, but less so for PE).

I'd recommend trying to break into IB/PE for a year or two, and if you aren't successful, then perhaps seek an MBA. At that point though, you'll have to be aiming for a Top 20 MBA program, other-wise it isn't worth it.

Yes, you are right. I should first try breaking into IB/PE and I also have a better chance now. If things work out well, I should be good if not, (for promotion or working in a well-known company) I will go for a top 20 MBA programs in the future to improve my chances.
 
Matlab is more of a toolkit and the language is quite sophisticated. So R and Matlab don't count in the sense that they do not help develop programming skills and algorithmic thinking.

We are in the 2nd decennium of the 21st century and programing skills are essential.

Yes your right. In the 21st century, programming skills are very essential. In my spare time, I will learn C++, SQL & VBA. Correct me if I'm wrong, I noticed these languages to be used most frequently in the finance industry.
 
Yes your right. In the 21st century, programming skills are very essential. In my spare time, I will learn C++, SQL & VBA. Correct me if I'm wrong, I noticed these languages to be used most frequently in the finance industry.
Python, VBA, SQL

Unless you are planning to become a developer.
 
Its always better to learn a programming language! Thanks BTW
My point was simply this:

VBA + SQL is a no brainer. Whatever the haters say, a vast majority of jobs in finance require heavy use of databases and Excel, so both of these are essentially required.

The C++ vs Python debate is one that goes way back on QuantNet but I recently reviewed hundreds of job requirement specs ranging from risk/valuation/quant/modeling/etc., and for the non-developer role, Python was a required skill far more often than C++ was.
 
My point was simply this:

VBA + SQL is a no brainer. Whatever the haters say, a vast majority of jobs in finance require heavy use of databases and Excel, so both of these are essentially required.

The C++ vs Python debate is one that goes way back on QuantNet but I recently reviewed hundreds of job requirement specs ranging from risk/valuation/quant/modeling/etc., and for the non-developer role, Python was a required skill far more often than C++ was.

C++ is a skill. Python is a tool like Matlab (nothing wrong with tools).

If you know C++ you can learn any other language essentials in a few weeks. But Python -> C++ road is a non-starter.
 
If you know C++ you can learn any other language essentials in a few weeks. But Python -> C++ road is a non-starter.
I don't believe the path dependency of learning programming languages. It is true that C++ is harder than Python, so more C++ programmers can pick up Python than the other way around, but if one is capable of either, no reason one can't learn Python first.
 
If you know C++ you can learn any other language essentials in a few weeks.

I agree with this.

a useless skill if you are not going to code for a living.

Not useless, but not necessary.

I agree with Daniel that once you learn C++ well Python would be quite easy to learn but why spend so much time learning C++ before Python if you have little intentions on using it for your career?
 
I agree with this.



Not useless, but not necessary.

I agree with Daniel that once you learn C++ well Python would be quite easy to learn but why spend so much time learning C++ before Python if you have little intentions on using it for your career?
Useless if you are not going to use it. Mastering C++ is hard, don't kid yourself. If you are going to half ass C++, you might as well don't do it because you are going to create pain for yourself.
 
a useless skill if you are not going to code for a living.
Anecdotal evidence states that quants spend [60,80]% of their working day programming.

Python looks well on CV. That's not my entry point to this discussion.

Compare C++/Python to the difference between real analysis (e.g. Rudin) and calculus.
 
a useless skill if you are not going to code for a living.
Maybe, maybe not.
Too general a remark. What's the sampling space?

Extrapolating from the past to the future, C++ will be here forever. Is the same true of other languages?

One of the uses of Python is for prototyping and then porting to C++, yes? I suppose production systems are possible/used in Python . Eventually, you hit a stone wall and C/C++ is needed.

This is a league table; C, C++ and C# are in the top 4

TIOBE Index | Tiobe - The Software Quality Company
 
Last edited:
Maybe, maybe not.
Too general a remark.

Extrapolating from the past to the future, C++ will be here forever. Is the same true of other languages?
They way I see things, from now on, Python and R are going to be around as long as C++.

One of the uses of Python is for prototyping and then porting to C++, yes? I suppose production systems are possible/used in Python .
Somebody else will do the coding in C++. IMHO, as an analyst, you shouldn't waste your time unless you need it.

Again, this is if you want to code for a living. Sure, do you want to be a coder? Knock yourself out with C++!!
 
C++ is uniquely useful for the subset of problems that require all of the following simultaneously:
(1) Fine grained control of multi-threading with shared memory
(2) Very low-latency
(3) Relatively high level of design abstraction.

Remove (2) and you can use Java [and Java is still decent, within a factor of 2]. Remove (3) and you can use classic C. Remove (1) and (2) and you can use Python. Remove (1) and (3), FORTRAN?

IMO, C++ is at this point a necessary evil. The evil to me doesn't come from it covering both high and low-level, but rather comes from the way it's been designed. Syntactically, it's terrible to parse (which means IDEs are necessary and tend to be commercial products), dependency management is a nightmare, compile times are too long, header/source split means code isn't DRY, lots of special cases and exceptions, the list goes on.

In terms of didactic value, C + Python achieves much of the same goals. C to learn machine level concepts, Python to learn the higher level.
 
I would add

(4) C++ can be customized. It is infinitely flexible.
Disagree. If you want maximal customizeability, you go to LISP. Python is certainly above C++ for customization. C++ in my experience is rigid, it just covers a ton of cases within that rigidity. If you want to wander outside of that, be ready to get hacky.
 
Disagree. If you want maximal customizeability, you go to LISP. Python is certainly above C++ for customization. C++ in my experience is rigid, it just covers a ton of cases within that rigidity. If you want to wander outside of that, be ready to get hacky.
Well, we'll just have to disagree :)

No one over in Europe uses Lisp. LOL. It died at the same time as AI in the late 80s.
 
Well, we'll just have to disagree :)

No one over here uses Lisp. LOL
I don't either, but it's the gold standard in terms of customization. You can use the language to change its own syntax. Not having seen the meta-level things the language can do, your picture of programming is fundamentally incomplete.

Any concrete examples of customizing C++? It's useless disagreement if nothing's learned, and I'm always looking for ways to make my C++ experience less painful.

For Python there's... monkey-patching, introspection, metaclasses, C/FORTRAN API calls, Cython, decorator syntax, keyword splatting.

C++ has... what? Meta-template programming? Macros? Operator overloading?
 
Another perspective on programming languages concerns the following:

1. It is a one-man show or a multi-team effort.
2. How easy to maintain and extend the code base.
3. The half-life of the software product.
4. How easy to interoperate with existing libraries.
5. How easy to debug.

These questions are also relevant in the context of a Python environment.

There is no silver bullet. At some stage you hit a wall with all languages. It is a question or knowing where it is and how to slow down before hitting it.
 
Last edited:
Back
Top