Foundational Texts
What follows are key texts that every OOP developer should read, without exception, regardless of experience or platform. The order of the list is the order that I suggest reading them. These texts focus mainly on writing better, maintainable code with a transition to solid object oriented design.
- Code Complete, 2nd Ed. by Steve McConnell
- Refactoring by Martin Fowler
- Refactoring Workbook by William Wake
- Applying UML and Patterns, 3rd Ed. by Craig Larman along with a companion text of UML Distilled, 3rd Ed. by Martin Fowler
- Object-Oriented Design Heuristics by Arthur Riel
Apprenticeship Texts
These texts help one move from focusing on the code to seeing the implementation from a higher viewpoint and improving the integrity of the project as a whole.
- The Pragmatic Programmer by Andrew Hunt
- Patterns of Enterprise Application Architecture by Martin Fowler
- Test-Driven Development by Kent Beck
- Refactoring to Patterns by Joshua Kerievsky
- Head First Design Patterns by the Freemans and a companion text of the gang of four's classic work, Design Patterns, for post-read reference
Journeyman Texts
These texts move towards more "putting it all together," wrangling the software development process, and getting into the "science" behind computer science.
- The Mythical Man-Month by Frederick Brooks
- User Stories Applied by Mike Cohn
- Agile Software Development or Agile Principles, Patterns, and Practices in C# by Robert Martin
- Applying Domain-Driven Design and Patterns by Jimmy Nilsson
- Rapid Development by Steve McConnell
- Extreme Programming Explained, 2nd Ed. by Kent Beck and/or Agile Project Management with Scrum by Ken Schwaber
- Introduction to Algorithms by Thomas Cormen
The Beginnings of Mastery
These texts help hone your skills along with improving the efficiency and effectiveness of your team.
- Domain Driven Design by Eric Evans
- Working Effectively with Legacy Code by Michael Feathers
- Agile Estimating and Planning by Mike Cohn
- Lean Software Development by Poppendiecks and their companion text, Implementing Lean Software Development
Mastery Texts
Although not to be seen as compulsory as the above texts, what follows will assist in taking you into the realm of pure computer science. At the very least, they serve to demonstrate that our work has solid foundations in quantitative science.
- The Art of Computer Programming, Volume 1: Fundamental Algorithms, 3rd Ed. by Donald Knuth along with volumes 2, 3, 4 (and its derivative works)
- Concrete Mathematics: A Foundation for Computer Science, 2nd Ed. also by Donal Knuth
沒有留言:
張貼留言