Preloader

Essential books that every programmer should read


Thomas Ptacek recommends these 13 books:

The Algorithm Design Manual: Steven S S. Skiena: 9788184898651

favorite

C Programming Language, 2nd Edition (8601410794231): Brian W. Kernighan, Dennis M. Ritchie: Books

favorite

Design Patterns: Elements of Reusable Object-Oriented Software: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch: 8601419047741

favorite

Programming Pearls (2nd Edition): Jon Bentley: 0785342657883

favorite

Modern C++ Design: Generic Programming and Design Patterns Applied (0785342704310): Andrei Alexandrescu: Books

favorite

Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library (9780201749625): Scott Meyers: Books

favorite

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition): Frederick P. Brooks Jr.: 8580001065793

favorite

Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science): Harold Abelson, Gerald Jay Sussman, Julie Sussman: 9780262510875

favorite

Compilers: Principles, Techniques, and Tools (2nd Edition): Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman: 9780321486813

favorite

The Art of Computer Programming, Volumes 1-4A Boxed Set: 8580001170602: Computer Science Books @ Amazon.com

favorite

Peopleware: Productive Projects and Teams (3rd Edition): Tom DeMarco, Tim Lister: 8601404401510

favorite

Lisp in Small Pieces: Christian Queinnec: 9780521545662

favorite

The Practice of Programming (Addison-Wesley Professional Computing Series): 9780201615869: Computer Science Books @ Amazon.com

favorite

Thomas Ptacek says,

Principal - Latacora

Of the books on that list, the ones I think you could call legitimately essential are: SICP -- K&R -- CLR[1] -- Design Patterns -- Mythical Mammoth -- TAOCP -- Compilers (Dragon Book) -- Effective C++[2] -- Programming Pearls -- Peopleware -- Little Schemer[3] -- Modern C++ Design -- The Practice of Programming[4].

[1] ... except I'd recommend Skiena instead of CLR. [2] ... except I'd recommend Effective STL over any other Meyer book, and I also wouldn't concede that C++ is essential. [3] ... except I'd recommend Lisp In Small Pieces, which I know is a totally different book, but do you need it and SICP? [4] ... but only to someone new to programming.

To that list I might add: On Lisp -- Javascript: The Good Parts -- Pattern Oriented Software Design #2[1] -- Computation Structures -- Computer Architecture (Hennesy and Patterson) -- C Interfaces and Implementations -- The Visual Display Of Quantitative Information -- Windows Internals[2].

[1] ... this book was wildly* ahead of its time and is no doubt overlooked because of it's patterns-y enterprise-y marketing.*

[2] ... 10 years ago I'd have recommended The Magic Garden but, even though I'd rather eat a bug than use a WinAPI system full time, it's hard for me to argue that Unix kernel design is as relevant now as the Windows kernel --- and, more importantly, there's no Unix book that does as good a job as Russinovich on the Intel architecture.

Want to see someone's reading list here? Send us an email to collectoral@guesswork.co