18th March 2003
A selection of my favourite computer books (plus a few that I don't like much, but had shelf-space for). From left to right:
- Kernighan and Ritchie's The C Programming Language, of course; second edition, which describes ANSI C.
- Stroustrup's The C++ Programming Language, second edition (the last one before it got too big and ugly to contemplate).
- Kernighan and Pike's overlooked classic, The Elements of Programming Style. The only programming book I know that can make me laugh out loud.
- Kernighan & Plauger's Software Tools. The single best book on programming I know, despite all the code being in RATFOR (structured FORTRAN).
- Jon Bentley's Programming Pearls, excellent ``light reading'' and full of insight.
- Bentley's More Programming Pearls.
- Kernighan & Pike's more recent The Practice of Programming.
- Aho, Sethi and Ullman's classic on compiler design (though I've only ever really used the parsing bits): Compilers: Principles, Techniques and Tools, better known as The New Dragon Book.
- Wall, Christiansen and Schwartz's Programming Perl, published by O'Reilly (speaking of whom, has everyone seen True in a Nutshell?)
- Sriram Srinivasan's adequate but disappointing Advanced Perl Programming.
- Craig Hunt's definitive TCP/IP Network Administration.
- Harold and Means's XML in a Nutshell - useful but outdated (e.g. it says nothing at all about Schemas.)
- Walsh and Muellner's DocBook: The Definitive Guide, which covers all the necessary ground but ought to be only about a quarter as long as it is.
- Jackson & McLellan's Java by Example. It was rubbish when I bought it seven years ago, and it's rubbish now. The O'Reilly Java in a Nutshell is a hundred times better.
- The Design and Implementation of the 4.3BSD Operating System, by Leffler, McKusick, Karels and Quarterman. Fascinating and very detailed, though I admit to never having read more than about half of it.
- Andrew Tannenbaum's once-definitive book on O/S design, Operating Systems: Design and Implementation, which contains a complete listing of Minix.
- Richard Bornat's Understanding and Writing Compilers.