### 4.3.1 Courses

The courses are listed in the order they should be taken. It was combined in August 2019, so some of the links might have become outdated, but the curriculum can still be useful to have a sense of what areas of knowledge you should acquire and find other ways to acquire them, e.g. other courses or books^{51}.

**1. Probability and Statistics by Stanford Online**

See course materials (free online course)

This self-paced course covers basic concepts in probability and statistics spanning over four fundamental aspects of machine learning: exploratory data analysis, producing data, probability, and inference.

Alternatively, you might want to check out this excellent course in statistical learning: An Introduction to Statistical Learning with Applications in R.

**2. 18.06: Linear Algebra by MIT**

Textbook: *Introduction to Linear Algebra* (5th ed.) by Gilbert Strang

See course materials (videos available)

The best linear algebra course I’ve seen, taught by the legendary professor Gilbert Strang. I’ve heard students describe this as “life-changing”.

**3. CS231N: Convolutional Neural Networks for Visual Recognition by Stanford**

CS231N is hands down the best deep learning course I’ve come across. It balances theories with practices. The lecture notes are well written with visualizations and examples that explain difficult concepts such as backpropagation, gradient descent, losses, regularizations, dropouts, batchnorm, etc.

**4. Practical Deep Learning for Coders by fast.ai**

See course materials (free online course)

With the ex-president of Kaggle as one of its co-founders, this hands-on course focuses on getting things up and running. It has a forum with helpful discussions about the current best practices in ML.

**5. CS224N: Natural Language Processing with Deep Learning by Stanford**^{52}

Taught by one of the most influential (and most down-to-earth) researchers, Christopher Manning, this is a must-take course for anyone interested in NLP. The course is well organized, well taught, and up-to-date with the latest NLP research. The assignments, while useful, can sometimes be frustrating as training NLP models takes time.

**6. Machine Learning by Coursera**

See course materials (free online course)

Originally taught at Stanford, Andrew Ng’s course is probably the most popular ML course. As of writing, its Coursera version has been enrolled by more 2.5M people. This course is theoretical, so students would benefit more from it after more practical courses such as CS231N, CS224N, and Practical Deep Learning for Coders.

**7. Probabilistic Graphical Models Specialization by Coursera**

Textbook: *Probabilistic Graphical Models: Principles and Techniques* by Daphne Koller and Nir Friedman

See course materials (free online courses)

Unlike most AI courses that introduce small concepts one by one or add one layer on top of another, this specialization tackles AI top down as it asks you to think about the relationships between different variables, how you represent those relationships, what independence you’re assuming, what exactly you’re trying to learn when you say machine learning. This specialization isn’t easy, but it’ll change the way you approach ML. You can also consult detailed notes written by Stanford CS228’s TAs here.

**8. Introduction to Reinforcement Learning by DeepMind**

Reinforcement learning is hard. This course provides a great introduction to RL with intuitive explanations and fun examples, taught by one of the world’s leading RL experts, David Silver.

**9. Full Stack Deep Learning Bootcamp**^{53}

Most courses only teach you how to train and tune your models. This is the first one I've seen that shows you how to design, train, and deploy models from A to Z. This is also a great resource for those struggling with the machine learning system design questions in interviews.

**10. How to Win a Data Science Competition: Learn from Top Kagglers by Coursera**

See course materials (free online course)

With all the knowledge we’ve learned, it’s time to head over to Kaggle to build some machine learning models to gain experience and win some money. Warning: Kaggle grandmasters might not necessarily be good instructors.

For even more online sources, kmario23 compiled a list of available online courses. David Venturi also aggregated reviews for popular courses. Emil Wallner posted his 12-month curriculum on How to learn Deep Learning.

^{51}:
The list was originally shared on Twitter. It’s since then been retweeted more than 2,000 times, including by MIT CSAIL (Computer Science and Artificial Intelligence Laboratory) and Stanford NLP (Natural Language Processing) groups.

^{52}:
Disclaimer: I gave a guest lecture in a version of this course in 2018, unpaid.

^{53}:
Disclaimer: I gave a guest lecture in a version of this course in 2019, unpaid.