Please carry on learning to code
Every time I see someone retweet Jeff Atwood’s article “Please don’t learn to code” my heart sinks a little. I’ve got to respect his personal achievements, but on this I think he is spectacularly wrong. Here are four reasons why:
It isn’t about jobs
It isn’t all about employment. Coding can be fun if you find you like that kind of thing. Saying people shouldn’t learn to code because they aren’t going to be a useful addition to the coding workforce is like arguing I shouldn’t enjoy a kick-about in the park because I’m never going to play for England. I think this is particularly true the younger that you get people involved. Hack days with kids and initiatives like Code Club are a brilliant way of widening the talent pool for the future. I got taught to code at school. I don’t do production standard code, but understanding the principles of programming is invaluable in my design job.
An open net is important for all of us
I’ve recently finished editing a Guardian ebook about “The battle for the internet”. Having more people dabbling in code will help keep the internet and computer technology “open”. It is much easier to explain to people the importance of a whole range of concepts like open source, net neutrality and generative computing if they have programmed. Jonathan Zittrain has spoken persuasively about the risks of computers becoming appliances. It is hard to make people realise the implications of not being able to “View source” on an app or access the command line on a machine if they’ve never “Viewed source” or written anything that generates “Hello, world!” at all.
We’d get better technology decisions
One of the reasons businesses and government frequently make bad technology procurements is because the decisions are taken by people who don’t understand computers at all - and they buy from suppliers who are happy to sell them systems that could never possibly work, or that will never work well for the end user. Anything that helps increase literacy on how technology and information work together in a technology and information driven economy will bring economic benefits. And if more people learning to code helps more people realise that the way things are programmed and designed affects the usability of them, we all win.
It smacks of elitism
What is most noticeable for me in Jeff’s post is the same tone of voice that I’ve heard over the years from countless publishers and journalists - “Woe is me - the masses are coming!” A tone of voice that says that a move to get more people interested in coding for themselves marks a threat to professionalism. A fear of the rise of the “citizen coder”. That the barbarians are at the gate. That what I do is so important and complicated that even though I learnt it from nothing, you couldn’t possibly do that. It smacks of elitism and sneering at the little people.
The best software developers I’ve worked with are all about sharing - about sharing open source code, about sharing knowledge, about sharing their expertise. Long may that continue.
If you’d like to start learning to code yourself, you could try Code Year. If you are in the UK and you’d like to volunteer to help school kids learn to code, then please get in touch with Code Club
Yes it's great to learn some python to do things on your raspberry pi, the instant gratification you get from making stuff happen is well worth it. Take part in code year, open source projects, get an arduino and build a robot. But knowing just enough coding to be dangerous does not mean one has the necessary *engineering* skills to write software in the enterprise that could involve financial data, asset planning, sensitive information, information subject to regulatory controls. I've seen all of these attempted - Pointy Headed Boss decides she knows enough VBA to bypass the IT department, before you know it there are 7 years of records stuffed into a corruped Excel spreadsheet with no means of recovery. There is so much more to software than just writing the code, for starters someone has to maintain it. So yes, learn, just as you might learn how to do a bit of DIY but that doesn't mean you go and re-wire the power supply at your office, get the professionals to do that.
As an aside, I think you're begging the question when you talk about "the best software developers" you have worked with "are all about sharing" I'd counter that the best software developers are the ones who develop the best software. Why do you think software developers should be judged on anything other than the software they develop?
Brilliantly coded software is worthless if it works well but doesn’t help solve the user’s original problem. And someone who writes brilliant software can’t possibly be the best software developer I’ve ever worked with if they can’t also work in a multi-disciplinary team and communicate well.