Textbooks
This is a collection of textbooks and other curriculums that I’ve had recommended to me, or ran into online, or just seem rather interesting. Many (most) of these I’ve not read, but do intend to. This page serves two purposes: as a bibliography, and in keeping track of my backlog.
The ones which I have read or am in the process of reading and found particularly wonderful are marked with a ✨. Works freely available online are marked with the free
tag. Works considered somewhat foundational or reference works are marked with the canonical
tag. Works that are notably more difficult than others in their category are marked with the dense
tag.
Elementary Algebra & Calculus
✨ Paul’s Online Math Notes
Paul Dawkins
In terms of pure reach, these might be the most popular math text in the age of the internet… their SEO is, surprisingly, well-matched by their quality of writing. I have fond memories of these being the go-to guide in high school calculus, and they’ve served me well in a few of my university courses, too.
CLP Calculus
University of British Columbia
These are put together by professors at the University of British Columbia for specifically the University of British Columbia’s combined engineering-mathematics calculus classes. They’re pretty standard, pretty good calculus textbooks with lots of practice problems.
OpenStax Mathematics
Rice University
Calculus
Michael Spivak
This is a rigorous treatment of calculus, suitable to a first year university course.
Introductory Proof
Book of Proof
Richard Hammack
How to Prove It: A Structured Approach
Daniel J. Velleman
Mathematical Proofs: A Transition to Advanced Mathematics
Gary Chartrand, Albert D. Polimeni, Ping Zhang
PLP: An introduction to mathematical proof
University of British Columbia
Linear Algebra
Interactive Linear Algebra (UBC version)
Georgia Tech
This textbook is rather fancy. It gives an excellent visual intuition for linear algebra by using interactive web animations to show transformations in 2D and 3D spaces. However, it does not cover terribly much: making no attempt to be rigorous or cover that not directly useful for engineering.
Finite-Dimensional Vector Spaces
Paul R. Halmos
Linear Algebra Done Right
Sheldon Axler
Linear Algebra Done Wrong
Sergei Treil
Linear Algebra
Kenneth Hoffman & Ray Kunze
Abstract Algebra
📖 Abstract Algebra
David S. Dummit & Richard M. Foote
This is as close to a canonical text for undergraduate algebra as it gets.
📖 Algebra: Chapter 0
Paolo Aluffi
A category-theoretic approach to algebra. Possibly best fit for a second course.
Undergraduate Algebra
Serge Lang
Algebra
Serge Lang
This is a reference work and not suitable for a course in algebra on its own, in the reviewer’s opinion. It presents clear propositions and proofs with few examples.
Algebra
Michael Artin
Abstract algebra with a distinct focus on how it relates to matrices. I have only briefly glanced at this text. It is perhaps notable that Lang (above) was Artin’s student, and wrote his work with Artin’s in mind.
An Introduction to the Theory of Groups
Joseph J. Rotman
Real Analysis
Analysis I
Terence Tao
Analysis II
Terence Tao
Principles of Mathematical Analysis
Walter Rudin
Complex Analysis
Complex Analysis
Lars Ahlfors
Measure Theory
Real Analysis: Modern Techniques and Their Applications
Gerald B. Folland
Real & Complex Analysis
Walter Rudin
An Introduction to Measure Theory
Terence Tao
Number Theory
An Introduction to the Theory of Numbers
G. H. Hardy & Edward M. Wright
An Introduction to the Theory of Numbers
Ivan Niven, Herbert S. Zuckerman, Hugh L. Montgomery
Elliptic Curves
Rational Points on Elliptic Curves
Joseph H. Silverman & John T. Tate
The Arithmetic of Elliptic Curves
Joseph H. Silverman
Advanced Topics in the Arithmetic of Elliptic Curves
Joseph H. Silverman
Graph Theory
A Walk Through Combinatorics
Miklos Bona
Graph Theory
Reinhard Diestel
Probability
No recommendations
Topology
Topology
James R. Munkres
Algebraic Topology
Allen Hatcher
Algebraic Geometry
Algebraic Geometry
Robin Hartshorne
Topos Theory
Sketches of an Elephant
Peter Johnstone
Topoi: The Categorial Analysis of Logic
Robert Goldblatt
Sheaves in Geometry and Logic
Saunders Mac Lane & Ieke Moerdijk
Category Theory
📖 Basic Category Theory
Tom Leinster
📖 Category Theory
Steve Awodey
Categories for the Working Mathematician
Saunders Mac Lane
Category Theory for Programmers
Bartosz Milewski
Type Theory
✨ Homotopy Type Theory
The Institute for Advanced Study
Introduction
📕 How to Design Programs (HtDP)
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
For those with no prior experience. An edX course is available.
Structure and Interpretation of Computer Programs (SICP, The Wizard Book)
Harold Abelson, Gerard Jay Sussman, Julie Sussman
For those with some prior experience. A public course website is available.
Automate the Boring Stuff with Python
Al Sweigart
For those who want to learn how to write scripts.
Compilers
📖 Compilers: Principles, Techniques, and Tools (The Dragon Book)
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
Programming Languages: Application and Interpretation (Second Edition)
Shriram Krishnamurthi
Type Systems
✨ Types and Programming Languages
Benjamin C. Pierce
Advanced Topics in Types and Programming Languages
Benjamin C. Pierce
Formal Methods
Software Foundations (browser versions)
Assorted Authors
Networking
The TCP/IP Guide
Charles M. Kozierok
Beej’s Guide to Network Programming
Beej
Algorithms
The Algorithm Design Manual, 3rd edition
Steven Skiena
A very modern text on algorithm design. It’s comprehensive and charmingly written.
The Art of Computer Programming
Donald Knuth
Introduction to Automata Theory, Languages, and Computation (The Cinderella Book)
John Hopcroft & Jeffrey Ullman
Operating Systems
Operating Systems Concepts (The Dinosaur Book)
Avi Silberschatz & James Peterson
Electronics
The Art of Electronics
Paul Horowitz & Winfield Hill
Cryptography
📖 Cryptopals Challenges
NCC Group
Cryptohack Challenges
hyperreality & jack
Introduction to Modern Cryptography
Jonathan Katz & Yehuda Lindell
Software Engineering
Web Browser Engineering
Pavel Panchekha & Chris Harrelson
Crafting Interpreters
Robert Nystrom
Rust
📕 The Rust Programming Language
Steve Klabnik & Carol Nichols
Rust for Rustaceans
Jon Gjenset
The Rustonomicon
Aria Desires
Rust Atomics & Locks
Mara Bos
Lean
📖 Theorem Proving in Lean 4
Jeremy Avigad, Leonardo de Moura, Soonho Kong, Sebastian Ullrich
📖 Functional Programming in Lean
David Thrane Christiansen
Agda
📖 Programming Language Foundations in Agda
Philip Wadler, Wen Kokke, Jeremy G. Siek
HTMX
📖 Hypermedia Systems
Carson Gross, Adam Stepinski, Deniz Akşimşek
Semantics & Pragmatics
Analyzing Meaning
Paul R. Kroeger
✨ Invitation to Formal Semantics
Elizabeth Coppock & Lucas Champollion
Semantics in Generative Grammar
Irene Heim & Angelika Kratzer
Intensional Semantics
Kai von Fintel & Irene Heim
The 2011 edition is standard. A newer edition is available on GitHub.
Syntax & Morphology
📕 An Introduction to Syntactic Analysis and Theory
Dominique Sportiche, Hilda Koopman, Edward Stabler
Syntax: A Generative Introduction
Andrew Carnie
I do not recommend this book. It gets many small and large things wrong.
Computational Linguistics
Speech and Language Processing, Third Edition
Daniel Jurafsky & James H. Martin
Phonetics & Phonology
No recommendations