friendwave
largely based on
teachyourselfcs.com
grokking algorithms
the algorithm design manual
computer systems: a programmer’s perspective
structure and interpretation of computer programs
crafting interpreters
operating systems: three easy pieces
nand2tetris
use the index, luke
database design and relational theory or
database design for mere mortals
readings in database systems
computer networking: a top-down approach
designing data-intensive applications
design patterns: elements of reusable object-oriented software
refactoring: ruby edition
domain-driven design: tackling complexity in the heart of software
patterns of enterprise application architecture