A few years ago I decided to take some time
off after completing another long contract and having reached 10 years of
commuting into
However during my break the ACCU conference occurred and I reluctantly agreed to write up a review. This felt like a safe option, as being a review it was entirely subjective and so I couldn’t really say anything that might be considered “wrong” per-se. Up to that point the only thing I’d ever written were some lengthy diatribes to my team mates about the technical debt in the codebase and how we should probably go about tackling it. Each email had taken ages to pen and involved constant refactoring to try and get the tone right. The thought of writing anything longer wasn’t exactly appealing.
I subsequently decided that the safest route was to self-publish via a blog. This way nothing could be rejected by an editor and so anything I wrote was definitely going to see the light of day. Being my own publisher also meant that I had no deadlines. And so after cranking out a few really safe posts about what I intended to get out of writing, who the ACCU was, etc. I started to consider tackling something meatier…
It was then that I realised I really didn’t
have anything original to say. As I looked back at my career as an
Seven months later after playing it safe I finally started to consider sticking my neck on the line. By then I had thought about a technique I had used a few years back which I pondered might have some merit in it. I put together a draft, sent it off to a fellow ACCU member who had recently asked me to look over a couple of their articles and waited for the feedback. The feedback was really useful but it seemed I still had quite a bit of work to do to knock the article into shape.
That article sat unfinished in my “pending”
folder for over three years! In the meantime I continued to bash out more safe
reviews of the conference,
So, if you haven’t got anything original to say, what’s the answer – plagiarise? That’s not really a viable solution. And then it slowly dawned on me as I started to read more and more of the old classic books and papers that much of what is said is not necessarily that new anyway, but what is new is the way it’s presented. As is hopefully apparent from my article in the previous C Vu about getting to grips with list comprehensions [1] it took a number of different books, articles, talks and thinking to eventually understand the concept.
My first non-review style article finally appeared almost 4 years after I initially plucked up the courage to even begin writing. It was about accessing more than 4 GB from a 32-bit Windows process and was pretty niche given that 64-bit was becoming prevalent even in the slow moving enterprise world by the time it got published. But I had finally bitten the bullet and stuck my neck out.
I’m a very defensive writer and speaker. I do not have the courage to suggest what you should or should not do, instead I prefer to present what I have done, backed up where possible by what my influences are with the only expectation being that it may be of some value to someone else. But my fear is that someone will point out what is obvious to everyone else and negate my entire article or talk by describing how I should be dong it. It’s not that I’m afraid to be wrong, on the contrary I want to learn, but I’d feel upset about wasting not only my time, but the time of the reviewers and readers.
At the conference this year I spoke to a few people who appear to be under a similar illusion that they have nothing original to say. For a start they may work in a different industry to me and have different constraints and cultures which is already interesting. However they find that despite the plethora of content out on the internet their colleagues are still unaware of many of the concepts and techniques that those more experienced take for granted.
Maybe the reason many programmers have not
grasped something is not because they are stupid or haven’t bothered reading
about it, but is because nobody has spoken to them in a way that they understand.
I’ve tried to digest the Wikipedia page on monads a number of times but have
found myself lost in a
So if you labour under the belief that everything has already been said and that no regurgitation of existing ideas is useful then ask yourself this – why did Kevlin Henney begin his talk on Immutability at this years’ ACCU conference with a modern take on a 20 year old article written way back in issue 8 of Overload [3]?
They say “those who cannot remember the past are condemned to repeat it” [4]. Perhaps you can help out those of us unaware of some aspects of the past by ensuring we don’t waste time rediscovering it and allowing us to stand on your shoulders as well in the future.
[1] C Vu 26-2 (May 2014)
[2] http://en.wikipedia.org/wiki/Monad_(functional_programming)
[3] Circle & Ellipse – Vicious Circles, Kevlin Henney, Overload 8, 1995
[4] http://en.wikipedia.org/wiki/George_Santayana
12 June 2014
Bio
Chris is a freelance developer who started out as a bedroom coder in the 80’s writing assembler on 8-bit micros; these days it’s C++ and C#. He also commentates on the Godmanchester duck race and can be contacted via gort@cix.co.uk or @chrisoldwood.