CompSci
Take a look at [teachyourselfcs.com](https://teachyourselfcs.com/)
**Scheme & Common lisp**
- The Little Schemer - Introduction to Scheme and functional programming in general
- Practical Common Lisp - Introduction to CL with several examples of practical use
- Common Lisp Recipes
**Programming**
- Structure and Interpretation of Computer Programs (hard)
- Concepts, Techniques, and Models of Computer Programming (harder)
- Elements of Programming (math, hard but very rewarding)
**Computer Architecture**
- Code: The Hidden Language of Computer Hardware and Software
- But how Do it Know? The Basic Principles of Computers for Everyone
- The Elements of Computing Systems
**Operating systems**
- Operating System Concepts 10th ed (the “Dinosaur book”)
- Operating Systems: Design and Implementation (Tanenbaum)
- Modern Operating Systems (Tanenbaum)
- Operating Systems: Three Easy Pieces
- The Design and Implementation of the FreeBSD Operating System
**Databases**
- Architecture of a Database System (Hellerstein, Stonebraker, Hamilton)
- Readings in Database Systems (databases Red Book)
- Database Management Systems (R.R.)
- Data and Reality (w kent)
**Data Structures & Algorithms**
- See elswhere on this site. [link](https://tom.kucar.org/learn/comp/references/algos.md.html)
**Distributed Systems**
- Distributed Systems (Tanenbaum, Steen)
- Designing Data-Intensive Applications (Kleppmann)
- [Distributed Systems Reading Group](http://dsrg.pdos.csail.mit.edu/papers/)
**Mathematics**
- discrete mathematics www.cs.elte.hu/~lovasz/dmbook.ps
- Mathematics for Computer Science [link](https://courses.csail.mit.edu/6.042/spring17/mcs.pdf)
- Introduction to Linear Algebra, Fifth Edition
- Esence of Linear algebra (3blue2brown)
- more math [link](https://tom.kucar.org/learn/core/math.html)
**Compilers/Interpreters**
- Crafting Interpreters
- Let's Build a Compiler, by Jack Crenshaw
- A Nanopass Framework for Compiler Education
- Language Implementation Patterns (less theory-ey version of dragon book)
- LLVM Tutorial
- Programming Languages: Application and Interpretation
- Compilers: Principles, Techniques & Tools (the dragon book) (skim/cherry-pick!)