The Algorithm Design Manual
The Elements of Computing Systems: Building a Modern Computer from First Principles
Code: The Hidden Language of Computer Hardware and Software
The Pragmatic Programmer: From Journeyman to Master
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)
Design Patterns: Elements of Reusable Object-Oriented Software
Grokking Algorithms: An illustrated guide for programmers and other curious people
How to Solve It: A New Aspect of Mathematical Method (Princeton Science Library)
Introduction to Algorithms, 3rd Edition (The MIT Press)
The Little Typer (The MIT Press)