--- layout: main title: textbook recommendations ---

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 free
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 free
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 free
Rice University

Calculus canonical dense
Michael Spivak
This is a rigorous treatment of calculus, suitable to a first year university course.

Introductory Proof

Book of Proof free
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) free
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 free
Sheldon Axler

Linear Algebra Done Wrong free
Sergei Treil

Linear Algebra
Kenneth Hoffman & Ray Kunze

I do not recommend Strang's linear algebra... out of spite, mostly

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 dense
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 dense
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 canonical
Walter Rudin

Complex Analysis

Complex Analysis canonical dense
Lars Ahlfors

Measure Theory

Real Analysis: Modern Techniques and Their Applications
Gerald B. Folland

Real & Complex Analysis dense
Walter Rudin

An Introduction to Measure Theory free
Terence Tao

Number Theory

An Introduction to the Theory of Numbers canonical
G. H. Hardy & Edward M. Wright

An Introduction to the Theory of Numbers canonical
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 canonical
Reinhard Diestel

Probability

No recommendations

Topology

Topology canonical
James R. Munkres

Algebraic Topology free
Allen Hatcher

Algebraic Geometry

Algebraic Geometry dense
Robin Hartshorne

Topos Theory

Sketches of an Elephant canonical dense
Peter Johnstone

Topoi: The Categorial Analysis of Logic free
Robert Goldblatt

Sheaves in Geometry and Logic
Saunders Mac Lane & Ieke Moerdijk

Category Theory

📖 Basic Category Theory free
Tom Leinster

📖 Category Theory
Steve Awodey

Categories for the Working Mathematician canonical
Saunders Mac Lane

Category Theory for Programmers free
Bartosz Milewski

Type Theory

✨ Homotopy Type Theory free canonical
The Institute for Advanced Study

Introduction

📕 How to Design Programs (HtDP) free canonical
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) free
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 free
Al Sweigart
For those who want to learn how to write scripts.

Compilers

📖 Compilers: Principles, Techniques, and Tools (The Dragon Book) canonical
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman

Programming Languages: Application and Interpretation (Second Edition) free
Shriram Krishnamurthi

Type Systems

✨ Types and Programming Languages canonical
Benjamin C. Pierce

Advanced Topics in Types and Programming Languages
Benjamin C. Pierce

Formal Methods

Software Foundations (browser versions) free canonical
Assorted Authors

Networking

The TCP/IP Guide free
Charles M. Kozierok

Beej's Guide to Network Programming free
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 canonical
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 canonical
Paul Horowitz & Winfield Hill

Cryptography

📖 Cryptopals Challenges free
NCC Group

Cryptohack Challenges free
hyperreality & jack

Introduction to Modern Cryptography canonical
Jonathan Katz & Yehuda Lindell

Software Engineering

Web Browser Engineering free
Pavel Panchekha & Chris Harrelson

Crafting Interpreters free
Robert Nystrom

Rust

📕 The Rust Programming Language free canonical
Steve Klabnik & Carol Nichols

Rust for Rustaceans
Jon Gjenset

The Rustonomicon free
Aria Desires

Rust Atomics & Locks free
Mara Bos

Lean

📖 Theorem Proving in Lean 4 free
Jeremy Avigad, Leonardo de Moura, Soonho Kong, Sebastian Ullrich

📖 Functional Programming in Lean free
David Thrane Christiansen

Agda

📖 Programming Language Foundations in Agda free
Philip Wadler, Wen Kokke, Jeremy G. Siek

HTMX

📖 Hypermedia Systems free
Carson Gross, Adam Stepinski, Deniz AkÅŸimÅŸek

Semantics & Pragmatics

Analyzing Meaning free
Paul R. Kroeger

✨ Invitation to Formal Semantics free canonical
Elizabeth Coppock & Lucas Champollion

Semantics in Generative Grammar canonical
Irene Heim & Angelika Kratzer

Intensional Semantics free
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 free canonical
Daniel Jurafsky & James H. Martin

Phonetics & Phonology

No recommendations