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!)