This is a collection of papers and books that have been useful to the Data Platform team at Twitter, as well as a collection put together by Peter Seibel here.
Many of these papers are available for free online; I welcome pull requests to update links to papers, or of course to add new papers and books.
Content generally presented in alphabetical order by subject and title.
Space/time trade-offs in hash coding with allowable errors by Bloom
Bit Weaving by Jignesh
Efficiently Compiling Efficient Query Plans for Modern Hardware by Neumann
Parallel Database System by David DeWitt and Jim Gray
Fast Discovery of Association Rules by Rakesh Agrawal
Mining association rules between sets of items in large databases by Rakesh Agrawal
Applicative programming with effects
Theorems for Free by Wadler
Hyper Log Log by Flajolet
Birds and Frogs by Freeman Dyson
Scalable Component Abstractions by Odersky
Model-Checking Multi-Threaded Distributed Java Programs by Scott Stoller
Data Structures and Algorithms by Aho, Hopcroft, Ullman
Introduction to Algorithms ("CLRS”) by Cormen, Leiserson, Rivest, and Stein
Programming Pearls by Bentley
The Art of Computer Programming by Knuth
The C Programming Language (“K&R”) by Kernighan and Ritchie
C: A Reference Manual (“H&S”) by Harbison and Steele
Category Theory by Steve Awodey
Conceptual Mathematics by Lawvere
The Phantom Tollbooth by Norton Juster
An Introduction to Database Systems by Date
Database Management Systems by Ramakrishnan and Gehrke
Transaction Processing: Concepts and Techniques by Gray and Reuter
Code Complete by McConnell
Design Patterns ("Gang of Four”) by Gamma, Johnson, Helm, Vlissides]
How to Design Programs ("HtDP”) by Felleisen, Findler, Flatt, and Krishnamurthi
Object-Oriented Software Construction ("OOSC”) by Meyer
Purely Functional Data Structures by Okasaki
Common Lisp the Language ("CLTL”) by Steele
Common Lisp the Language ("CLTL2”) by Steele
Lisp 1.5 Manual by McCarthy
Lisp in Small Pieces ("LiSP”) by Queinnec
Paradigms of Artificial Intelligence Programming ("PAIP”) by Norvig
Structure and Interpretation of Computer Programs ("SICP”) by Abelson and Sussman
The Art of the Metaobject Protocol ("AMOP”) by Kiczales
AI: A Modern Approach by Norvig
Neural Networks for Pattern Recognition by Bishop
Pattern Classification by Duda, et al
Mythical Man Month by Brooks
Peopleware by DeMarco and Lister
Mathematics: Its Content, Methods and Meaning by Aleksandrov
Concepts, Techniques, and Models of Computer Programming by Van-Roy
The Practice of Programming by Kernighan and Pike
Higher Order Perl by Dominus
Programming Perl ("Camel Book”) by Wall, Schwartz, and Christiansen
Lambda Calculi With Types by Berendregt
Types and Programming Languages by Pierce
Programming Ruby ("Pickaxe Book”) by Thomas
Smalltalk-80: The Language by Golgberg
Smalltalk-80: The Language and its Implementation by Golgberg and Robson
Compilers: Principles, Techniques, and Tools ("Dragon Book”) by Ullman, Aho, Lam, and Sethi
Modern Operating Systems by Tannenbaum
TCP/IP Illustrated vols. I-III by Stevens
- Vol 1: The Protocols
- Vol 2: The Implementation
- Vol 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols
Advanced Programming in the Unix Environment by Stevens
The Unix Programming Environment by Kernighan and Pike
Unix Network Programming by Stevens
On Writing Well by Zinsser
Style: Lessons in Clarity and Grace by Joseph Williams