SICP Structure and Interpretation of Computer Programs
The textbook by Harold Abelson and Gerald Jay Sussman (1985, second edition 1996). Course book for MIT's 6.001. Known as the wizard book after its cover.
It isn't about Scheme; it uses Scheme to get away with minimal syntax: abstraction, higher-order functions, data abstraction, state and time, streams, a metacircular evaluator (a Lisp interpreter written in Lisp) and finally a register machine with a compiler. MIT replaced the course in 2008 with a Python-based one, arguing that programming today is more about combining libraries you don't fully understand than building everything from the ground up. A JavaScript edition arrived in 2022. The book is freely available online.