Friday, February 29, 2008

Code - Charles Petzold

If he didn't have a blog, for me Charles Petzold would just be that guy who wrote the seminal book on Windows programming. But since he does have a blog, I now know he's written lots of other stuff as well. I guess that shows blogs can be pretty powerful advertising tools, and I guess I'm not the first person to say so.

Anyway, since I'm regularly reminded of his existence, I'd been thinking of purchasing "Code" for some time (or hoping somebody would buy it for me) and I eventually got round to it. To tell you the truth it wasn't really what I was expecting. Code to me is what I use to write software, but Petzold uses a much wider definition. Code in this book refers to any kind of code from Morse, Braille through telegraphs, onto machine code, ASCII and finally onto programming languages. Although it wasn't what I was expecting I certainly wasn't disappointed. Over the course of the book, Petzold explains why computers are built the way they are, starting from the basic building blocks of relays leading onto transistors, binary numbers and logic gates. This then leads onto more complex circuits finally ending up with a microprocessor. Then he adds to this to finally end up with something resembling the computer we know today.

And all the time, he is explaining why there is the need to build what we are trying to build. For instance, I remember learning abut flip-flops at Uni but I don't remember anybody ever explaining why they are useful (they're a basic form of memory if you're interested). Of course it's quite possible I just wasn't listening when that bit was explained but nevertheless "Code" was a great reminder of the things I've learnt in the past. It also helped to join the dots between different bits of technology.

The book is almost ten years old now, but due to its bias towards the history of computer technology it hasn't dated, unlike most tech books. I guess the final chapter may seem a little out of date but that isn't of major importance.

The only problem I can see with the book is that it may not be suited to non-techy people. There is nothing here that couldn't be understood by a lay-person but it would probably be pretty heavy going. But for a technical person looking for a refresher on the building blocks of computers it is perfect.

No comments: