Skip to content

A collection of useful papers, books, and links for the refined programmer

Notifications You must be signed in to change notification settings

jcoveney/resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

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.

Papers

Algorithms and Data Structures

Space/time trade-offs in hash coding with allowable errors by Bloom

Databases

ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging by Mohan

Bit Weaving by Jignesh

Efficiently Compiling Efficient Query Plans for Modern Hardware by Neumann

Parallel Database System by David DeWitt and Jim Gray

Data Mining

Fast Discovery of Association Rules by Rakesh Agrawal

Mining association rules between sets of items in large databases by Rakesh Agrawal

Functional Programming

Applicative programming with effects

Theorems for Free by Wadler

Machine Learning

Hyper Log Log by Flajolet

Organizations

Birds and Frogs by Freeman Dyson

Scala

Scalable Component Abstractions by Odersky

Theorem Proving and Model Checking

Model-Checking Multi-Threaded Distributed Java Programs by Scott Stoller

Books

Algorithms and Data Structures

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

C

The C Programming Language (“K&R”) by Kernighan and Ritchie

C: A Reference Manual (“H&S”) by Harbison and Steele

Category Theory

Category Theory by Steve Awodey

Conceptual Mathematics by Lawvere

Children

The Phantom Tollbooth by Norton Juster

Databases

An Introduction to Database Systems by Date

Database Management Systems by Ramakrishnan and Gehrke

Transaction Processing: Concepts and Techniques by Gray and Reuter

Design

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

Functional Programming

Purely Functional Data Structures by Okasaki

Lisp

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

Machine Learning

AI: A Modern Approach by Norvig

Neural Networks for Pattern Recognition by Bishop

Pattern Classification by Duda, et al

Management

Mythical Man Month by Brooks

Peopleware by DeMarco and Lister

Math

Mathematics: Its Content, Methods and Meaning by Aleksandrov

Misc

Concepts, Techniques, and Models of Computer Programming by Van-Roy

The Practice of Programming by Kernighan and Pike

Perl

Higher Order Perl by Dominus

Programming Perl ("Camel Book”) by Wall, Schwartz, and Christiansen

Programming Languages

Lambda Calculi With Types by Berendregt

Types and Programming Languages by Pierce

Ruby

Programming Ruby ("Pickaxe Book”) by Thomas

Smalltalk

Smalltalk-80: The Language by Golgberg

Smalltalk-80: The Language and its Implementation by Golgberg and Robson

Systems programming

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

  1. Vol 1: The Protocols
  2. Vol 2: The Implementation
  3. Vol 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols

Unix

Advanced Programming in the Unix Environment by Stevens

The Unix Programming Environment by Kernighan and Pike

Unix Network Programming by Stevens

Writing

On Writing Well by Zinsser

Style: Lessons in Clarity and Grace by Joseph Williams

Blogs

http://vanillajava.blogspot.com/

About

A collection of useful papers, books, and links for the refined programmer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published