The top part of this article is for updates (the original article was written in June 2017). The real thing begins in a scroll or two.
Note: This article is a perpetual work in progress and is up to date as of 4 June 2020.
2020 Update: After writing this article, going through my curriculum (below) and sharing my work online one of the main questions I get is "I want to learn machine learning and artificial intelligence, where do I start?", usually I'd send this list. But I decided to create my own resource, teaching you everything I learned/would've liked to have known when I started. If you're a beginner, interested in learning machine learning (right from the start!) check out the Zero to Mastery Machine Learning Course.
2019 Update 2: There are a lot of great resources on machine learning, data science and artificial intelligence out there. I’ve put together some of my favourites in an easy to navigate location. Check it out here.
2018 Update: 9-months into my curriculum, I got hired as a Machine Learning Engineer at Max Kelsen, a technology company in Brisbane!
Me in 15-seconds
I live in Brisbane, Australia.
I graduated in 2015 with a Dual Major in Food Science and Nutrition. It took me five years to do a three-year undergraduate degree.
I thought I wanted to be a doctor. Probably because I was following what my friends were doing rather than creating my own path.
I’m a fitness nut. And I love food. Marrying my love for food and fitness with my studies was one of the best I ever did.
The most valuable lesson I learned from five years as an undergraduate was if you’re truly interested in what you’re learning, studying is no longer a chore.
I learned how to learn.
If you had told me this piece of wisdom before starting university, I would’ve listened and understood but not put it into action. I was still under the impression studying would always be a painful task. Wisdom must be learned not taught.
Why study Artificial Intelligence?
This whole revolution of Artificial Intelligence (AI) fascinates me. AI, coupled with other technologies has the power to make the world a better place. It also has the power to the world a worse place. I’m an advocate for the good side.
Advancements in AI have been happening for decades. Computing power has only recently reached a stage where it is accessible enough to enable people like me to work on these technologies from my bedroom.
Rather than stand by and watch this paradigm shift happen without fully understanding it, at the start of 2017, I decided to start learning about it.
- Be dangerous enough to use AI as a tool to bring value to the world. I’m not learning these technologies for the sake of learning. I’m going to use what I learn to build something epic.
- Combine AI with my knowledge of fitness and nutrition to help the world move more and eat better. I know I won’t ever be the worlds leading expert in AI or fitness or nutrition as singular disciplines but I can be a leader in the crossover of the three.
- Inspire others to embark on their own learning journey. By writing about my journey and sharing what I’ve learned, I want to encourage others to choose themselves and create their own paths.
I went in reverse when I began my studies. I dived straight in the deep end (literally) and signed up for a Deep Learning course without ever writing a single line of Python code.
I scared myself to the point I emailed support asking whether I was eligible for a refund. Luckily, I didn’t take the refund.
After learning more about the field, I matured a little and started to get an idea of where I want to take my studies. More thought is starting to go into where I spend my time.
I’m not looking to be the best Artificial Intelligence Engineer or the most hireable. My focus is a foundation of knowledge I can use to build things.
My curriculum is not as robust as it could be, instead, it’s being built on the fly, learning what I need to know to get to the next step.
- ✅ = course fully completed
- ✳️ = course partially completed or in progress
- No symbols for math or books
- ✅ Udacity Programming Foundations with Python [Free]
- ✅ CS50 [Free]
- ✅ Treehouse Python Track [Cost]
- ✅ Udacity Intro to Data Science [Free]
- ✅ DataCamp’s Intro to Python for Data Science Track [Cost]
At the beginning of 2017, I had no idea what data science was, let alone AI. I wrote my first line of Python code in February. These courses are to give me a foundation across Python programming, Computer Science and Data Science.
- ✅ Andrew Ng’s Machine Learning on Coursera [Free]
- ✅ Udacity Deep Learning Nanodegree Foundations [Cost]
- ✅ Andrew Ng’s deeplearning.ai course on Coursera [Cost]
- ✅ Udacity Artificial Intelligence Nanodegree [Cost]
- ✅ Fast.ai Deep Learning Course (part 1) [Free]
- ✳️Fast.ai Deep Learning Course (part 2) [Free]
- ✳️ Applied Data Science with Python on Coursera [Cost]
- ✳️ Fast.ai Machine Learning Course [Free]
I stumbled upon Udacity’s Deep Learning Nanodegree Foundations (DLND) and was won over by Siraj Raval. I had a slight interest in AI and machine learning but his introductory videos on YouTube got me hooked. This was the first course I started with.
From the DLND, my learning journey has grown with a focus on the crossover of AI and health.
- Learn Python the Hard Way by Zed Shaw [Cost]
- Naked Statistics by Charles Wheelan [Cost]
- Artificial Intelligence: A Modern Approach by Peter Norvig and Steven Russell [Cost]
- Deep Learning with Python by François Chollet [Cost]
- Hands-On Machine Learning with Scikit-Learn and TensorFlow by Aurélien Géron [Cost]
- The Hundred-Page Machine Learning Book by Andriy Burkov [Cost]
Sometimes a more traditional route is needed rather than always being in front of a screen. Zed’s book on Python helped immensely alongside the Treehouse Python track.
The last time I did a statistics course was the first semester of my undergraduate degree. I failed. Naked Statistics has helped me start to think with more of a statistics mindset. It’s written a way that takes away the jargon and gives real-world examples of complex statistics concepts.
Learning AI without the holy grail of AI textbooks — Artificial Intelligence: A Modern Approach — wouldn’t really be learning AI.
Deep Learning with Python is perhaps the best introduction to AI, Deep Learning and Python so far. Its author, François Chollet, is the author of Keras, a popular deep learning framework and currently works on deep learning at Google.
Hands-on Machine Learning is another incredible resource. This book is most aligned with what I do day to day as a Machine Learning Engineer.
The Hundred-Page Machine Learning Book is a new edition for 2019. I wish I had this book when I started out. You can read it in a day. We’re getting one for the office and going to use it as a go-to resource.
- Khan Academy Introduction to Matrices [Free]
- Khan Academy Linear Algebra [Free]
- Khan Academy Multivariable Calculus [Free]
- Khan Academy Statistics and Probability [Free]
- 3blue1brown YouTube Channel [Free]
- Math for Machine Learning on Coursera [Cost]
My high school math skills needed some refining once I started learning about Machine Learning and Deep Learning. Thanks to various frameworks and libraries, much of the math work is done behind the scenes.
Having a general understanding of the math that goes into these technologies has helped me immensely.
- Brisbane AI Meetup [Free]
- Siraj Raval’s YouTube Channel [Free]
- FreeCodeCamp [Free]
- ✅ The Learning How to Learn Course on Coursera [Free]
- ✅ Google Cloud Data Professional Specialization on Coursera [Cost]
My personality type is ENFP. Essentially, I’m more extroverted than introverted (only slightly). Too long in front of a computer screen and I get weird. As previously mentioned, I’m using Meetup to find and meet people who are interested in what I am.
Siraj Raval is a wizard. His YouTube channel was my main inspiration for learning about AI and eventually creating my own AI Masters Degree. Watching his videos led to me documenting my learning journey on YouTube. If you’re looking to learn more about AI, I’d highly recommend his channel.
FreeCodeCamp is where I’ll go if I need to brush up on web technologies outside of the Python stack I’m currently learning. After all, if you build something with AI, you’re going to need a way to deliver it to the world. They have one of the best online communities I’ve ever seen. If you’re looking to get into web development, this is your starting point.
I’ve already mentioned the most valuable skill I learned after five years of university was learning how to learn. But I figured it out the hard way. The Learning How to Learn course on Coursera should be a compulsory course for every student. Learning How to Learn is the ultimate skill because you can apply it to anything else.
The use of cloud technologies is a requirement for any machine learning engineer or data scientist. If you want people to use the things you make, you have to distribute them. Cloud computing helps you do that. I’ve chosen Google Cloud to be my current cloud vendor. And I used the Google Cloud Data Engineering Specialization on Coursera to upskill myself. To see more, see the article, How I Passed the Google Cloud Data Professional Certification Exam.
How do I stay on top of everything?
I’m tracking all of this using a public Trello board. I find keeping things visual and as simple as they can be is how I work best. Feel free to follow along with my progress.
Why create my own path?
During my studies at university, I often found myself asking lecturers and professors,
Will this be on the test?
What I really meant was,
I’m not going to learn this unless it’s on the final exam.
This article by Seth Godin hits the nail on the head.
I’ve spent enough time at university this decade.
I did, however, use two main criteria when deciding how I was going to learn.
In terms of cost, a postgraduate degree in Computer Science at the universities in my area was between $20,000 AUD and $30,000 AUD per year (a minimum of two years). I’ll use the low-end for the sake of future comparisons.
Based on my previous experience at university, it was anything but flexible. Strict due dates, medical certificates for basically any absence, strict class times, one-time-only lectures, a 70-minute round trip commute from where I live to my closest campus, etc. These are not bad things but when you compare it to the alternative of online learning, things start to look a little different.
Online learning was the clear winner in terms of flexibility. Being able to study at my own pace is a big plus. I slow down on the concepts I have trouble with and fast on everything else. I miss a deadline because of an unforeseen event? It’s on me. No one else.
Online learning is not all roses. What you gain in flexibility, you lose in actual human interactions. After a day of studying in front of my computer, results in me becoming an introverted zombie. I’m using local Meetups to compensate for this.
Online learning also doesn’t come with as much prestige as what would a university (yet). Some of the courses I’ve completed don’t provide a verified certificate. I’m not worried about that. My goal is to gain enough knowledge to put these technologies into practice and bring value to the world.
I’ll use what I build as proof of my capabilities rather than a certificate.
Paying for courses
Instead of accumulating more student debt, I chose to use the money I would’ve spent on two years doing a Computer Science Masters towards funding my own learning journey.
I pay for all of my courses up front. To do this, when I started the curriculum, I drove Uber on the weekends. And after being hired as a Machine Learning Engineer I still pay for them up front.
You can consider this article a work-in-progress of my self-created AI Masters Degree curriculum. I’ll keep it updated as I go along with the courses I’m learning and the projects I’m working on.