Eight Best Computer Books

If you're new here, you may want to subscribe to my RSS feed or you can register for email updates. Thanks for visiting!

It’s been over five years since I last told you about my favourite computer and programming related books (don’t believe the date on that article. It’s been edited lightly a couple of times since I first posted it).

Having said that, some things have not changed. The vast majority of books on the shelves of your local retailer are very specific. Publishers seem to eschew broad, generally useful texts in preference for yet another beginners guide to Microsoft Word or C++ (or, more likely, Visual C++ 2005 Special Easter Edition SP2). I do not understand this. Sure, there’s a genuine need for “how to” books for specific technologies but is it not more useful to learn how to solve problems in general rather than how to solve a particular problem with a particular product?

Worse, most are not even particularly well written. Deadlines are so strict that authors have to write quickly rather than accurately or well. Ultimately the drive to be the first publisher with the definitive guide on Word 2007 (August Edition) trumps all. One that galls me is that most programming language books assume that you are learning to program from scratch. Is C++ really likely to be your first language? I think not.

The other continuing trend is the size of them. Is it necessary for every book to be a thousand pages long and be stuffed with screen-shots? None of my favourites are like this.

As with the last list, I have not just focused on your typical “computer science” text, if anything I have shied away from them. Hopefully if you go pick up a copy of all these books you’ll find them all to be both useful and entertaining to read.

Additionally, I find most of them to be books that are worth returning to, if not as a reference guide then as something that increased experience make each read make more sense.

So, let’s get to the point. What are my favourite computer books, and why?

  1. Code Complete. If you’re writing or designing software you need this book. As I said last time, it “is one of those books that does the job so well it has no obvious competition. It describes the complete coding process right from low level design through to unit testing and, while most people would have been very prescriptive, McConnell outlines the pros and cons of each approach.” Now on its second edition, it is still, as far as I know, without peer.
  2. The Mythical Man Month. People never seem to learn. Managers still seem to add more staff to already late projects. Brookes said all this, and a lot more, in this book way back in the seventies.
  3. Accidental Empires. Robert X Cringely’s history of the early PC industry is a fascinating and entertainingly written anecdote-fest. He claims neither to be complete nor objective, yet seems to cover all the bases. Since most people these days deal predominantly with x86 architecture machines I think everyone should know the heritage and how we got from Bletchley Park to an iMac. (But without the iMac as it was written years before Apple returned to form.)
  4. Professional Software Development. When I first bought this I was a little annoyed. It’s actually the second edition of McConnell’s “After the Goldrush,” just coming with a different name! I’m not sure that I would have bought it had I known, but I would have missed out. This is the only book of the eight here that talks about the industry as a whole, and how we should move away from the typical, and surprisingly common, “code and fix” development. He talks about certifications; architects; heavyweight methodologies; personality types; and a whole lot more. I can’t say that I agree with every last sentence, but it’s well worth reading just to get a perspective.
  5. Peopleware. It’s amazing to think that it took until the 1980’s before the human elements of writing software were seriously considered. Even now most Computer Science seems to concentrate on the more technical aspects. This book was probably the first to discuss the “human factors” of software development and is still the best that I’ve read.
  6. Programming Perl1. I include this book at least partially because I wanted to show that it was possible to have a densely technical book that was also well thought out and entertaining. The structure is superb and I can’t think of any other programming tomes that have made me laugh out loud.
  7. In the beginning was the command line…2 I think that this is an interesting book for two reasons. Firstly it describes the reason why Unix is as it is better than any other. Secondly, it explains the various major operating systems (and some minor or — now — non-existent ones) in approachable analogies rather than dense jargon.
  8. Conceptual Blockbusting. There are few other professions where your output is almost entirely brainpower. A computer program is really little more than a slightly less ephemeral rendition of pure thought. So if you can’t think your way out of a particular problem you’re in trouble! This book makes you more aware of your own intellectual processes and outlines different ways of approaching problems. Invaluable.

As you may have noticed, many of these books are the same as last time! Does this indicate that I’ve been reading less? A little perhaps, but I’d like to think that it’s because by picking books not related to specific versions of particular technologies I’m increasing my odds of finding the classics.

What do you think? Any other good choices that I missed?

  1. This link is to the third edition. I currently only have the second.
  2. You can also download it from Neal Stephenson’s website.

Marketing Windows Vista

The problem with trying to sell a lacklustre product to a disinterested audience is that even the best marketing that money can buy can’t help. Fortunately Microsoft had the wisdom not to throw good money after bad and decided to push Vista with their “The Wow Starts Now” campaign, one that neatly matched the quality of the initial operating system release. Very clever.

But recently Microsoft have decided that things have improved and that it’s worth marketing their flagship product with a little more gusto. I decided that I would help and try to think of a few new tag lines.

I offer these for free in the hope that Microsoft will use them.

  • Windows Vista: it’s really not that bad.
  • Windows Vista: because John Hodgman1 is cool.
  • Windows Vista: because our share price is dropping and we need the cash.
  • Windows Vista: because (almost) every penny you spend ends up in Gates’ charitable foundation (honest).
  • Windows Vista: because you like blue.
  • Windows Vista: because useful new features are for wusses.
  • Windows Vista: buy it or the cute kitty gets it.
  • Windows Vista: because Justin Long2 is just too smug.
  • Windows Vista: because other operating systems fund terrorism.
  • Windows Vista: we have a monopoly and you’re going to end up buying it anyway, may as well be now.

Can you think of any more? With the whole Yahoo thing, attention from the EU competition commission and the Xbox 360 dropping from its number one spot despite its year head-start, Microsoft need all the help that they can get at the moment. Please give generously.

  1. That’s David Mitchell for British readers.
  2. Or Robert Webb if you’re in the UK.

My del.icio.us bookmarks for April 20th through April 23rd

Is Microsoft-Yahoo the next HPaq?

So Microsoft is trying to buy Yahoo. I’ll leave the detailed analysis to people better qualified than myself but I thought that I could add a little perspective simply by looking back and remembering something that happened less than ten years ago.

MSFT, HPQ and YHOO stockAs you can no doubt guess from the title, the event that springs to my mind is the merger of HP and Compaq. The main problem with HPaq at the time was that merging HP’s loss-making PC business with Compaq’s loss-making PC business just wasn’t a good idea. Fiorina pushed the whole MBA line of thinking: being the biggest player will allow greater economies of scale, lower prices and more profit. Unfortunately, two big losses merged tends to make a big loss also, albeit perhaps smaller than the old combined total1.

The saddest things from my perspective are that HP had a great engineering tradition and Compaq had some great technologies (Alpha for one), all of which were rapidly divested. HP traded a future for short term benefits. And, as can be seen on the above stock chart, the 2001 merger didn’t really do much for the market price.

Compare this to Microsoft and Yahoo. Yahoo have been in the doldrums for a while now. Back in ‘94 they were the Google of the day, but they fairly quickly lost their way. Their indexing method (actual people as I recall) just didn’t scale as quickly as the Internet as a whole and they were quickly outpaced by up-and-coming new, automated systems like Altavista, Hotbot and Google. Yahoo retaliated by buying wholesale into the portal phase of the dot com boom and just outright buying interesting looking technologies, everything from music to photography sites.

And that’s pretty much where they are now. Of course they’ve changed management team a few times, but the share price has been fairly flat since 2001 (not sure what that little peak in 2004 was).

Microsoft are the company that brought you Windows and Office, and don’t really need much more of an introduction. Pretty much everything else they do loses money2. Or at least, any profits they do make in other divisions is line-noise compared with Windows and Office.

So if you combine Microsoft’s barely known Windows Live service3 and Yahoo’s fairly popular if not hugely profitable web sites, what do you get?

Well, like the HP/Compaq merger, you get a lot of duplication. Microsoft and Yahoo both have search, instant messenger, photo publishing and, most famously, webmail. By some accounts, if they merge they will have over 80% of the webmail market. But where do you go from there? Do you migrate all Yahoo’s Mail users over to Hotmail?

And, most importantly, do a large number of regular visitors automatically mean big bucks? Is Microsoft buying a future — by saving time developing code and attracting users — or simply buying the past?

In the end, I just can’t see what Microsoft think they’re buying. Yahoo seems not to have the technology required to take on Google and their combined page impressions have no obvious quick routes to profits. I hope it works out — a world where Google is as dominant as Microsoft is now is not much of an improvement — but I have doubts.

  1. HP obviously have other areas that do make money, most notably their ink cartridge printer division.
  2. I like this Cringely article that explains why they like to do this.
  3. If anyone uses this it’s because it’s the default in Windows. It’s undoubtedly getting better, but then so is the Zune.

iPod vs Zune for the UK

iPod vs Zune

I just read Daniel Eran Dilger’s “Winter 2007 Buyer’s Guide: Microsoft Zune 8 vs iPod Nano” but I felt that it was missing something very important for readers outside the United States.

So to fill that void here is my attempt. I have not actually used any of the new Zunes or iPods but I don’t necessarily feel that this has any material impact on the final result1.

The iPod is a small, well made music player with many features albeit less than some of its competitors. It succeeds in doing what it does very well.

The Zune, on the other hand, is not available outside the US. A positive corollary of this is that it’s easy to carry, taking practically no space at all in bags and pockets, and it’s difficult to damage. Another plus is that the person sitting opposite you on the tube can’t use one at high volumes and annoy you with a tinny bass-line and their unashamed bad taste in music.

But, ultimately, the fact that it doesn’t exist has to count against the Zune and so my recommendation for the 2007 Christmas shopping season is Apple’s iPod.

  1. Full disclosure: my review is only slightly more biased towards Apple than RoughlyDrafted.

Why I hate Dummies Guides

It’s not all the books that purport to tell you all you need to know about Microsoft Excel or the Missing Manual for the iPod, although I do question the utility of a thousand page tome about an MP3 player. No, the thing that annoys me are those friendly looking yellow and black books that are marketed at Dummies.

Why would I object to a series of books that tries to make a complex subject clear and approachable?

My opposition is not the content. The books that I have seen tend to have a better word-to-picture ratio than many of the competition. Many publishers seem to think that printing a number of large, colour screenshots is a good substitute for incisive and entertaining writing. Sorry, it just isn’t.

Neither is my objection with the level they are aimed at. I have no problem with someone not knowing much about any given subject — we’re all in that boat from time to time. I can’t honestly say that I’ve ever bought a book on how to use a specific application, but that’s not to say that I can’t see any need for such a category.

And, it’s not even the quality of the information contained in them. I would have to concede that some of the Dummies Guides are not half bad. I got my dad a book on Microsoft Word and it seemed to be aimed at just about the right level. It included plenty of hint and tips, just the kind of thing that might trip up the unwary.

It’s not even the cutsey presentation. I can’t say that I’m a big fan of the array of icons that draw out important details, but, frankly, it needs doing somehow and the style is obviously attractive to many.

So what is it?

It’s the title. To me, the word “dummy” and the kind of person that it appeals to suggests a particular attitude of the reader. It says that not only does the reader not know the subject, but is actually proud of the fact. I just hate the idea that people are satisfied that they don’t know something. Why be proud of ignorance?