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.

  1. Computer Organization and Design MIPS Edition
  2. Computer Architecture: A Quantitative Approach

2. Operating Systems

This can be basic Operating system fundamentals or a little higher level of abstraction - Linux/BSD Operating system design.

Basics

  1. Operating System Concepts
  2. Modern Operating Systems

Linux/BSD

  1. The Design of the UNIX Operating System
  2. Lions’ Commentary on Linux
  3. The Design and Implementation of the FreeBSD Operating System

3. Components within OS - Stacks

Networking

  1. Computer Networking: A Top-Down Approach
  2. Unix Network Programming - Volume #1 and Volume #2
  3. High Performance Browser Networking - a hands-on overview of what every web developer needs to know

Databases

  1. Introductory - Database Management Systems
  2. Advanced - Transaction Processing: Concepts and Techniques

Compilers

  1. Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages
  2. Advanced Compiler Design and Implementation
  3. Compilers: Principles, Techniques, and Tools

4. Algorithms & Logic

Algorithms

  1. Introduction to Algorithms - CLRS
  2. The Algorithm Design Manual

Programming Language Theory

  1. Structure and Interpretation of Computer Programs
  2. Intermediate - How to Design Programs
  3. 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

  1. teachyourselfcs.com - Great reference for video courses, materials, references
  2. My 100 Favorite Programming, Computer and Science Books - by catonmat
  3. CS Prep Guide