• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering.
    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.
    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.

Some General Suggestions for New Students


Active Member
Hi there, I'm currently a second-semester MFE student and I just completed this course and received the certificate with distinction. Although I'm an MFE student, I still find this course extremely helpful to me since my program didn't provide comprehensive training in C++ (mainly focus on Python or R). Below are some of my suggestions which hopefully can serve as a general guide for new students.

1) I'm already familiar with Python(or R, etc.), is it still recommended that I learn C++?
The short answer is YES (I suppose that you're not a CS, EE student...)
Most of the Python courses do NOT really give you a good understanding of programming itself, but rather focus on teaching you how to quickly use it as a tool. For example, you might be pretty much clear how to create a function or class in Python, but have you ever notice whether you are dealing with a copy of an object or the object itself? After completing this course, I gained lots of deeper insights into programming itself, which I believe is quintessential in today's highly competitive job market. (C++ will give you a big surprise in Level 9's Monte Carlo Simulation if you had experience in implementing it in Python...)

2) How should I arrange my time? Can I complete this course in time?
The short answer is everyone can complete it on time as long as you are sufficiently dedicated.
I complete this course within approximately one month. But I'm not saying that finishing it within 4 weeks is always a good practice. In fact, the key point here is consistency, which means you should try to play around with it every day, and do NOT let the forgetting curve dominate your learning curve.

3) Windows, Mac OS, or Linux?
The short answer is it doesn't matter whatsoever. (I promise that you will be 100% fine no matter which system you are using)
Most people will suggest that you use Windows VS for the purpose of completing this course. This is absolutely correct. But, I really don't agree that the main purpose of taking this course is to use C++ in Windows VS. If you're a Mac user, then use Mac. Just imagine that later you got a quant job but they are using Linux rather than Windows, would you ask them to install the Windows and VS for you?

4) Which topics should I pay more attention to?
* Pointers, dereference, memory management (You might never hear or consider before...)
* OOP: Inheritance and Polymorphism (You might hear before but you might not truly understand)
* Generic Programming (You might never hear before)
* STL, Boost (Make your life easier)
* Program Design (Not a concrete topic, but you should consider it very carefully)

5) Should I expect to obtain comprehensive training in Computational Finance?
The short answer is NO but probably YES.
It depends on whether you're willing to spend extra time doing your own research. All the Computational Finance Applications are in Level 9, containing Black-Scholes Pricing Models, Monte-Carlo Simulation Method, Numerical PDE Solutions, Binomial Pricing Method, etc. If you only follow the video clips and do nothing else, then you are not going to gain deep insights into them. But, if you are able to do your own research, it's really not a big deal mastering them. In fact, my professor only spent two lectures explaining MC simulation or Numerical PDE, most of which do NOT require you to have experience in advanced mathematics such as stochastic calculus.

6) How to get a high score/distinction?
The short answer is you shouldn't focus on this...
Your main purpose of taking this course should not be getting a distinction, but rather mastering the fundamental and practical aspects of C++ programming. However, I agree that getting a distinction is a great reflection of your hard work and dedication. So, here are some tips:
* Make sure each of your HW assignments is correct and optimal (as optimal as you can). If you have any questions or confusion, go to the corresponding forum without hesitation. In most cases, you will find the same question. By the way, don't struggle for the extra points (for the most active students), you're asking questions because you have questions, not because you want to "become active"...
* Pay specific attention to Level 9's HW assignment. Because, in this level's exercises, there are no "correct answers", or equivalently, the correct answer is straightforward but the main purpose of these exercises is letting you put everything you've learned together and properly design your program.
* The final exam is NOT easy and it counts for 25% of your final grade. This is not a Coursera course, but rather a highly rigorous university-level course. Make sure that you are extremely familiar with the topics I mentioned in (4) before taking the exam. I highly agree with the suggestion APalley provided for the exam: "Make sure you fully understand all the what and why of your previous assignments."

I hope these suggestions would help you. Good luck!