About a year ago, I was metaphorically “thrown into the deep end” by one particular assignment as part of my doctoral training programme. The assignment required me to replicate the results of a 4* Finance journal article, which inherently required the ability to code. The problem – I didn’t know how to code.
I had some idea on how to code – for instance, I knew concepts like variables, lists, dictionaries, loops, functions, etc thanks to dime-a-dozen free courses on CodeAcademy and the like. But it was this project that made me see the reality – I didn’t really know how to code.
I didn’t know how to go from a blank page to writing programmes that replicate the results of a top paper, for instance. Or even how to go from a blank page and write any programme from scratch for that matter.
The brief: code, or fail
For this particular assignment, coding knowledge was presumed, so no formal training was provided whatsoever. In fact, the only condition on replication was that we couldn’t use off the shelf packages like STATA, Excel, etc. On the table were MATLAB, R, Python, SAS, and SPSS.
Moreover, assignments at the doctoral level often pose problems that aren’t “googlable”. Oftentimes, Google returns either irrelevant single digit results, or no results at all. This particular one was no exception.
When things aren’t googlable
So the only way to deliver results is to think through the problems and implement solutions using a preferred language.
I opted for Python since I had relatively more “experience” on it compared to the others. And I knew Python’s capabilities were far superior to SAS and SPSS for instance. That being said, it was very clear that I’d need to learn Python pretty much from scratch.
I had to rely on the internet of course, and that meant dealing with a lot of ‘noise’, similar to this video which claims to teach you Python in 1 hour (for the record, I didn’t watch this particular video for obvious reasons!). Of course, it goes without saying that learning a high level language like Python in an hour – or even a few hours – is impossible.
Enter, the Python Gods
Fortunately, it was relatively easy to cut through the noise and find what I can only describe as the 3 Python Gods that were (and still are) out there. Without these 3 people, I would not be able to code anywhere near as well as I can today. For that, I’m eternally grateful to them.
This post is a tribute of thanks to these 3 incredibly amazing instructors:
I continue to learn a great deal from all 3 of them, relying on their content for my continuous learning and improvement.
Jose Portilla and Harrison Kinsley’s content is particularly useful for people in Finance. Jose’s course on Python for Financial Analysis and Algorithmic Trading is particularly useful since you work with financial data. The same goes for a lot of Harrison’s videos.
While all 3 of them played a major role in my coding journey, I’m particularly grateful to Sentdex and Corey Schafer. Because these 2 gentlement they provide all of their invaluable content for free. Literally, no strings attached.
I know first hand how time consuming content creation is, and the sheer amount of work involved in creating a “simple” 10 minute video. So it really is incredible – and inspiring – that they just give away all of that high quality, high impact, high value knowledge for free.
Sceptics might contend that while they’re offering their content for free, they’re making a ton of money through ads, etc. I reckon they’ll likely make a lot more if they charged for their courses. I for one would pay a lot of money to get that same content. And I’m sure many others would too.
Shoutout to the Python Angels
I’m also grateful to my friend and colleague, Matthias Büchner for being a patient and friendly sensei of Python. And indeed, incredibly grateful to the countless programmers and participants on Stack Overflow who’ve answered so many questions with incredible detail.
Such is the vastness and richness of the Q&As on Stack Overflow that I hardly ever needed to ask a question, since it’s almost always already been asked and answered!
They’ve all taught me well, emphasising the reasons and rationale for coding the way they do, showing me how I can apply concepts to real world problems, and perhaps most importantly, showing me how to apply the Zen of Python to create beautiful, simple, and functional programs that are reusable.
I was, am, and likely always will be inspired by Python’s simplicity, versatility, and beauty. As some of my friends and colleagues might tell you, I’m usually the first one to evangelise Python. I encourage existing coders / programmers / researchers who code to make the switch and code with Python. And I actively encourage people who don’t know how to code to start with Python.
Coding in Python has changed the way I think of and look at problems, and even today, I find it to be one of the most peaceful things to do. I’d even go as far as comparing coding in Python to meditating!