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.


  1. Operating System Concepts
  2. Modern Operating Systems


  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


  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


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


  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


  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


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