There has been spirited debate on Hacker News this morning following Jeff Atwood’s post “Please don’t learn to code”.
Let me start by saying that fundamentally I agree with Jeff – the whole “everyone must code” and comparing creating software with literacy and numeracy meme is pretty ridiculous. I don’t begrudge anyone their right to a hobby, though so if the Mayor of N.Y is keen to learn to code, good on him.
I would like to add a word into this debate, though, and that word is automation. Computers are fantastic communication tools and that is one of the primary purposes for which they are used today.
They are also fantastic tools for automation, and I think this is where the shift to GUIs really left a lot of the utility that existed in early computing behind. Yes, I realise that GUI platforms generally have automation tools associated with them but automating a GUI task is kind of less precise and, in my opinion, a little more confusing that automating command line tasks.
I think that every man, woman and child who uses a computer should be taught the concepts and basics behind using their computer for automating tasks.
There are a plethora of options for educating people in this area and I don’t think that [INSERT PROGRAMMING LANGUAGE HERE] is the best place to start.
In fact I’ll even go so far as to say that I think every man, woman and child who uses a computer should learn about the command line as well (I realise that the utility of the command line varies by operating system but I wouldn’t be averse to a Linux/UNIX variant being used as an educational tool – the concepts are all the same no matter where you go).
From there, people can go on to coding if they wish, or they can improve their productivity at work through automation, or they can create a script to manage their photos or music, or whatever they want. Once people get a taste of automation, they really start to go hog wild with it so the computer is their proverbial oyster.
So in conclusion I’d just like to say that yes, I agree with Jeff that the “everyone should code” meme is bullshit, but I also agree with the notion that everyone should learn to do more with their computer than just passively use software, and that we should call it automation, not coding.