Quantcast
Channel: OneOfSix - design patterns
Viewing all articles
Browse latest Browse all 2

Books to hone your craft...

$
0
0

Despite my previous posting, I am a technical book nut.  I have dozens of 'em on my shelf at home and have brought a few to work.  I estimate that over the past five years I've probably spent about $1,500 - $2,000 on various technical books and magazines covering all manner of topics.

However, my favorites focus on best practices for software development.  Here are a few of my picks with links to Amazon.ca where they can be found:

The Pragmatic Programmer:  From Journeyman to Master

The authors of this book are well-known old hands at the game of software development and have amassed a considerable amount of what I find is often in short supply for most software projects:  common sense.  This book reads very easily with plenty of examples to illustrate their concise and cogent pragmatic principles.

The Mythical Man-Month

A must-read for anyone in the software business, from developers to project managers.  This book is like The Art of War for software.  Written in 1975 by the “father of the IBM System/360”, Fredrick P. Brooks, The Mythical Man-Month is a review of some of the worst practices in software projects and how to avoid them.  Like Sun Tzu, Brooks lays out his canvas with broad stroke chapters like “The Tart Pit”, “The Mythical Man Month” and “No Silver Bullet”.  Central to the thesis of the book is the deflation of a common measurement of effort for software projects that persists to this day: “the man-month”.

My favourite premise in the book is Brook's Law: “Adding manpower to a late software project makes it later.”  I've experienced this first-hand.  Too bad no-one on my team had read this book.

Refactoring:  Improving the Design of Existing Code

This book is such a cornerstone of modern computer science that I cannot imagine any CompSci student graduating and not having read it.  It's a sad fact that many have not.  Refactoring is an essential skill that takes time to develop, and is often grounded in instincts about code that the author, Martin Fowler, refers to as “code smells”.  For me, I know code smells when my skin crawls looking at the disorganized chaos of some poorly written classes and methods.  Refactoring is a common-sense guide that shows you how to apply over 35 different “refactorings” to clean up code and make it more robust.  This is a must-have.

Test Driven Development in Microsoft.Net

I am a huge proponent of constant integration and testing during the software development life cycle and the tools that make it all possible.  Central to the concept of writing test code first is a framework to run it in, and that is NUnit.  This book is written by the guys who ported Kent Beck's seminal testing framework, JUnit to the .NET world and have perhaps the best understanding of how to use test driven development in .NET projects.

If you already have a lot of experience using NUnit or Test Driven Development, there's nothing in this book you won't already know.  But even then, it's a great book to have on the shelf to loan out to other colleagues to get them “test infected”.  Think of it as one of those “pay it forward” situations...

C# Design Patterns: A Tutorial
Another book that every developer should have is the the Gang of Four book on design patterns.  It's a bit esoteric today, with examples in C++, so I suggest the C# equivalent.  This book isn't superlative, but it does cover off all the major patterns with some good examples.  I often like to juxtapose the patterns from the book with examples on the Data & Object Factory site.

Patterns are important to software developers, as it is the codification of a principle that originated in building architecture that observed there are common traits in how one approaches solving problems with the construction of buildings.  So too with software.  Another MUST HAVE!


Viewing all articles
Browse latest Browse all 2

Trending Articles