This is a record of some of the lecture series I’ve gone through and found particularly valueable. You’ll notice that my background is in physics and mathematics, where the level of the lectures tends to be a bit more advanced. In all other subjects, I am very much self-taught or an amateur at best, so those resources will be more accessible to all levels. This of course doesn’t mean they can’t also be enjoyed by more the technically knowledgeable! Maybe you’ll find something you like, in which case, have fun!
Haskell for concurrent programming (Bartosz Milewski): Invaluable lectures by the inimitable Bartosz Milewski. He is a bit of an idiosyncratic teacher, but once you get used to his style and become a follower of the church of Milewski, you will devour every bit of content he puts out. While the title seems to put a lot of emphasis on concurrency, it is more like a very accessible introduction to Haskell, its semantics and design.
Introduction to algorithms (Steven Skiena): Excellent lectures on algorithms and computational complexity. The man is a great instructor, and it serves as a great companion to the textbook he wrote. These lectures are at a pretty basic level, but it was pretty mindblowing and cool to finally be able to follow along when people are comparing hashmap implementations.
Introduction to cryptography (Christof Paar): Another introductory-level university course, but equally excellent as the Skiena course above. It treats all the big hitters in crypto algorithms, as well as introduce the (bare minimum of) mathematics needed to understand the underlying mechanics. Expect to learn about DES, AES, RSA, Diffie-Hellman, modular arithmetic, Galois fields, elliptic curves and the discrete log problem. Afterwards, feel satisfied when you click on the little padlock in you browser and can finally say you understand that cryptic (get it?) protocol descriptor:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 128 bit keys, TLS1.2
Structure and Interpretation of Computer Programs (Sussman and Abelson): Until a decade ago, this course, along with its textbook, was used to introduce programming concepts to MIT student. I’ve somewhat cheated with this one, and haven’t read along with the text (which is also freely available online!!) or done the exercises. I mostly just absorbed the lectures for the sheer pleasure of the presentation. (The terminal! The synth Bach chorale!)
Category theory for programmers I, II and III (Bartosz Milewski): Another extremely well paced course by Milewski, this time more on the theoretical side. It is divided up into three semester courses. The first one introduces most of the basic concepts to build on: categories, epi- and monomorphisms, monoids, functors, and finishes off with the (unjustly) infamous monad. The next two semesters go into much deeper depth on some advanced topics, Ends, Coends, Yoneda embedding, F-Algebras. Basically, stuff you would only ever see when browsing the Haskell package repository. All of it is consistently well explained and motivated, with excercises in Haskell, but also in C++. An absolute gem. Milewski also publishes the notes to these lectures on his blog (which have just recently been published as a book as well).
Quantum Field Theory (Sidney Coleman): The video quality on this one is pretty atrocious (what did you expect from a recording from the 70s?), but a chance to hear Sidney Coleman introduce a field that he single-handedly advanced is such dramatic ways is too good to pass up on! Tremendously insightful lectures. And, let’s be honest, seeing Coleman go through what seem like multiple packs of cigarettes in a university lecture is hilarious given the current Western mores.
Basics of classical harmony and counterpoint (Seth Monahan): An excellent collection of easily digestible lectures. I used them as extra reference while studying from Kostka & Payne, and they were the perfect supplement. Monahan manages to illustrate harmony and counterpoint concepts with really well chosen examples that make it much easier to put, for example, different voice leadings or cadeneces, into context.
Listening to Music (Craig Wright): Fairly basic lectures, but they tought me so much about classical form and harmony when I was first diving into classical music.
The Unanswered Question (Leonard Bernstein): This series is a televised recording of Lenny’s inaugeral lectures when he was granted the Norton professorship at Harvard. They’re often referred to simply as his “Norton Lectures”, and they’re nothing short of life-changing. They are a sort of walk through history, from pre-Classical up to the modern, atonal era as espoused by the second Viennese school, tied together by his toy theory of “musical linguistics”.1 Every lecture he goes through several compositions to illustrate the points he tries to make, and usually ends up discussing one piece in depth, including a recorded performance of the piece. Would recommend to anyone who has the slightest interest in Western classical music, or music in general.
History of Ancient Philosophy (Adam Rosenfeld): Really great and accessible introduction to classical philosophy, from the Presocratics up to the later Roman Stoic philosophers. There are reading assignments that go with each lecture, and I highly reccommend doing those so you can fully engage with the arguments being made. Rosenfeld has a knack for bringing some of these arguments alive, and gets you to engage with these authors in a very dynamic way. Absolutely recommend.
History of Modern Philosophy (Adam Rosenfeld): The follow-up course to the Ancient Philosophy course, and perhaps even more interesting! The course picks out a couple of key figures in the enlightenment period, roughly from Descartes to Kant. What’s really cool about this series is how the first half works through the entire period looking at the metaphysics and epistemology that was developed in this period, up till Kant. Then, he winds back to the beginning, and looks at the Political philosophy and Ethical theories that were developed in the same timeframe, sometimes finding fascinating connections between the two.
Which I’m less convinced by ↩