CS Book List
Nov 24, 2018
#books, #computer #science
Here I present to you the Maslow’s Hierarchy of (Computer) Knowledge with book references that I collected from various sources.
Be curious. Read widely. Try new things. What people call intelligence just boils down to curiosity - Aaron Swartz
1. Hardware (H/W) - The fundamentals.
2. Operating Systems
This can be basic Operating system fundamentals or a little higher level of abstraction - Linux/BSD Operating system design.
Basics
Linux/BSD
- The Design of the UNIX Operating System
- Lions’ Commentary on Linux
- The Design and Implementation of the FreeBSD Operating System
3. Components within OS - Stacks
Networking
- Computer Networking: A Top-Down Approach
- Unix Network Programming - Volume #1 and Volume #2
- High Performance Browser Networking - a hands-on overview of what every web developer needs to know
Databases
- Introductory - Database Management Systems
- Advanced - Transaction Processing: Concepts and Techniques
Compilers
- Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages
- Advanced Compiler Design and Implementation
- Compilers: Principles, Techniques, and Tools
4. Algorithms & Logic
Algorithms
Programming Language Theory
- Structure and Interpretation of Computer Programs
- Intermediate - How to Design Programs
- Advanced - Concepts, Techniques, and Models of Computer Programming
Mathematics for CS
Yet to find out
5. Writing Great Code
Entry-Level Engineer
- The Art of Computer Programming
- Introduction to Algorithms - [Also referenced above]
- Clean Code
- Version Control with Git
- Head First Design Patterns
- Design Patterns: Elements of Reusable Code
- Test-Driven Development
- Dependency Injection (in Java) - Guice, Spring and Dagger
Mid-Level Engineer
- Domain Driven Design
- Refactoring
- Working Effectively with Legacy Code
- Foundations of Security
- Agile Testing
- Don’t Make Me Think
- Software Project Survival Guide
Senior Engineer
- CODE: Hidden Language of Computer Hardware and Software
- Beautiful Design
- Java Concurrency
- Programming Pearls
- NoSQL Distilled
- Rocket Surgery Made Easy
- Crucial Conversations
- The Senior Software Engineer
Principal Engineer
- Communications of the ACM
- Beautiful Design
- Pragmatic Programmer
- Code Complete
- Software Systems Architecture
- All Software is Legacy
- Building Secure Software
- Success Through Failure: The Paradox of Design
- Mythical Man Month
Resouces
- teachyourselfcs.com - Great reference for video courses, materials, references
- My 100 Favorite Programming, Computer and Science Books - by catonmat
- CS Prep Guide