As software developers we constantly need to keep up with the latest technology to keep ourselves marketable. Unfortunately we are sometimes so busy keeping up with the new stuff coming out of Redmond that I fear we are not spending enough time learning the craft of software development. Here is a list of non-technology books that I think every serious developer should at some stage read to become better at writing quality software. As software development is a team discipline the list includes some books that highlight how to create and be part of effective software development teams:
- Agile Principles, Patterns and Practices in C#. Robert C. Martin: If you can only read one book out of the list, this is my number one.
- Patterns of Enterprise Application Architecture. Martin Fowler: Great read for getting into enterprise application architecture.
- Domain Driven Design: Tackling complexity in the heart of software. Eric Evans. Also see the shortened e-book provided by InfoQ.
- Applying Domain Driven Design and Patterns: With Examples in C# and .NET. Jimmy Nillson.
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd Edition. Craig Larman
- Refactoring. Martin Fowler
- Refactoring to Patterns. Joshua Kerievsky: A better way to learning OO patterns may be to start with existing code smells and refactor these using OO patterns.
- Code Complete, 2nd Edition. Steve McConnell: Every thing on crafting quality software.
- Framework Design Guidelines. Krzystof Cwalina, Brad Abrams: The book may be specific to the .NET framework but still contains a lot of excellent guidelines for any framework type of development. Also see the 2nd Edition.
- Pragmatic unit testing in C# using NUnit, 2nd Edition. Andy Hunt: The nice thing about all the Pragmatic Programmers books are that they are short and to the point. Also see the excellent Art of Unit Testing by Roy Osherove.
- Peopleware: Productive Projects and Teams, 2nd Edition. Tom DeMarco and Timothy Lister: 20 years old but oh still so relevant.
- The Mythical Man-Month: Essays on Software Engineering, 20 anniversary edition. Frederick P. Brooks
- Designing Interfaces. Jenifer Tidwell: My favourite book on designing user interfaces
- Working Effectively with Legacy Code. Michael C. Feathers.
- xUnit Test Patterns: Refactoring Test Code. Gerard Meszaros.
- The Art of Agile Development. James Shore.
- Software Configuration Management Patterns. Steve Berczuk and Brad Appleton.
- Release It! Design and Deploy Production-Ready Software. Michael T. Nygard: Another Pragmatic Bookshelf gem.


0 comments:
Post a Comment