Back to Bill's home page

Bill's Booklist.

I love looking at people's bookshelves; it gives an insight into the person and their beliefs. Here are some of the books on my bookshelves, with a few comments. Have a browse; maybe there will be something that inspires you.

Computing Books

Enough Rope to Shoot Yourself in the Foot

This is one of my favourite books. It contains a list of 161 rules for C and C++ programming. I don't agree with all of them; I guess I agree with about 60percent However there is no doubt in my mind that virtually every rule gives food for thought.

Standard C

If one is programming C seriously then one needs a serious book on the subject. When I was first learning C I used the company's copy of K&R II (Kernighan & Richie, 2nd Edition). When it came time to get a personal book (after changing companies) I chose to go with Plauger, to get a slightly different outlook. The book suites me nicely (I use it quite frequently) but one day I will probably get around to buying K&R too,

And when the question is too deep even for a reference like this then there is always Google

Code Complete

Interesting general reading. Again I agree with quite a lot but disagree quite strongly about some elements. I might advise just borrowing it to read it, except that you might itch to scribble in the margins. Although I liked it, it didn't inspire me so much that I felt a need to read his other books.

The C++ Programming Language (2nd edition)

This kept me going during the period when I didn't really have time to learn C++. It is quite dry, but that suits my taste in textbooks. I now have the later edition which is useful since this is quite out-of-date. However this will be a useful hostory book, I am sure,

The C++ Programming Language (Special Edition)

This is currently my newest acquisition, seeing as how I am now going to have to learn C++ properly. So much has changed between the second edition and this. Nowing my luck I will probably find that quite a lot that has changed between this edition and what is now current (to say nothing of the differences between the Standard and what Microsoft chooses to implement and let people get away with). It looks good so far; I have had little difficulty in finding the answers I need so far. When time permits maybe I'll also get to read it as a book rather than purely a reference.

Advanced Programming in the UNIX Environment

They are correct; there is no doubt in my mind. This is an essential text for anyone programming seriously in Unix and Linux. Many have already expressed their sorrow at losing such a great light to the Unix community; I have to agree with them, even though I only discovered his work after his death. This book shows how a thorough text book should look. It was financially worthwhile if only for the correct initialisation of System V semaphores which it yields, and it has shown me many more treasures since. Unfortunately with the rapid growth of Linux, and the way it is wandering away from historical Unix in places, this text is beginning to show its age. However the majority of it should remain useful.

UNIX Network Programming 2nd Ed. Volume 1

Again this is regarded as essential reading, but I confess that I haven't really done so properly yet. From what I have skimmed it seems nice and thorough and I am inclined to trust Stevens more than many other authors.

UNIX Network Programming 2nd Ed. Volume 2

Again this is regarded as essential reading, but I confess that I haven't really done so properly yet. From what I have skimmed it seems nice and thorough and I am inclined to trust Stevens more than many other authors.

Beginning Linux Programming: 2nd Ed

This is currently my main Linux text; the one in which I scribble notes and cross-references and staple in additional notes. One major missing feature, to my way of thinking, is any discussion of creating shared libraries, so that I cannot recommend this as an only text for Linux C programming. However I don't regret having bought it.

Linux Programming by Example

This was my first Linux Programming book. I still turn to it frequently; it served me well when I was just starting. I would class this as a good intermediate level book. It is probably enough for many, but if you are going to do things thoroghly you are going to need a few others.

Linux Programming Unleashed

I picked this one up cheap (75 percent off) at the local grocery store. It's useful but I don't know that I would have bothered if it was full price. There is, not surprisingly, common text with Wall's Linux Programming by Example.

Algorithms in C: 3rd Ed, Parts 1-4

Serious programmers are supposed to have some fundamental books, so they say. So I decided I ought to get some algorithm books after almost 20 years in the industry. Of course the Knuth set is probably the ultimate in algorithm books but I decided to go with something a little cheaper. So far I have one of the four and I must admit I don't actually use it. From what I remember it is a reasonable text and I certainly reckong programmers ought to learn the early stuff such as the fundamentals of algorithms and data structures. If you have never studied this stuff then I could recommend this book, but if you have already done algorithms I wouldn't bother.

Programming Windows: 5th Ed.

If you are going to program specifically for Microsoft Windows in C (or C++) then I would recommend Petzold. (If you want a laugh and you get the chance try comparing the 1st edition and the 5th). The thing that I like about Petzold is that he uses small examples to investigate specific areas of Windows, rather like Stevens does in APUE. This is great for teaching understanding. If you simply want a cookbook to throw something together then don't bother with this; get one of those yellow books. However if you are serious then you wil lprobably enjoy this.

Since most of my work has been on Linux recently I must admit that this copy is not well-thumbed, but I have certainly used other copies extensively in the past.

Red Hat Linux 7.1 Secrets

I bought this because I find it easier to skim through a book than work through the Linux HOWTOS. The fact that it was by Naba Barkakti helped sell it; my previous experience of his work was reasonable. The problem, of course, is that the Linux world is changing so rapidly currently that it is difficult to get an up-to-date text. This book has served me well through Red Hat 7.1, 7.2, 7.3 and 8. However it serves primarily as a grounding; I still find it useful to go to the RedHat manuals and the HOWTOS.

Software Maintenance: Concepts and Practice

A nice little book, certainly worth reading if you come across it

Tog on Software Design

I can only assume I wasn't concentrating on the day I bought this. It's nice but it isn't what I thought. The book looks at the changing design of how we interact with software, based upon the Starfire project. It links in rather nicely with for example the interface design in Disclosure (the book rather than the film) and in Minority Report. It's certainly looking quite a way into the future but it appears to be a remarkably good indicator of what is happening in the industry.

Testing Computer Software

So-so

The Mythical Man-Month (Anniversary Edition)

Almost compulsory reading.

Decline & Fall of the American Programmer

OK. So he admits that he got it slightly wrong, or maybe his words fell on fertile ground. Interesting reading.

Programming Pearls

Worth the read. I must get around to reading the newer copy.

Back to Bill's home page