Muschamp Rd

Certificate in Python for Finance

August 22nd, 2025
Dog with book

In September of 2025, I officially start my next online certification program, the Certificate in Python for Finance. The course consists of 350+ hours of video, 2750+ pages of text, 85,000+ lines of code, in 500+ Jupyter notebooks. You also get access to seven eBooks related to using Python in Finance. If you guessed this program is not the cheapest option online you’d be correct.

I previously read one of Yves Hilpisch’s books back when I was unemployed or had just started working in Finance. A lot has happened since then including COVID-19. I still work for the same firm in Calgary but there is a renewed push to use AI in Finance and although that is not the book I previously read, I had been following Yves on Twitter and was on his mailing list for years, so was familiar with the courses he also offered.

The CPF, however looked like a lot of work, and my day job of course is demanding. Although, I’d already learned a fair amount of Python, I’m just not leveraging in my day job. However, anything involving AI, machine learning, or natural language processing is getting pushed hard at the firm and in the industry. So as we have a professional development budget which I had not been touching, it was hinted strongly I should do something.

Previous Adventures in Python

In 2018, I finally passed the third and final CFA® exam. The running joke online back then was as soon as you finished studying for the CFA exam you started learning Python, so of course I did. Python was also appearing on many, many job postings and I was definitely looking for a new job in 2018.

Eventually, I did find a new job but I had to relocate halfway around the world to do so. While all that was going on I continued to learn Python eventually reading a book by Wes McKinney. I definitely read Wes’s book before I read any of Yves’s books. Wes has a lengthy biography on his website and he must speak at conferences, however his books and online tutorials will have to suffice if you want to learn more about pandas from its creator.

After reading “Python for Data Analysis”, I must have moved on to financial analysis which is when I took my first online Python course through Udemy. It was about that time, when I read one of Yves books. And during this period I finally got a new job and relocated to Calgary where Python largely got put on hold as there was a large project involving moving the firm from things like Advent Portfolio Exchange, FactSet, and Charles River IMS to SimCorp Dimensions. I also made a lot of Power BI dashboards and wrote a lot of SQL, but almost no Python code.

Having already completed one online course and not even mentioning it on my resume for six years, I enrolled in another certificate leveraging Python, this time offered by the CFA Institute as I was being strongly encouraged on multiple fronts to do more professional development and to get on the AI bandwagon.

Artificial intelligence, machine learning and natural language processing were some of the focuses of the Data Science for Investment Professionals certificate I just completed. This was actually my 2024 professional development as I started this certificate in October of 2024. The Data Science for Investment Professionals certificate consists of five online courses and I estimated it took me well over 100 hours to complete them all. The other program I considered last year was the CPF. So I doubled down on Python for Finance.

Preparing for the Program

I probably should have prepared even more for this online course. I was strongly encouraged to do an introductory online course on Yves’s platform and I intend to. It seems to be 35 videos long and likely covers some of the material in the books I’ve read and the previous two online courses I’ve taken.

The online learning platform is of course password protected, but Yves and the CPF program are on social media and prior to registering I did watch one or two free online videos where Yves introduces some of the material that will be covered, explains why the material was chosen, and how the online learning platform works. He refers to his online learning platform as “the Quant Platform” if you watch the two videos below.

Python for Finance Bootcamp

When you register for the program, Yves suggests you prepare by watching 90 hours of videos. The first videos you should watch are what he refers to as the PFF Bootcamp with PFF being “Python for Finance”. I actually couldn’t get the first video to play, but every single online course I’ve ever take has had technical problems. You can contact Yves or someone on his team via the Internet and eventually I and others could get the videos to play.

The PFF bootcamp currently consists of three videos and they are long, the first video covers Python syntax but also might briefly touch on matplotlib, this is the one I only reviewed the code for. There are Jupyter notebooks and often other files you can download or you can run the code on the online learning platform. The PFF Bootcamp is an overview of the material covered in the course and is similar to the videos above. It is a lot like pair programming as you sit there and watch Yves type the code on the screen. I didn’t type along with him in the second and third video, but maybe I will in the future. However if you get the data and code at the end of class, you can modify that version should you be so inclined at a later date.

I did watch the second and third video and they go more in depth. The first assumes you know almost no Python syntax. The second video covers NumPy and the ndarray which is faster than the native list and tuple objects in some instances. NumPy or Numerical Python has a lot of useful features for financial analysis as I and others have covered before. You definitely use matplotlib to create line graphs and histograms. The third video focuses on pandas which has another datatype known as a DataFrame. This is very useful for financial data such as time series. Also covered is SciKit-learn aka sklearn which is used in the PFF Bootcamp for machine learning and backtesting. The algorithm we look into is for evaluating American Puts using OLS Monte Carlo simulations and was first described in a paper by Longstaff and Schwartz.

The last thing covered was actually network programming which I haven’t done since I was an undergrad. It is definitely a lot less code to set up a client and server that communicates over TCP using a library called zmq. I had to do it in Java and I remember my client/server had to have a UI which I implemented in Swing. That code may still be on my laptop or is definitely on a floppy somewhere. I got a B- in CSC 450 apparently, but in my defence that was the first course I ever took in Java and those two assignments were the first Java code I ever wrote. They were my “Hello World”. While I was a student, UVic kept changing programming languages. Now the course appears to be CSC 361, it isn’t even a senior elective anymore like it was in the 90s.

Kickoff Session September 2025 Cohort

Yesterday, September 10th, was the kickoff to the final cohort of 2025 for the CPF. I got up at 6 AM to tune in and it is very much like the videos you see above from YouTube. Obviously there was some variance he shared a recently released paper from Brynjolfsson, Chandar, and Chen. I’d already updated the schedule and for the next three weeks will be focussing on six Finance with Python lessons. My secondary focus will be to work through PFF Basics. These two modules might contain a lot of review for me. Finally a new module is being introduced on Thursday and that will focus on Deep Learning.

After the first three weeks you can specialize more and I will focus on Python for Asset Management as well as continuing to learn about Deep Learning and AI in Finance. There are also modules on agents and generative AI. Basically everything that is new and trendy I will study because I already have done a discounted cashflow and a Monte Carlo simulation before in Python and definitely in Excel.

You can run the Jupyter notebooks online, though some code you must run locally. I actually have taken to typing along on my local machine, though you don’t need to type out everything as at the end of class the code is uploaded somewhere where you can hopefully download it. I just find that by typing along I might pay attention better. When the lessons are pre-recorded you can also pause the video if you can’t type fast enough.

Finance with Python

Officially I am a quarter of the way through program, but I have of course fallen slightly behind. I did finish the main course, Finance with Python, and of course did additional studies including attending the new Deep Learning classes. I have not done all the tutorials or exercises or readings. I’ve been focusing on watching the videos and coding along. The fourth week was hard to find time and energy to study, but now that is Sunday I am trying to catch up.

Next weekend is Thanksgiving here in Canada so I likely will fall further behind, which is why I’m not really holding myself to a strict 16 weeks to complete everything, which even Yves likely thinks is a challenge. Instead I’ll try to keep up with the core classes and live lessons and then allow myself more time to complete the final project and cover additional material. I plan to start the AI in Finance soon and actually ordered the book, so I can read along and reduce my screen time.

I did want to give a quick update acknowledging I’m grinding along even if I lack all the time and energy necessary, progress has definitely been made and I wanted to try and add a code snippet to this WordPress post as it was one of the algorithms or techniques we’ve been studying the last few weeks, Least-Squares Monte Carlo Valuation. You’ll of course need to import the right libraries and declare all the variables but this is the penultimate Jupyter notebook cell.

# Least-Squares Monte Carlo Valuation (LSM algorithm)
V = h[-1]
for t in range(M - 1, 0, -1): # start at the second but last, backwards induction
    reg = np.polyfit(S[t], df * V, deg=5)
    C = np.polyval(reg, S[t])
    V = np.where(h[t] > C, h[t], df * V)

Obviously more to come

I hope to complete this online professional development certificate program in a timely manner, though it likely will take me longer than sixteen weeks. I’m not sure how much I’ll blog about it, but I’m trying to be disciplined in covering the material and taking notes, but there is a lot of material online about this course and Python in general since I first started studying Python for Finance. I hope to learn some new tricks with a renewed focus on AI, machine learning, and natural language processing.

My dog sitting for my sister is finished so I may eventually adjust the featured image and I’ll include some graphs and code samples perhaps as I go. WordPress might be better at including code samples than it was 20 years ago. I really will try studying as close to daily as I can manage to cover all this material in a timely manner. Since I moved my website, Google seems to be indexing it less deeply, but my new posts generally show up in the index eventually, it might help to post them to social media, but there is a lot of competition for “Python for Finance”.

If you did stumble across this and have thoughts you can leave a comment below. It will take a lot of effort to finish this program.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posts on Muskblog © Andrew "Muskie" McKay.
CFA Institute does not endorse, promote or warrant the accuracy or quality of Muskblog. CFA® and Chartered Financial Analyst® are registered trademarks owned by CFA Institute.