Recommended Book List

I'm sometimes asked to recommend books, particulary on C and Unix. To make life easier, I've listed here, the better books from my bookshelf.

Select the book title to find out more details about the book. If you follow the links to buy a book then I will earn commision.

Unix

Advanced Programming in the UNIX Environment and Unix Network Programming (Vol 1) by Richard Stevens are an excellent buy for any Unix programmer. They're packed with information and examples.

I've used System Performance Tuning only once but it was well worth the money. I was asked to look at performance problems on a Unix system. I bought the book, spent a day or so reading it, half a day perfoming some tests and sucessfully diagnosed the problem. What more could I ask?

I've found Sed and Awk by Dale Dougherty to be very useful for finding that tricky little feature of sed or awk. This must be my most-borrowed book.

I also make use of:

C

The C Programming Language (2nd Edition) by Kernighan and Ritchie is ideal for novice or expert. I have only one C book. I don' think there's any need for another.

C++

C++ is adifficult language to learn; I have not found a book which does this well. You just have to read what you can and persevere.

Effective C++: 50 Specific Ways to Improve Your Programs and Designs (Professional Computing S.) is intended for those who are already familiar with C++ but is an easy read. It shows how to write better C++. Every C++ programmer should have a copy.

The STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library (Professional Computing S.) has a very good description of the C++ Standard Template Library (STL). It has an example for every point it makes, which makes it a little long but very easy to read.

I also make use of:

Networking

Computer Networks (International Edition) by Andrew S. Tanenbaum was probably first networking book I bought; sometime in the early eighties. It takes a structured approach to describing networking concepts using the 7 layer model as a basis.

I also make use of:

Web Design

You may be able to learn HTML by examining the source code of other peoples web pages. But, if you want to do the more complex things like frames and forms then you will need help. HTML and XHTML: The Definitive Guide is the book I use. I also find the HTML and CSS specifications useful.

I have a few books about Java. Java in a Nutshell is, by far, the most useful. It has a lot of information in it for its size. However, it is only suitable for experienced programmers.

Using J2EE introduces every J2EE topic. This is an ideal introduction to J2EE.

I also make use of:

Miscellaneous

The Mythical Man Month is an easy read yet very enlightening. Everyone involved in software engineering should read this book.

I was introduced to the Yourdon methods in the early 90s. I found them a very easy way to understand and describe systems. Modern Structured Analysis defines the method very well. It is very hard to get hold of though.

Home