Wednesday, 26 December 2012

Desert Island Books

Appeared in the ACCU magazine CVu, Vol 24 Issue 4, Sept 2012

Its difficult to choose which technical books I'd want to take. I have a library of books that I've collected over the years, many of them are becoming increasingly obsolete. I have no intention of taking Petzold's Programming Windows 3.11 no matter how useful it was at the time. Just thinking about the segmented memory model and the complexities of near far and huge pointers just makes me feel ill. And that’s before trying to wrap my head around the craziness of Hungarian notation.

My first real computer was an Acorn Electron. My brother taught me BBC BASIC and started off writing games in that. After a while ran into issues of both speed and code size so started learning 6502 assembler and slowly switched to using that. It was here where my first book, 'The Advanced User Guide for the Acorn Electron' became incredibly useful. I remember spending ages looking at the memory maps finding where there was space to put code when in the graphics modes and when attached the floppy drive where code could be put that would survive a reboot, so that could get around the copy protection on some tape games and re-save them out to the floppy.

Skipping forward to my first job programming in C++, here there are quite a few books and it is more difficult to choose which one to pick. Stroustrup's C++ Programming language, Meyer's Effective C++ and its sibling More Effective C++ and Sutter's Exceptional C+++ and More Exceptional C++ rank highly in terms of teaching me things. of the three I probably gained the most out of Exceptional C++. To this day the models of exception safety the books introduced me to serve well in other languages.

Skipping forward many years, and changing more to a mixed C++ and C# world Chen's The Old new thing provided lots of valuable insight into why things in Windows work the way they do and how much goes on behind the scenes for compatibility purposes.

For current its a lot more difficult. There is no book that stands out. The Effective C# and More Effective C# books while good aren't as good as their c++ counterparts. JavaScript the good parts, I couldn't find the good parts. Working with legacy code was good, but largely overlaps various other books that I have.

Am tempted to pick something I haven't read, so will learn something new while on the island. This is more difficult as I'd ideally want something that will be useful. Perhaps a book on raft building, or planning. Growing object orientated software guided by tests would be an interesting one that has been recommended by many and has been sat on my desk waiting to be read for months. I would go for something that would allow me to learn a new language, but without a computer that could get quite frustrating, so something that I can do without a computer, but with endless drawings in the sand. On this basis, I'll take Schneier et al's Cryptography Engineering: Design Principles and Practical Applications so can work through the examples, and be in a better position to know if what I'm working on makes sense or is fundamentally flawed.
In terms of novels, this is the easiest choice of the lot - Good Omens, written by two of my favorite authors Terry Pratchett and Neil Gaiman. Novels written by either I enjoy, but this one written together has me laughing from start till finish.

Given I've got two albums I think I'll partially cheat and get an album that’s long that I've loved for years - Pink Floyd's The Wall, which feels at least as relevant as it was when it first heard it. As I've also seen both the film version and live with the Roger Waters tour in 2011, I can remember/re-live the different experiences I have had of it.

The second album I've found difficult to choose and at one point was thinking of flipping coins to choose one as there's no one album where I really like everything on it. Two Pink Floyd albums would be too much to take. Counting crows, Madness, Ke$ha, Nelly Furtado, Queen all out as I have to be in the right mood to listen to. Perhaps I should pick something so abhorrent so that it forces me to build a raft and get off the island as soon as possible rather than lying back and relaxing. Although a Justin Beiber CD would fit this it might be too much and I would try swimming without the raft. Wish I could have remembered to pick up my MP3 player stuffed full of music and this wouldn't be having this problem.

In the end I'm going to settle for Seven Mary Three's Rock Crown. Their other albums may have sold better, but of their albums this is the one I like the most.


The Advanced User Guide for the Acorn Electron
Adrian C. Dickens BA, Mark A. Holmes BA
ISBN-10: 0947929037
ISBN-13: 978-0947929039

Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
Scott Meyers
ISBN-10: 0201924889
ISBN-13: 978-0201924886

The Old New Thing: Practical Development Throughout the Evolution of Windows
Raymond Chen
ISBN-10: 0321440307
ISBN-13: 978-0321440303

Cryptography Engineering: Design Principles and Practical Applications
Bruce Schneier, Niels Ferguson, Tadayoshi Kohno
ISBN-10: 0470474246
ISBN-13: 978-0470474242

Good Omens: The Nice and Accurate Prophecies of Agnes Nutter, Witch
Terry Pratchett, Neil Gaiman
ISBN-10: 0552137030
ISBN-13: 978-0552137034


The Wall
Pink Floyd

Rock Crown
Seven Mary Three


  1. You know, I am fond of programming too. I learn C++. Thank you for telling us about these great books! I will read some of them. Have you ever used services of uk essay writer anytime? You know, I used. Several times it happened ))

  2. This is very good advice, especially when it seems that you have lost everything you had. Work occupies a large part of our lives, so when we lose it, we get a lot of time for reflection, which often ruin a person in depression. If you are in a similar situation, I advise you start to write, you can write an essay for students for example Review, it will bring you profit. Write more often, it will distract you and reward as a result.