Learning resources
The internet is full of resources to learn almost anything. In particular, a lot of books, course notes and other resources used by universities are available publicly, for free.
This page hopes to gather a bunch those useful, free resources, so they may be useful for anyone who wants them.
There’s also some more stuff in the spanish version of the page, if you speak (or rather, read) the language.
Math
New York University
Signal processing theory
A book on digital signal processing (that is, discrete in time). It’s mostly theoretical, but also has some more practical Python examples. Assumes basic knowledge of algebra and geometry, but it includes pretty much all you need in the appendix.
Internet
3Blue1Brown
An extremely good math YouTube channel, with videos covering a wide variety of topics. Its focus is on explaining concepts in an approachable, clear manner, without getting bogged down in calculations.
Computer Science
University of Texas at Dallas
Data Structures and Introduction to Algorithmic Analysis
A basic, mostly theoretical course on Data Structures (lists, stacks, queues, tables, heaps, trees…), algorithms (inserting, removing, sorting…) and their analysis (asymptotic and amortized). It expects you to know basic algebra, and there’s a short review of what you need in the first lecture.
The lectures are on the top navigation bar!
University of Utah
Prof. Matthew Flatt has material available for courses he teaches here. I link to some specific ones I’ve checked out.
Networking and Security
Has videos recorded by Prof. Matthew Flatt, and the slides used in them.
Programming Languages
A Programming Languages course, done in the Shplait languge. Assumes knowledge of data structures and, in general, knowing how to program. Covers interpreters, functions (and first-class functions), mutability, compilation, objects and classes, types and macros.
Has videos recorded by Prof. Matthew Flatt, and the slides used in them.
Northeastern University
Prof. Benjamin Lerner publishes the notes for his courses here. I link to some specific ones I’ve checked out.
Compiler Design
Covers the implementation of efficient compilers, using Ocaml. Assumes knowledge of prgramming languages, and of programming in C.
Internet
Programming Languages: Application and Interpretation
A very good free book on programming languages, used as a base for courses in a lot of universities.
Ray Tracing in One Weekend
Three books on ray tracing. They guide you on building a rendered from scratch. Very easy to follow along, using any programming language you’d like.