---
comments: false
type: index
---

# Books

List of books and resources that may be worth reading.

## Papers

1. **The Humble Programmer**

   Edsger W. Dijkstra, 1972 ([paper](https://dl.acm.org/citation.cfm?id=361591))

## Programming

1. **Design Patterns: Elements of Reusable Object-Oriented Software**

   Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1994 ([amazon](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612))

1. **Clean Code: A Handbook of Agile Software Craftsmanship**

   Robert C. "Uncle Bob" Martin, 2008 ([amazon](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882))

1. **Code Complete: A Practical Handbook of Software Construction**, 2nd Edition

   Steve McConnell, 2004 ([amazon](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670))

1. **The Pragmatic Programmer: From Journeyman to Master**

   Andrew Hunt, David Thomas, 1999 ([amazon](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X))

1. **Working Effectively with Legacy Code**

   Michael Feathers, 2004 ([amazon](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052))

1. **Eloquent Ruby**

   Russ Olsen, 2011 ([amazon](https://www.amazon.com/Eloquent-Ruby-Addison-Wesley-Professional/dp/0321584104))

1. **Domain-Driven Design: Tackling Complexity in the Heart of Software**

   Eric Evans, 2003 ([amazon](https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215))

1. **How to Solve It: A New Aspect of Mathematical Method**

   Polya G. 1957 ([amazon](https://www.amazon.com/How-Solve-Mathematical-Princeton-Science/dp/069116407X))

1. **Software Creativity 2.0**

   Robert L. Glass, 2006 ([amazon](https://www.amazon.com/Software-Creativity-2-0-Robert-Glass/dp/0977213315))

1. **Object-Oriented Software Construction**

   Bertrand Meyer, 1997 ([amazon](https://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554))

1. **Refactoring: Improving the Design of Existing Code**

   Martin Fowler, Kent Beck, 1999 ([amazon](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672))

1. **Test Driven Development: By Example**

   Kent Beck, 2002 ([amazon](https://www.amazon.com/Test-Driven-Development-Kent-Beck/dp/0321146530))

1. **Algorithms in C++: Fundamentals, Data Structure, Sorting, Searching**

   Robert Sedgewick, 1990 ([amazon](https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882))

1. **Effective C++**

   Scott Mayers, 1996 ([amazon](https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876))

1. **Extreme Programming Explained: Embrace Change**

   Kent Beck, 1999 ([amazon](https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658))

1. **The Art of Computer Programming**

   Donald E. Knuth, 1997 ([amazon](https://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043))

1. **Writing Efficient Programs**

   Jon Louis Bentley, 1982 ([amazon](https://www.amazon.com/Writing-Efficient-Programs-Prentice-Hall-Software/dp/013970244X))

1. **The Mythical Man-Month: Essays on Software Engineering**

   Frederick Phillips Brooks, 1975 ([amazon](https://www.amazon.com/Mythical-Man-Month-Essays-Software-Engineering/dp/0201006502))

1. **Peopleware: Productive Projects and Teams** 3rd Edition

   Tom DeMarco, Tim Lister, 2013 ([amazon](https://www.amazon.com/Peopleware-Productive-Projects-Teams-3rd/dp/0321934113))

1. **Principles Of Software Engineering Management**

   Tom Gilb, 1988 ([amazon](https://www.amazon.com/Principles-Software-Engineering-Management-Gilb/dp/0201192462))

## Other

1. **Thinking, Fast and Slow**

   Daniel Kahneman, 2013 ([amazon](https://www.amazon.com/Thinking-Fast-Slow-Daniel-Kahneman/dp/0374533555))

1. **The Social Animal** 11th Edition

   Elliot Aronson, 2011 ([amazon](https://www.amazon.com/Social-Animal-Elliot-Aronson/dp/1429233419))

1. **Influence: Science and Practice** 5th Edition

   Robert B. Cialdini, 2008 ([amazon](https://www.amazon.com/Influence-Practice-Robert-B-Cialdini/dp/0205609996))

1. **Getting to Yes: Negotiating Agreement Without Giving In**

   Roger Fisher, William L. Ury, Bruce Patton, 2011 ([amazon](https://www.amazon.com/Getting-Yes-Negotiating-Agreement-Without/dp/0143118757))

1. **How to Win Friends & Influence People**

   Dale Carnegie, 1981 ([amazon](https://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034))
