Skip to main content

Desert Island Books

Desert Island Books is a new series I'm writing for the ACCU:

Desert Island Disks (http://www.bbc.co.uk/radio4/factual/desertislanddiscs.shtml) is one of Radio 4's most popular and enduring programmes. The format is simple: each week a guest is invited to choose the eight records they would take with them to a desert island.

I've been thinking for a while that it would be entertaining to get ACCU members to choose their Desert Island Books. The format will be slightly different from the Radio 4 show. Members will choose about 5 books, one of which must be a novel, and up to two albums. The programming books must have made a big impact on their programming life or be ones that they would take to a desert island. The inclusion of a novel and a couple albums will also help us to learn a little more about the person. The ACCU has some amazing personalities and I'm sure we only scratch the surface most of the time.

Each issue of CVu will have someone different. If you would like to share your Desert Island Books please email me.

Paul Grenyer

I thought this was going to be easy as I had no doubt what my first main book would be, but then it got harder. A lot harder. Do I choose a design patterns book? What about a process book? Or a technique book? Or more straight language books? This is how I got on:

The C++ Standard Library: A Tutorial and Reference
by Nicolai M. Josuttis
Addison Wesley
ISBN-10: 0201379260
ISBN-13: 978-0201379266

This book more than any other changed my career for the better. I was fresh out of university, had my first C++ job and only knew a little C. A number of ACCUers spear headed by Phil Nash and John Crickett were guiding me to better things. Phil Nash in particular persuaded me to invest in better books. When I got Josuttis I read it pretty much cover to cover. It's the book I go back to the most (when I'm doing C++) and I wouldn't be without it. Reading this book and learning about the C++ standard library allowed me to be the only candidate to complete a programming test for new position I went for and they gave me the job off the back of that.

C++ Templates: The Complete Guide
by David Vandevoorde, Nicolai M. Josuttis
Addison Wesley
ISBN-10: 0201734842
ISBN-13: 978-0201734843

This is where it gets difficult. For my second choice I couldn't decide between Scott Meyers' Effective Series, Herb Sutter's Exceptional Series and Vandevoorde and Josuttis' templates book. The Effectives and Exceptionals have no doubt made me a much better C++ programmer, but I mostly absorbed the information as I read and don't gt back to them so often. If I was on a desert island I'd want the templates book as I love the power that templates give C++ and, when programming in C++, constantly go back to the templates book for reference. That's the one I'd want on a desert island.

Design patterns : elements of reusable object-oriented software
by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Addison Wesley
ISBN-10: 0201633612
ISBN-13: 978-0201633610

There are a number of technique books that I could chosen. Such as Test Driven Development by Kent Beck, Refactoring by Martin Fowler or Working with Legacy Code by Micheal Feathers. However, these books confirmed stuff I'd mostly worked out for myself and I don't generally go back to them unless I want to look up the name of something. Although I never had the eureka moment with patterns than many others have described, the Gang of Four is a book I go back to again and again and really should be on my desert island book shelf.

Extreme Programming Explained: Embrace Change
by Kent Beck, Cynthia Andres
Addison Wesley
Language English
ISBN-10: 0321278658
ISBN-13: 978-0321278654

The final book is probably the most difficult book of all to choose. I've learnt so much from a few process and practice books including the Pragmatic Programmer (series) by Andrew Hunt and David Thomas, The Practice of Programming by Brian W. Kernighan and Rob Pike and Lean Software Development by Mary Poppendieck and Tom Poppendieck. They all have good common sense advice and I've learnt new stuff from them. However the book that has had the most impact on my career and the quality of my development skills was Extreme Programming by Kent Beck. It could be argued that a book about making teams work better together isn't much use when you're on your own on a desert island, but there is a lot that can be applied even by lone programmers.

Redemption Ark
by Alastair Reynolds
Gollancz; New Ed edition
ISBN-10: 0575073845
ISBN-13: 978-0575073845

I only discovered Alastair Reynolds about eighteen months ago and I'm hooked. I've always loved science fiction (and a little bit of fantasy). Reynolds “space opera” is dark, at times addictively complex and beats the likes of Arthur C. Clarke, Asimov and Tolkien hands down. I'd take all of his books given the chance, but Redemption Ark is the one I've enjoyed the most so far.

The Crimson Idol by WASP
Misplaced Childhood by Marillion

Choosing my favorite two albums from the hundreds (1000+) that I own was easy. Had I had to choose one I'd have had a serious problem (but it probably would have been misplaced childhood). I discovered both Marillion and WASP in my late teens and listened and still listen to these two albums over and over. Specifying just one thing that makes either of these albums great is near impossible. They both have superb lyrical content. Fish and Blackie Lawless excel themselves as both describe deep emotional pain they've been through. The guitar and drum work on the Crimson Idol is something else and includes the best guitar solo in the world. Misplaced Childhood incorporates superb guitar, keyboard and vocals and take you through emotional highs and lows.

Next issue: Jez Higgins picks his desert island books.

Comments

  1. "Best Guitar Solo in the World"???

    Subjective at best Mr Grenyer. May a learned colleague respectfully suggest a study of Gerald Garcia? ;-))

    Ever read any David Masson? Eg Caltraps of Time?

    ReplyDelete

Post a Comment

Popular posts from this blog

Write Your Own Load Balancer: A worked Example

I was out walking with a techie friend of mine I’d not seen for a while and he asked me if I’d written anything recently. I hadn’t, other than an article on data sharing a few months before and I realised I was missing it. Well, not the writing itself, but the end result. In the last few weeks, another friend of mine, John Cricket , has been setting weekly code challenges via linkedin and his new website, https://codingchallenges.fyi/ . They were all quite interesting, but one in particular on writing load balancers appealed, so I thought I’d kill two birds with one stone and write up a worked example. You’ll find my worked example below. The challenge itself is italics and voice is that of John Crickets. The Coding Challenge https://codingchallenges.fyi/challenges/challenge-load-balancer/ Write Your Own Load Balancer This challenge is to build your own application layer load balancer. A load balancer sits in front of a group of servers and routes client requests across all of the serv...

Catalina-Ant for Tomcat 7

I recently upgraded from Tomcat 6 to Tomcat 7 and all of my Ant deployment scripts stopped working. I eventually worked out why and made the necessary changes, but there doesn’t seem to be a complete description of how to use Catalina-Ant for Tomcat 7 on the web so I thought I'd write one. To start with, make sure Tomcat manager is configured for use by Catalina-Ant. Make sure that manager-script is included in the roles for one of the users in TOMCAT_HOME/conf/tomcat-users.xml . For example: <tomcat-users> <user name="admin" password="s3cr£t" roles="manager-gui, manager-script "/> </tomcat-users> Catalina-Ant for Tomcat 6 was encapsulated within a single JAR file. Catalina-Ant for Tomcat 7 requires four JAR files. One from TOMCAT_HOME/bin : tomcat-juli.jar and three from TOMCAT_HOME/lib: catalina-ant.jar tomcat-coyote.jar tomcat-util.jar There are at least three ways of making the JARs available to Ant: Copy the JARs into th...

RESTful Behaviour Guide

I’ve used a lot of existing Representational State Transfer (REST) APIs and have created several of my own. I see a lot of inconsistency, not just between REST APIs but often within a single REST API. I think most developers understand, at a high level, what a REST API is for and how it should work, but lack a detailed understanding. I think the first thing they forget to consider is that REST APIs allow you to identify and manipulate resources on the web. Here I want to look briefly at what a REST API is and offer some advice on how to structure one, how it should behave and what should be considered when building it. I know this isn’t emacs vs vi, but it can be quite contentious. So, as  Barbossa from Pirates of the Caribbean said, this “...is more what you’d call ‘guidelines’ than actual rules.” Resources & Identifiers In their book, Rest in Practice - Hypermedia and Systems Architecture (‎ISBN: 978-0596805821), Jim Webber, Savas Parastatidis and Ian Robinson describe resour...