My Hackergotchi

Updated: Never — Philip's Blog

Now featuring regular updates!

Thu, 01 May 2008

00:04 – Programmers don't read books?

Our Microsoftie pal at Coding Horror boldly claims that programmers don't read books. Perhaps this is the case in the fuzzy world Jeff lives in, but my experience is vastly different. Most programmers I know treasure their books and tear through quite a number of them. Some canonical books are also pretty much on every desk or at least in a drawer or on a shelf not far away.

On my own desk at work are currently only two books. Mainly because I've been too lazy to drag any other books to work with me. They are TCP/IP Illustrated volumes 1 and 2. Yes - I have the sources to more than one IP stack at my fingertips, I have manual pages, I have Google but I still find it infinitely more efficient just to open The Book (often to pages or chapters I've memorized) to refresh my memory on whatever detail I happen to need.

Often on my desk too, are Advanced Programming in the UNIX Environment and UNIX Network Programming. Unlike the dry prose of manual pages or the cold (and occasionally twisted) logic of the source code, these tomes explain why. Of course, this is in sharp contrast to the "help, my socket program barfs, what am I doing wrong?"/"Perhaps you need to accept() the occasional connection?" kind of exchanges Google archives by the boatload.

At home on my bookshelf -- among loads of other crap -- I also have some books I would never want to live without.

I agree with Jeff about one thing:

"The best programming books are timeless. They transcend choice of language, IDE, or platform. They do not explain how, but why. If you feel compelled to clean house on your bookshelf every five years, trust me on this, you're buying the wrong programming books."

Most programmers I know subscribe to this statement. I happily do not have many dealings with the other kind of programmer. They kind who doesn't read. The kind who cleans out his bookshelf every five years or who has a stack of programming book pornography to flaunt. This kind of programmer appears not to be so abundant in the Unix or the embedded world.

To conclude, my top 5 - not in any particular order:

  • Code Reading - We spend most of our time reading code. Every trick helps. Good code reading skills are essential to survival in non-trivial software environments. I have blogged about this book before.
  • See MIPS Run - Even if you never touch a MIPS in your life, this book is required reading. It details loads of MIPSisms but also clarifies many generic aspects of hardware/software interfacing. Even way up in userspace with the pointy-clickiests, 'hardware/software interfaces' is what you're doing. Understand your hardware. It helps write better software.
  • The Mythical Man-Month - Yes, this is a programming book. If you do not understand this, go read it again. And again. And again. And hit anyone who tries to pull a Mythical Man-Month on you over the head with it.
  • Beautiful Code - This is a fairly recent book. It has some very nifty ideas in it. Go read it.
  • The C Programming Language - No matter what language you're writing, if it's not C, you must be doing something wrong. ;-) More seriously: C forms the basis of most relevant programming languages and even many irrelevant ones borrow from it heavily.

Get reading!

Aah, all my favourite books. This summer will mark the twenty-second anniversary of my reading of the K&R. First edition of course, no ANSI pansy syntax.
The joy of the K&R is that it is the only book about C you ever need. It's short, clear and simple. And it really teaches you C. There is no other better way to learn C. So why are there zillions of thousand-page C books out there?!

I also treasure my UNP edition 1 because it covers SNA. Even though it's just a few pages, that section gave me enough background to understand LU6.2 packet traces and write CPI/C transaction programs.

As you point out yourself, you live a sheltered life. There are millions of code monkeys out there who program for a living and not for fun. They're over in the IT sector. Let's enjoy our grossly undervalued engineering jobs, while they misplace our virtual money, send us errant snail mail, expose our credit card numbers and personal details to fraudsters, and squander our tax money on government projects of titanic nature.

Posted by Zombie at Thu May 1 03:28:26 2008

Name:

Email:

URL:

Comment:


Prove that you are not a spammer: