Annotated Course Anthology

Dustin Zubke
4 min readApr 13, 2021

The thing I like most about working in machine learning is the breadth of things to learn. I love taking online courses. Below is the list of courses I’ve taken as of April 2021 with some notes on each of them. But, first, here is a sequence of courses I could suggest for anyone trying to transition into machine learning:

Suggested sequence if starting with no coding or cloud experience:

  1. Machine Learning by Andrew Ng on Coursera
  2. The Complete SQL Bootcamp by Jose Portilla on Udemy
  3. Data Engineering, Big Data, and Machine Learning on GCP Specialization
  4. Algorithms Specialization (courses 1 & 2) by Tim Roughgarden on Coursera
  5. Deep Learning Specialization by Deeplearning.ai on Coursera
  6. Algorithms Specialization (courses 3 & 4) by Tim Roughgarden on Coursera

If you have coding, SQL, and/or cloud computing experience, you could skip right to the (1) Machine Learning course and the (5) Deep Learning specialization.

Be aware that doing all of these courses above (~17 in total) will probably take you a year or so. I split up the algorithms course because the first two are more relevant for coding interviews.

Now for the full course descriptions.

Machine Learning: Andrew Ng at Stanford

  • THE introductory course to machine learning.
  • You use octave, which is a programming language will never use again. Luckily, it’s a pretty easy language to use if you have some introduction to programming.
  • The course provides a very broad overview of traditional machine learning approaches as well as newer neural networks, which are very widely used today.
  • This is a good course to start with because not all ML engineers or data scientists need to or should be using neural networks. Many traditional ML algorithms can be very effective and easier be use.

SQL Bootcamp

  • Good overview of SQL
  • A pretty light course

Data Engineering and ML with Google Cloud

  • Great introduction to Google Cloud and Cloud Computing generally.
  • Very general course and you may never use all of the topics and tools covered, yet it is good to know they exist.
  • Also has a decent amount of SQL when using BigQuery, a Google data analytics and datastore tool.

Deep Learning: Andrew Ng and Deeplearning.ai

  • Essential course if working with neural networks, which are very common in ML systems today.
  • The course provides a good introduction to fully-connected neural networks, convolutional neural networks (CNN’s) which are the basis of many image recognition systems and recurrent neural networks (RNN’s) which are very common in language processing and sequential prediction tasks.
  • The course (as of April 2021) was recently updated with new contently.
  • Also has essential material on structuring machine learning projects and methods for performing error analysis that are very helpful when you get stuck.
  • Uses python and numpy for programming assignments, which often implement the networks from scratch providing a great understanding of how the networks work under the hood.

Tensorflow Developer: Laurence Moroney with DeepLearning.ai

  • Good intro specialization to “Tensorflow” (you only use the high-level Keras API, which is fine for an intro course). Keras ends up being fairly similar to Pytorch, so learning Keras is generally a good skill to have and will help you pick up other ML libraries like Pytorch.
  • Provides a good overview of ML models.
  • Fairly light on videos and heavier on programming assignments.
  • Not an essential intro course, but still worthwhile.
  • Coursera has three specializations on Tensorflow taught by Laurence (of which this specalization is the first), so if you’d like to learn tensorflow, these three (2 and 3) specializations are a good sequence. The second course focuses on deploying models which is really cool, and the third course gets more into the nitty-gritty the lower-level tensorflow API.

Natural Language Processing (NLP): Younes Mourri and Lukasz Kaiser with DeepLearning.ai

  • A really fantastic set of courses in NLP.
  • It starts with the earlier probabilistic models used in NLP and goes through recurrent neural networks and onto the state-of-the-art Transformer architecture.
  • This course is very detailed and takes a while to complete. You come away with a strong understanding of NLP but that comes with a price. The course is very well-taught but just takes time, especially the homework assignments.
  • The course uses the Trax python library, which is a lesser-known ML library built and used by Google Brain. One of the really valuable parts of this course is getting to read through the Trax source code. It is very well-written and easy to understand. Reading how an ML library like Trax is written has been helpful in understanding how other libraries like Pytorch Lighting or Facebook AI’s Sequence-to-Sequence library are written as they all use similar abstractions.
  • Don’t start with this specialization. Do the Deep Learning Specialization first.

Algorithms by Tim Roughgarden on Coursera

  • This is a really helpful course for passing code interviews.
  • I failed several coding interviews and decided to take this specialization to help pass them. As a perk, the specialization also provides a really great foundation in algorithm design and run-time analysis.
  • This has been one of the most rewarding courses I have taken as I feel that I think differently after taking the course. I think more like a computer scientist.

Reinforcement Learning: by Martha and Adam White on Coursera.

  • I’m current about half-way through this specialization.
  • In addition to the video lectures and programming assignments, the course has reading from a textbook made by the same research group people. The additional textbook reading provides a stronger foundation in RL.
  • Seems like a really great intro to RL.

In addition to the courses above, there have been two books that have been really valuable:

Linux command line

  • As crazy as it sounds to ready a big book on Linux, you will thank yourself for doing so.
  • You may or may not live in the command line but I think there are a lot of benefits to doing so. I live in the command line.
  • This book will make you much more comfortable with the command line and with the Linux operating system, which is very often what you will use to train and deploy production ML models.
  • If reading isn’t your thing, there are many good courses on Linux.

Pragmatic Programmer

--

--

Dustin Zubke

Off-Grid Correspondent for PV Magazine. Currently in Uganda.