/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.

Table of contents


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

  1. Introduction to Algorithms by Cormen, Leiserson, Rivest & Stein
  2. The Art of Computer Programming by Donald Knuth

Design and Refactoring

  1. Introduction to Functional Programming by Richard Bird
  2. Design Patterns by the Gang of Four
  3. Refactoring: Improving the Design of Existing Code by Martin Fowler
  4. Programming Pearls by Jon Bentley
  5. Working Effectively with Legacy Code by Michael C. Feathers
  6. Patterns of Enterprise Application Architecture by Martin Fowler
  7. Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
  8. Object-Oriented Analysis and Design with Applications by Grady Booch
  9. Object Thinking by Dr. David West
  10. Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce
  11. Refactoring to Patterns by Joshua Kerievsky
  12. About Face - The Essentials of Interaction Design by Alan Cooper
  13. Framework Design Guidelines by Brad Abrams

Developer Best Practices

  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. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
  5. Practices of an Agile Developer by Venkat Subramaniam and Andy Hunt
  6. The Practice of Programming by Kernighan and Pike
  7. Writing Solid Code by Steve Maguire
  8. Agile Principles, Patterns, and Practices in C# by Robert C. Martin
  9. No Bugs! by David Thielen
  10. The Productive Programmer by Neil Ford

Driven Designs

  1. Test-Driven Development: By Example by Kent Beck (free PDF)
  2. Domain Driven Designs by Eric Evans

Experiance Transfer

  1. Coders at Work by Peter Seibel
  2. The Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
  3. Masterminds of Programming by Federico Biancuzzi
  4. Best Software Writing I by Joel Spolsky

History and Culture

  1. The Art of Unix Programming by Eric S. Raymond
  2. The Annotated Turing by Charles Petzold
  3. Masters of Doom by David Kushner
  4. The Art of Deception by Kevin Mitnick
  5. The Art of Intrusion by Kevin D. Mitnick, William L. Simon
  6. The Soul of a New Machine by Tracy Kidder
  7. Hackers: Heroes of the Computer Revolution by Steven Levy (free ebook)

JUnit

  1. JUnit in Action by Petar Tahchiev

Language/Environment Specific

  1. The C Programming Language by Brian Kernighan and Dennis Ritchie
  2. Computer Graphics: Principles and Practice in C (2nd Edition) by Foley, Dam, Feiner, Hughes
  3. Effective C++ by Scott Meyers
  4. More Effective C++ by Scott Meyers
  5. Modern C++ Design by Andrei Alexandrescu
  6. The C++ Programming Language (3rd edition) by Stroustrup
  7. Pragmatic Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas
  8. CLR via C# by Jeffrey Richter
  9. Design Patterns in C# by Steve Metsker
  10. Effective Java 2nd edition by Joshua Bloch
  11. Thinking in Java by Bruce Eckel
  12. JavaScript - The Good Parts by Douglas Crockford
  13. Why's (Poignant) Guide to Ruby by why the lucky stiff (free PDF)
  14. Smalltalk-80: The Language and its Implementation by Adele Goldberg
  15. Advanced Programming in the UNIX Environment by W. Richard Stevens
  16. Paradigms of Artificial Intelligence Programming: Case studies in Common Lisp by Peter Norvig (free ebook)

Personal Development

  1. Algorithms to Live By by Brian Christian
  2. Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt
  3. Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig
  4. The Passionate Programmer by Chad Fowler

Philosophy

  1. Computational Beauty of Nature by Gary William Flake
  2. Hackers and Painters: Big Ideas from the Computer Age by Paul Graham
  3. The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper
  4. The Elements of Computing Systems by Noam Nisan and Shimon Schocken(free ebook)
  5. The Tao of Programming by Geoffrey James (free ebook)
  6. The Timeless Way of Building by Christopher Alexander
  7. Things That Make Us Smart by Donald Norman
  8. The Tao Te Ching by Lao-tzu

Scheme

  1. The Little Schemer by Matthias Felleisen and Daniel P. Friedman
  2. The Seasoned Schemer by Matthias Felleisen and Daniel P. Friedman
  3. How To Solve It by George Polya (free PDF)

Software Project Management

  1. The Mythical Man Month by Fred Brooks
  2. Peopleware by Demarco and Lister
  3. Software Estimation: Demystifying the Black Art(https://www.oreilly.com/library/view/software-estimation-demystifying/0735605351/)) by Steve McConnel
  4. The Deadline: A Novel About Project Management by Tom DeMarco
  5. Here Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky

UI/UX

  1. Don't Make Me Think by Steve Krug

Theories and Fundamentals of Computer Systems

  1. Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
  2. Foundations of Programming by Karl Seguin (free PDF)
  3. Modern Operating Systems by Andrew S. Tanenbaum
  4. Computer Systems - A Programmer's Perspective by Bryant and O'Hallaron
  5. Computability by N. J. Cutland
  6. CODE by Charles Petzold
  7. Algorithms + Data Structures = Programs by Niklaus Wirth (free PDF)

Web Applications and Publishing

  1. Getting Real by 37 Signals (free PDF])
  2. Philip and Alex's Guide to Web Publishing (free ebook)

Singles/Uncategorized

  1. Gödel, Escher, Bach by Douglas Hofstadter
  2. Surely You're Joking, Mr. Feynman! by Richard Feynman
  3. The Design of Everyday Things by Donald Norman
  4. Writing Secure Code (2nd Edition) by Michael Howard