The books that really shaped my understanding of CS are:
- Theoretical CS:
- Compilers: Principles, Techniques, and Tools (The
Dragon Book)
- Introduction to the Theory of Computation, Sipser
- Programming:
- Java Concurrency In Practice, Brian Goetz
- Generics in the Java Programming Language, Gilad Bracha
- Professor Frisby's Mostly Adequate Guide to Functional
Programming
- Unix for Poets
- Modern C++
- Theoretical CS: - Compilers: Principles, Techniques, and Tools (The Dragon Book) - Introduction to the Theory of Computation, Sipser
- Programming: - Java Concurrency In Practice, Brian Goetz - Generics in the Java Programming Language, Gilad Bracha - Professor Frisby's Mostly Adequate Guide to Functional Programming - Unix for Poets - Modern C++