/influential-cs-books

Most influential books on Computer Science/programming

OtherNOASSERTION

Most influential books for programmers

These are books considered most influential for programmers from this StackOverflow thread.

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 :)

Influential Books List

  1. Code Complete (2nd edition) by Steve McConnell
  2. The Pragmatic Programmer by Andrew Hunt and David Thomas
  3. Structure and Interpretation of Computer Programs by Sussman and Abelson (free pdf)
  4. The C Programming Language by Brian Kernighan and Dennis Ritchie
  5. Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
  6. Design Patterns by the Gang of Four
  7. Refactoring: Improving the Design of Existing Code by Martin Fowler
  8. The Mythical Man Month by Fred Brooks
  9. The Art of Computer Programming by Donald Knuth
  10. Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
  11. Gödel, Escher, Bach by Douglas Hofstadter
  12. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
  13. Effective C++ by Scott Meyers
  14. More Effective C++ by Scott Meyers
  15. CODE by Charles Petzold
  16. Programming Pearls by Jon Bentley
  17. Working Effectively with Legacy Code by Michael C. Feathers
  18. Peopleware by Demarco and Lister
  19. Coders at Work by Peter Seibel
  20. Surely You're Joking, Mr. Feynman! by Richard Feynman
  21. Effective Java 2nd edition by Joshua Bloch
  22. Patterns of Enterprise Application Architecture by Martin Fowler
  23. The Little Schemer by Matthias Felleisen and Daniel P. Friedman
  24. The Seasoned Schemer by Matthias Felleisen and Daniel P. Friedman
  25. Why's (Poignant) Guide to Ruby by why the lucky stiff (free PDF)
  26. The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper
  27. The Art of Unix Programming by Eric S. Raymond
  28. Test-Driven Development: By Example by Kent Beck (free PDF)
  29. Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt
  30. Don't Make Me Think by Steve Krug
  31. Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
  32. Domain Driven Designs by Eric Evans
  33. The Design of Everyday Things by Donald Norman
  34. Modern C++ Design by Andrei Alexandrescu
  35. Best Software Writing I by Joel Spolsky
  36. The Practice of Programming by Kernighan and Pike
  37. Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
  38. Software Estimation: Demystifying the Black Art by Steve McConnel
  39. The Passionate Programmer by Chad Fowler
  40. Hackers: Heroes of the Computer Revolution by Steven Levy (free ebook)
  41. Algorithms + Data Structures = Programs by Niklaus Wirth (free PDF)
  42. Writing Solid Code by Steve Maguire
  43. JavaScript - The Good Parts by Douglas Crockford
  44. Getting Real by 37 Signals (free PDF)
  45. Foundations of Programming by Karl Seguin (free PDF)
  46. Computer Graphics: Principles and Practice in C (2nd Edition) by Foley, Dam, Feiner, Hughes
  47. Thinking in Java by Bruce Eckel
  48. The Elements of Computing Systems by Noam Nisan and Shimon Schocken(free ebook)
  49. Refactoring to Patterns by Joshua Kerievsky
  50. Modern Operating Systems by Andrew S. Tanenbaum
  51. The Annotated Turing by Charles Petzold
  52. Things That Make Us Smart by Donald Norman
  53. The Timeless Way of Building by Christopher Alexander
  54. The Deadline: A Novel About Project Management by Tom DeMarco
  55. The C++ Programming Language (3rd edition) by Stroustrup
  56. Computer Systems - A Programmer's Perspective by Bryant and O'Hallaron
  57. Agile Principles, Patterns, and Practices in C# by Robert C. Martin
  58. Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce
  59. Framework Design Guidelines by Brad Abrams
  60. Object Thinking by Dr. David West
  61. Advanced Programming in the UNIX Environment by W. Richard Stevens
  62. Hackers and Painters: Big Ideas from the Computer Age by Paul Graham
  63. The Soul of a New Machine by Tracy Kidder
  64. CLR via C# by Jeffrey Richter
  65. Design Patterns in C# by Steve Metsker
  66. Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
  67. About Face - The Essentials of Interaction Design by Alan Cooper
  68. Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
  69. The Tao of Programming by Geoffrey James (free ebook)
  70. Computational Beauty of Nature by Gary William Flake
  71. Philip and Alex's Guide to Web Publishing (free ebook)
  72. Object-Oriented Analysis and Design with Applications by Grady Booch
  73. Computability by N. J. Cutland
  74. Masterminds of Programming by Federico Biancuzzi
  75. The Tao Te Ching by Lao-tzu
  76. The Productive Programmer by Neil Ford
  77. The Art of Deception by Kevin Mitnick
  78. The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
  79. Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp by Peter Norvig (free ebook)
  80. Masters of Doom by David Kushner
  81. Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas
  82. How To Solve It by George Polya (free PDF)
  83. Smalltalk-80: The Language and its Implementation by Adele Goldberg
  84. Writing Secure Code (2nd Edition) by Michael Howard
  85. Introduction to Functional Programming by Richard Bird
  86. No Bugs! by David Thielen
  87. JUnit in Action by Petar Tahchiev
  88. Algorithms to Live By by Brian Christian

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.