The Art of Unix Programming by EricRaymond
ISBN 013142901-9 From the preface: This book has a lot of knowledge in it, but it is mainly about expertise. It is going to try to teach you the things about Unix development that Unix experts know, but aren't aware that they know. It is therefore less about technicalia and more about shared culture than most Unix books - both explicit and implicit culture, both conscious and unconscious traditions. It is not a 'how-to' book, it is a 'why-to' book.
The book starts with 17 design rules. They are all good, though some are not practiced as often in Unix as the author might like. Chapters 4-17 describe a wide variety of design techniques and give examples. There are a huge number of examples in this section. Most of it seems pattern-like, chapter 11 describes some UI patterns.
This is an outstanding book. It is destined to be a classic in the field of software design.
-- RalphJohnson
More information, and a browsable online copy, is at http://www.catb.org/~esr/writings/taoup/.
I found it very interesting that the preface mentions DesignPatterns (Eric considered calling it Unix Design Patterns.) Also, I realized one reason why ExtremeProgramming appeals so much to me - it has similarities with the Unix philosophy. -- JamesStansell
A quote from chapter one:
I was pretty disillusioned after going from dos->windows->unix. It turned out unix programmers just aren't that sought for, not compared to windows. It made me realize that there was something going on other than what operating system or software was the best. From that point on I was a true american.
JoelSpolsky wrote an interesting review at http://www.joelonsoftware.com/articles/Biculturalism.html
See GreatSoftwareBooks, DesignStyleAndCreativityBookList CategoryOnlineBook