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

Advanced C++ and Modern Design Cert Testimonials

Yes, I do agree. The important and all required concepts in C++ are covered in the level1. After checking the syllabus I felt it could be an overkill if I start with first course.
I am sure that neither I be able to use the best practices coding and right paradigm taught in Level 1 course nor error free lean code, but doing first course will probably hone my coding skills, teach me right coding standards, how to write cleaner code, better modularization since I know the concepts. But I seek to learn design pattern, Modern C++, multi-threading, concurrency, the industry relevant skills etc. So I am confused about the two as I have no hands-on C++ work experience. Had I been an absolute beginner Level 1 is a no-brainer. Basically I want to learn driving, being good at it is something that I want to leave it for the later when I get my hands dirty working in real world problem solving in a Software engineering setup.
To your analogy, jumping into the advanced course without solid underlying skills is like trying to drive an 18-wheeler truck with a learners permit to drive a car (having taken a written driving test but have not yet put in any practice hours). My recommendation would be to do both: You can likely get through the first course relatively quickly (4-6 weeks if you really dedicate yourself), and you will then be well-equipped to take the advanced.
 
I just completed the Advanced C++ and Modern Design course, and wanted to take an opportunity to provide feedback. Overall, I wholeheartedly recommend this course to others. It's an excellent opportunity to dive in the new features of C++11, C++14, C++17, and C++20 (recently introduced to materials) to get a deep understanding of them, and to advance your programming skills to a whole different level.

I thought the curriculum was comprehensive and well thought-out. Videos were clear, and most of the assignments were clear - save a few where students caught some irregularities and pointed them out in the forum, but this wasn't propagated back to the homework assignment explanations.

I also appreciate @Daniel Duffy refreshing the content with recent C++20 developments, as I was especially excited to get hands-on experience with the latest standard.

I can't say enough positive things about @APalley - for providing direction without spelling out the solution, and making me stretch my thinking and evolve my skill-sets.

Thank you!
 
Many students have spoken about how comprehensive the content of the courses is, so I want to take the opportunity to talk about how applicable the knowledge from this course is in the real world.

I work for one of the big tech companies, and you would be surprised to realize that the code base of even the big tech companies is often not taking advantage of all the features that C++ has to offer. Projects at big tech companies often start out with a quick experimentation code which introduces code debt and bad design. If projects don't work, we abandon the code. if they do work, then the code debt manifests into inefficiency at scale. There are attempts to refactor the code, but it is often at a small scale here and there because things like templates, and multi-threading concepts are not thought out from the very beginning. By the time the code is refactored, it got stuck in time and could not be changed to take advantage of all the new features.

Learning this course has provided with me many benefits in my work. I code C++ way faster, which saves time for design. I was able to refactor a large chunk of the code in my company's code base, clearing a large chunk of code debt and saving tons of SWE years. Many times, it is just using range instead of for loop, and doing some simple multi-threading execution with futures when things are parallelizable. Because the scale of the problem is usually so large, every little change matters. Thanks to the knowledge from this course, I was able to make hundreds of these changes in the last 3 months, performing an unbelievable amount of resource savings in my work and making life easier for other engineers with some nice refactoring.

So I can say with certainty that the program is well worth it and I wholeheartedly recommend this course to others. It is better than the course offered at my company, better than the course offered in my master's program, and has helped me so much in my real-world work. It was certainly time well spent listening to @Daniel Duffy 's lectures in my 50-minute commute every day. I am excited to continue my C++ journey and look forward to learning other courses offered by QuantNet.
 
Overall I think this advanced course much more difficult and general than the fundamental one. But it’s really useful and it gives me a lot of chances to learn how we can improve the design and performance by using the new features.
Of course, there is no doubt that the TA is very responsible. Thanks a lot for Daniel’s class and APalley’s guidance. I think this course will help me do better in job hunting.
 
Comments on the time commitment of the course:
This was something I looked for when starting the course, so I figured I'd give my two cents. This course was a massive undertaking. It felt like at least twice the amount of work as the first C++ course (even without the module 8 project). The exercises are more numerous and more disjoint than the first course where many of the modules built upon previous content (for example, building out the Shape hierarchy).

Comments on the content:
The content was interesting and I definitely feel like my C++ knowledge was taken to the next level. I do feel as though some of the modules were a bit bloated with exercises and the overall pacing of the course wasn't quite as smooth as the first course (this may be more of a comment on how much I enjoyed the first course). In my opinion, the beginning and ending portions of the course were the most useful -- STL algorithms and multithreading to start, and GoF design patterns at the end. Some of the middle sections were a bit more niche (for example regex) and left less time to sink into modules 7 and 8.

Overall, if you have the time and are looking to expand your C++ knowledge I'd recommend the course.
 
My experience is a bit different than other certificate takers. Usually people taking this advanced certification are either planning to get into an MFE or working in industry, whereas in my case I'm a student currently completing an MFE. I would recommend this course to all students currently in an MFE program that is deficient in programming/software engineering courses, and would like to plug that hole with a robust advanced certificate that covers many of the expected CS knowledge to compete for QuantDev positions. I am really pleased with how comprehensive this course was and I can truly attest that it has taken my C++ and software engineering skills to a much, much higher level.
 
This course is THE premier course for anyone interested in developing expertise in both C++ and finance - There's no other course that even comes close (not even ones offered in university). Moreover, Avi and the team are the most helpful people you'll ever find.

I took this course to advance my career as an algo developer. Unlike most who take this course, I am not on an MFE path. Instead, I have a Computer Science degree and specialize in trading systems and algo development. Effectively, I partner with PMs and Quant Researchers to implement the signals and strategies they discover. In particular, I focus on low-latency systems and, as a result, advanced knowledge of C++ is critical. Fortunately, there are many facets of this course that directly benefit my day-to-day work. Moreover, the advanced knowledge of these concepts/techniques will help separate me from my teammates and set me up for promotions. Some of the most useful sections in this course are multi-threading, functional programming, concepts, and variadic template metaprogramming, all of which I use on a daily basis to excel in my career.

Thank you for the providing this course and for always being incredibly helpful throughout the course.
 
This course is quite challenging, with a lot of homework and quizzes. Thankfully, the TA is responsive, and you can post your questions on the forum where many questions have been discussed before. Despite having graduated two years ago, I enrolled to boost my C++ proficiency due to our new projects involving C++ code changes. A friend who was a student in this program years ago recommended it to me. I'd definitely suggest this course to individuals seeking an in-depth exploration of C++. It's incredibly comprehensive and can elevate your skills to the next level.
 
I'm preparing for the Baruch MFE application and this course is suggested. The course contents definitely require previous knowledge of C/C++ and the homework are well designed. I now have a better understanding not just in the new features but also basic logics in C++. Great course indeed and will review the course later.
 
Reason: learn modern C++ in a structured way.
I think it did a pretty good job covering all the important things C++17 to C++20, and most of the basic building blocks of all applications.
C++20 and C++23 should be discussed more. A section on a testing framework (boost test, google test, ...) would have been great.
But overall I'm very happy, thank you.
 
C++ is a
Reason: learn modern C++ in a structured way.
I think it did a pretty good job covering all the important things C++17 to C++20, and most of the basic building blocks of all applications.
C++20 and C++23 should be discussed more. A section on a testing framework (boost test, google test, ...) would have been great.
But overall I'm very happy, thank you.
C++ is a living organism.
We try to keep up.

What Boost C++ libs do in 2016 C++ 26 does in 2026 (Reflection).
 
Reason: learn modern C++ in a structured way.
I think it did a pretty good job covering all the important things C++17 to C++20, and most of the basic building blocks of all applications.
C++20 and C++23 should be discussed more. A section on a testing framework (boost test, google test, ...) would have been great.
But overall I'm very happy, thank you.
A general remark on learning.
It is always human to want to cram in as much stuff as possible, but this is not a good idea for at least 4 reasons. Compare to getting a black belt from blue belt level.

1. Blue to brown
2. Practice as a brown for a year
3. Brown to black.
 
Congratulations!

General question, @Fangtong

How did you find the usefulness of traits and C++20 Concepts in particular?
Game changer and highly future-proof imo. Rust has exactly the same features, but lesser. It is lagging.

@Devon Kaberna
@Paul Lopez
@APalley
Thank you professor.

As for this question:

These two techniques are very useful. For example, when we are creating a template function, type traits can be used to differentiate between input types and process them accordingly. This makes the function more flexible.

As for Concepts, they provide a more sophisticated method to constrain template types by requiring that they satisfy specific requirements during compilation. This makes template programming safer.

Thank you again for providing this wonderful course!
 
Amazing course! So many topics covered with challenging exercises and a comprehensive final project. This is really a huge step up from the first C++ course (similar to the difference between an undergraduate and graduate course I would say), be prepared to allocate a huge amount of your time on this, even more if you are aiming the distinction. Also a special thanks to @Paul Lopez for always providing detailed and interesting answers to my questions! Obviously thanks also to @Daniel Duffy and @APalley for the course!
 
Back
Top