Everything I recommend below is free to the public!

Here is a community-run learning resource for preparing for Udacity’s Deep Learning Foundations Nanodegree. It includes a link to all of the projects for the DLFND, plus a ton of other links to learning resources students have found helpful.

Some notable links from that spreadsheet:

  • Machine Learning from Coursera. Andrew Ng’s classic introduction to machine learning modeled after the course he designed while at Stanford. This course helped establish the MOOC model as a legitimate educational resource.1
  • cs231n. A course from Stanford developed by Andrej Karpathy introducing students to deep learning through computer vision.
  • cs224n. Similar to cs231n, but focuses on natural language processing. Designed by Chris Manning and Richard Socher.
  • Machine Learning at Oxford. An introduction designed by Nando de Freitas that provides clear explanations of many concepts in deep learning. It’s a bit old, but it’s a classic. Note: the assignments use the Lua version of Torch, which is no longer under active development. Use PyTorch instead!
  • fast.ai. Developed by Jeremy Howard and Rachel Thomas, this course introduces you to deep learning without any advanced mathematical experience like linear algebra, statistics, or multivariable calculus. Only requires basic familiarity with Python.

Requirements for studying machine learning

There are review materials for each of these skills in the Google Spreadsheet linked at the beginning of this document.

  • Programming experience in an applicable language (usually in Python or R, but others work too)
  • Basic algebra (mostly high school level)
  • Basic statistics terminology
  • Some bits of calculus: understanding what a derivative/partial derivative is and the chain rule.
  • Linear algebra

Note that fast.ai only requires the first two skills above.

How I started

When I began learning about machine learning, I had already taken all the math I needed and had some (very) basic programming experience in Python and R. Following this path, it took me about eight to ten months of self-studying outside of work to become competitive as a data science/machine learning candidate. YMMV!

  1. Machine Learning from Coursera while working on my research2
  2. cs231n and Kaggle competitions
  3. David Silver’s RL course with Denny Britz’s accompanying exercises
  4. Udacity’s Artificial Intelligence Nanodegree
  5. Berkeley’s Deep RL course
  6. Reading a ton of papers throughout the process


1: See Origins of the Modern MOOC for more.
2: AMIA publication and repo.