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.