This is a great book all around. The discussions of patterns are very useful for stretching the mind to think about software in new ways. It is important to get us software developers out of our normal modes of thinking to keep our minds fresh, and the kind of thinking it engenders often helps us write much better software.