While books are valuable resources, the best learning comes from understanding fundamentals and building real things. This is just a complement to hands-on experience.

Books

Distributed systems

  • Designing Data-Intensive Applications
  • Database Internals

Math

  • Statistics Without Tears

Programming

  • Tidy First?
  • Refactoring

Papers

Distributed systems

  • Lamport, L. (1978). Time, Clocks, and the Ordering of Events in a Distributed System
  • Brewer, E. (2000). Towards Robust Distributed Systems

Databases

  • The Google File System
  • Dynamo: Amazon’s Highly Available Key-value Store