Online Courses that I Recommend
My journey of learning from online courses started from 2013, and over the years I took a lot of them, abandoning even more along the way. Nevertheless, I've found online courses to be far more accommodating for self-study compared to traditional books.
In this post, I've compiled a list of courses that I found memorable, enjoyable, and, in retrospection, actually convey high-quality information. While the selection is undoubtedly biased towards my personal interests, I hope you find them useful as well.
Do note that some courses that I recommend below are not MOOCs, but instead university courses that happened to have lecture recordings, assignments, and other course material freely available from past offerings. As a result, you may need to do some extra digging to locate the course material.
Meta-Learning
- Learning How to Learn — "Learning how to learn" is an essential skill that I find people, including myself, quite lacking. Some people may consider this one offer pretty "obvious" advices. It is true that most actionable advices taught in this course are not new. However, I don't think it is right to dismiss the course as "common sense," for common senses are often contradictionary with each other. This course, instead, offers scientific validation for effective learning practices.
Math
Calculus
- Calculus: Single Variable by Robert Ghrist [part 1] [part 2] [part 3] [part 4] — A multi parts course on single variable calculus
- MIT OCW Multivariable Calculus as main course and things below as supports
- Calculus Blue — Again by Professor Ghrist. The matrix calculus perspective is refreshing, but the pace is too fast to use as a standalone material imo
- Khan Acedemy
Linear algebra
- MIT OCW Linear Algebra by Prof. Gilbert Strang as main course — If you spend some time doing online learning for math, it is likely you already heard the name of Prof. Strang.
- Essense of linear algebra by 3Blue1Brown
Discrete Math
- MIT OCW Mathematics for Computer Science
Computer Science and Programming
Intro
- Stanford CS106A, 106B, and 106L — These were course series that start my Computer Science Journey. The 2008 edition that I took was way too old and outdated, but there are newer versions of offering online.
Computer Graphics and GPU Programming
- CMU 15-462/662 Computer Graphics — Great intro to Computer Graphics. And even experienced folks can learn a lot here.
- CIS 5650 GPU Programming and Architecture — Project-oriented introduction of GPU programming in CUDA with a Computer Graphics flavor
- CS 87/287 | Rendering Algorithms — Mainly focus on offline rendering. Unlike most courses I recommended here, this one doesn't have lecture videos. Though following slides and doing homeworks are effective enough for me.
Programming Languages and Compilers
- Programming Languages by University of Washington [Part A] [Part B] [Part C] — A three part courses on programming languages. I find the content quite shallow compare to the undergrad PL course I took at university, but it serves a good introduction and Prof. Dan Grossman is enthuastic about the topics.
- CS 6120: Advanced Compilers by Cornell university — mainly talks about compiler optimization
System Programming
- CMU 15-213/15-513 Introduction to Computer Systems
- The CSAPP textbook used by this course is a classic. Though do note that there are some serious misinfo regarding C
- For years I thought signed-integer overflow has wrapping behavior in C because of this book
- The CSAPP textbook used by this course is a classic. Though do note that there are some serious misinfo regarding C
- Nand2Tetris — If you want a single survey course that covers from logic gate, computer architecture, assembly, and OS, then this is a course for you. Of course, it covers none of the topics in depth, but still an awesome course nonetheless.
Miscs
- The Missing Semester of Your CS Education — talks about the usage of various important tools for software engineering
Psychology
- Yale Introduction to Psychology — There is a new version by the same professor on Coursera
Physics
- Understanding Einstein: The Special Theory of Relativity by Stanford — A (very) qualitative intro to the special theory of relativity that I think is accessible even for folks without STEM background
Tips on finding good courses
My observation is that traditional university courses (such as the ones from MIT OCW) have higher quality on average than MOOCs. Unfornately, most university courses lack lecture videos, which I considered indispensity. On the other hand, while lecture videos are invaluable, courses relying solely on videos—a common occurrence on Youtube—are not enough. Prefer courses with a lot of supplementary materials and homework.
Another tip: for courses on platforms with reviews, take a moment to read the 1-star and 2-star ratings. While most of these reviews are nonsensical, if you notice consistent red flags, then maybe this is not the right course for you. This same approach can also be applied when assessing whether a book is worth reading.
Highly Regarded Courses that I don't recommend
Similar to university courses, the majority of online courses I've enrolled in have left much to be desired. Most were forgettable, filled with platitude and lacking information density. Below are a few that were particularly problematic that I can still remember now.
Social Psychology by Wesleyan University — Presented lots of exaggerated claims and falsified theories such as "video game causes violence." Also quoating controversial studies such as Stanford Prison and Milgram experiments. I guess this course can serve as a cautious tale of scientific progress and not everything your learn is true. Though since I took it in 2015, I am not sure if this course changes now.
Fundamentals of Music Theory By the University of Edinburgh — Rudimentary lectures followed by extremely hard quizzes that are impossible to complete without a lot of extra googling