- iCloud’s real purpose is to kill Windows – "What this requires from Apple is a bold move that Microsoft would never make: Jobs is going to sacrifice the Macintosh in order to kill Windows. He isn’t beating Windows, he’s making Windows inconsequential."
- Microsoft joins pre-emptive patent protection program – Software patents are not really popular, even with companies that (in theory) should benefit from them…
- The Mac App Store: It’s an honor thing – "Apple’s approach is simple. It’s an honor thing. The company believes that, given the choice, people will do the right thing. It also understands that anti-piracy techniques don’t stop pirates, but they do get in the way of honest users."
- Nokia’s 15-year tango to avoid Microsoft – "[PC manufacturers] found it wasn't worth the effort to differentiate their PCs from the competition, in what had become a commodity business." The reason's behind Nokia's original decision not to licence code from Microsoft in the nineties hasn't really changed, which makes today a sad day.
- Doctor Who Infographic – Everything you ever wanted to know about Dr Who but were too afraid to ask…
- In pictures: Satellite eye on Earth – July – Awesome images.
- Amber Ale: Brewing Beer From 45-Million-Year-Old Yeast – Science, history and beer, and all in one story. How could I not bookmark this article?
- Microsoft's Long, Slow Decline – "The evidence is staring Microsoft’s leadership in the face that they have lost the most lucrative segment of the market, but, judged by their actions and public remarks, they seem to think it’s all a big joke. They should be sweating this but they’re laughing it off."
- The giant Apollo 11 post – The best of the web on the 40th anniversary of the moon landing.
- Year two – Nice analysis of where the App Store need to change in order to keep both customers and developers happy.
- Let's all take a deep breath and get some perspective – "[Google are] starting to look like the new Scott McNealy. Remember him? Ran a company called Sun, which had a great little business going until McNealy became obsessed with Gates and started doing things like paying millions of dollars to buy StarOffice so he could get into that booming free software business."
- Three Cheers for Afghan Women – it's a little depressing to think that, as the article notes, this is actually progress.
- Audio slideshow: Sir Clement Freud – I only really know Clement Freud for his contribution to Just A Minute. I remember that I wasn't sure what to make of him when I first heard his lists and slow, deliberate delivery, but that changed pretty quickly. It won't be the same without him.
- Laptop Hunters: Homeless Frank – If you've not seen Microsoft's new adverts this probably won't make much sense. If you have, you'll realise that Frank's analysis of the PCs is more nuanced that the supposedly "real" people in the original videos.
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?
- 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.
- 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.
- 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.)
- 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.
- 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.
- 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.
- 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.
- 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?