In the previous issue of C Vu the Editor
asked the question “What is ACCU for?” I think each of us has different ideas
about what they get, and, more importantly, want from being a member of ACCU.
As
I’ve written in these pages before about my
own background and how I came to join ACCU [1]. In short, what I was looking
for at the time was a replacement for the C/C++ Users
Whilst some might consider a detailed
discussion [2] of a three-line C++ function that parses the surname from a
comma-separated full name to be excessive, I personally found it to be one of
the most thoughtful threads on the
In my experience you just don’t get that
attention to detail in the usual forums and newsgroups. Admittedly you don’t
want every discussion to descend into
that level of deconstruction or we’d struggle to even write our supposed industry-standard
10 lines of code per day. But it’s a useful exercise to go through every now
and again to remind ourselves of all the various forces that we need to balance
in our quest to produce simple, maintainable code.
Whilst I’ve reached a level of programming ability that puts “the basics” into the area of Conscious Competence [3] I’m acutely aware that the range of my expertise defined by Conscious Incompetence grows rapidly bigger. At least the good news is that some of that is no longer filed under the more disturbing Unconscious Incompetence (or as it’s more colloquially known: The Unknown Unknowns [4]). And that I largely put down to my membership of ACCU.
A common reply to the question of how to
learn more about programming is that there are loads of blogs and forums out
there – so just google it. It’s a fair point, but it also misses the simple
fact that to google something you have to be aware of its existence in the
first place. Sometimes, as was the case with “persistent data structures” I
thought I knew what they were until
Take programming idioms for example. One of the best methods to learn about new ways of working is to learn other programming languages, because they force you to solve similar problems in different ways. When you’re the one attempting to establish a new idiom based on some other language it’s easy, but when you’re the maintenance programmer staring at some “weird code” wondering what on the author was thinking it’s a different prospect. Sometimes there can be a fine line between genius and incompetence.
Have you ever had a problem, spent hours googling it, found the answer and then tried to google for the answer again based on what you now know and found the answer at the top of the results list? I find one of the biggest hurdles to finding the answer to some of the less technology specific programming questions is knowing the correct terminology to use in the question. What most of my initial googling tends to be is fumbling around trying to find the correct words to use for the right search query; once I have them the answer generally comes fairly quickly, or there are no results and its back to square one.
For me ACCU plays a large role in the serendipitous side of programming. My awareness of my programming surroundings comes largely from being a member of this specific organisation. There is also a time and a place for pedantry and I personally believe that more often than not its use within ACCU discussions has a positive rather than a negative effect. I want to understand and use the terminology of our profession (and the ideas embodied within them) with precision and, so far, I think being an ACCU member has been the most valuable way of achieving that.
[1] The
[2]
[3] http://en.wikipedia.org/wiki/Four_stages_of_competence
[4] http://en.wikipedia.org/wiki/There_are_known_knowns
16 April 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.