StackOverflow is a question and answer community for programmers. Users can ask questions and then vote on the best answers. Back in 2009, someone asked: “What is the single most influential book every programmer should read?” The result is a crowdsourced list of the best books on programming in general, rather than a list of books about particular programming languages (for the most part).
The books with the most votes are:
- Code Complete (2nd Ed) by Steve McConnell.
- The Pragmatic Programmer by Andrew Hunt and David Thomas.
- Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman and Julie Sussman.
- The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.
- Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein.
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts.
- Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides.
- The Mythical Man-Month by Fredrick P. Brooks, Jr.
- The Art of Computer Programming by Donald E. Knuth.
- Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman.
There were a couple of books not directly related to programming that received a large number of upvotes: Zen and the Art of Motorcycle Maintainance, Robert Pirsig’s classic meditation on quality, and Gödel, Escher, Bach, Douglas Hofstadter’s epic study of recursion.
For another classic read on self-education for programmers check out Peter Norvig’s Teach Yourself Programming in Ten Years.
Photo by totalAldo