The Art of Unix Programming by Eric Raymond is a book about the history and culture of Unix programming from its earliest days in 1969 to now, covering both genetic derivations such as BSD and conceptual ones such as Linux.
You should read this book if you are an experienced Unix programmer who is often in the position of either educating novice programmers or debating partisans of other operating systems, and you find it hard to articulate the benefits of the Unix approach.
You should read this book if you are a C, C++, or Java programmer with experience on other operating systems and you are about to start a Unix-based project.
You should read this book if you are a Unix user with novice-level up to middle-level skills in the operating system, but little development experience, and want to learn how to design software effectively under Unix.
You can read HTML version of "The Art of Unix Programming" online at Eric's website.