Awesome
Most influential books for programmers
These are books considered most influential for programmers from this StackOverflow thread.
Table of contents
<!--ts-->
- Why on Github?
- Original thread
- Influential Books List (by topic)
- Algorithms
- Design and Refactoring
- Developer Best Practices
- Driven Designs
- Experiance Transfer
- History and Culture
- JUnit
- Language/Environment Specific
- Personal Development
- Philosophy
- Scheme
- Software Project Management
- Theories and Fundamentals of Computer Systems
- UI/UX
- Web Applications and Publishing
- Z: Singles/Uncategorized
Why on Github?
Cause SO is cathedral, Github is bazzar ;)
Long answer: I frequently visit above thread. Over the time, such an active thread is closed, links to book sites are removed and I have to copy/paste/search everytime I go there. I am afraid they might remove it entirely.
So, the list is preserved here :)
Original thread
What is the single most influential book every programmer should read?
If you could go back in time and tell yourself to read a specific book at the beginning of your career as a developer, which book would it be?
I expect this list to be varied and to cover a wide range of things.
Influential Books List (by topic)
Algorithms
- Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
- The Art of Computer Programming by Donald Knuth
Design and Refactoring
- Introduction to Functional Programming by Richard Bird
- Design Patterns by the Gang of Four
- Refactoring: Improving the Design of Existing Code by Martin Fowler
- Programming Pearls by Jon Bentley
- Working Effectively with Legacy Code by Michael C. Feathers
- Patterns of Enterprise Application Architecture by Martin Fowler
- Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
- Object-Oriented Analysis and Design with Applications by Grady Booch
- Object Thinking by Dr. David West
- Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce
- Refactoring to Patterns by Joshua Kerievsky
- About Face - The Essentials of Interaction Design by Alan Cooper
- Framework Design Guidelines by Brad Abrams
Developer Best Practices
- Code Complete (2nd edition) by Steve McConnell
- The Pragmatic Programmer by Andrew Hunt and David Thomas
- Structure and Interpretation of Computer Programs by Sussman and Abelson (free pdf)
- Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
- Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt
- The Practice of Programming by Kernighan and Pike
- Writing Solid Code by Steve Maguire
- Agile Principles, Patterns, and Practices in C# by Robert C. Martin
- No Bugs! by David Thielen
- The Productive Programmer by Neil Ford
Driven Designs
- Test-Driven Development: By Example by Kent Beck (free PDF)
- Domain Driven Designs by Eric Evans
Experiance Transfer
- Coders at Work by Peter Seibel
- The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
- Masterminds of Programming by Federico Biancuzzi
- Best Software Writing I by Joel Spolsky
History and Culture
- The Art of Unix Programming by Eric S. Raymond
- The Annotated Turing by Charles Petzold
- Masters of Doom by David Kushner
- The Art of Deception by Kevin Mitnick
- The Art of Intrusion by Kevin D. Mitnick, William L. Simon
- The Soul of a New Machine by Tracy Kidder
- Hackers: Heroes of the Computer Revolution by Steven Levy (free ebook)
JUnit
- JUnit in Action by Petar Tahchiev
Language/Environment Specific
- The C Programming Language by Brian Kernighan and Dennis Ritchie
- Computer Graphics: Principles and Practice in C (2nd Edition) by Foley, Dam, Feiner, Hughes
- Effective C++ by Scott Meyers
- More Effective C++ by Scott Meyers
- Modern C++ Design by Andrei Alexandrescu
- The C++ Programming Language (3rd edition) by Stroustrup
- Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas
- CLR via C# by Jeffrey Richter
- Design Patterns in C# by Steve Metsker
- Effective Java 2nd edition by Joshua Bloch
- Thinking in Java by Bruce Eckel
- JavaScript - The Good Parts by Douglas Crockford
- Why's (Poignant) Guide to Ruby by why the lucky stiff (free PDF)
- Smalltalk-80: The Language and its Implementation by Adele Goldberg
- Advanced Programming in the UNIX Environment by W. Richard Stevens
- Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp by Peter Norvig (free ebook)
Personal Development
- Algorithms to Live By by Brian Christian
- Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
- Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
- The Passionate Programmer by Chad Fowler
Philosophy
- Computational Beauty of Nature by Gary William Flake
- Hackers and Painters: Big Ideas from the Computer Age by Paul Graham
- The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper
- The Elements of Computing Systems by Noam Nisan and Shimon Schocken(free ebook)
- The Tao of Programming by Geoffrey James (free ebook)
- The Timeless Way of Building by Christopher Alexander
- Things That Make Us Smart by Donald Norman
- The Tao Te Ching by Lao-tzu
Scheme
- The Little Schemer by Matthias Felleisen and Daniel P. Friedman
- The Seasoned Schemer by Matthias Felleisen and Daniel P. Friedman
- How To Solve It by George Polya (free PDF)
Software Project Management
- The Mythical Man Month by Fred Brooks
- Peopleware by Demarco and Lister
- Software Estimation: Demystifying the Black Art(https://www.oreilly.com/library/view/software-estimation-demystifying/0735605351/)) by Steve McConnel
- The Deadline: A Novel About Project Management by Tom DeMarco
- Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
UI/UX
- Don't Make Me Think by Steve Krug
Theories and Fundamentals of Computer Systems
- Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
- Foundations of Programming by Karl Seguin (free PDF)
- Modern Operating Systems by Andrew S. Tanenbaum
- Computer Systems - A Programmer's Perspective by Bryant and O'Hallaron
- Computability by N. J. Cutland
- CODE by Charles Petzold
- Algorithms + Data Structures = Programs by Niklaus Wirth (free PDF)
Web Applications and Publishing
- Getting Real by 37 Signals (free PDF])
- Philip and Alex's Guide to Web Publishing (free ebook)
Singles/Uncategorized
- Gödel, Escher, Bach by Douglas Hofstadter
- Surely You're Joking, Mr. Feynman! by Richard Feynman
- The Design of Everyday Things by Donald Norman
- Writing Secure Code (2nd Edition) by Michael Howard