A few months ago there was a bit of a hoo-ha when Willard Foxton wrote a pretty ill judged article lambasting the clamour for kids to be taught how to code. Back then I started to write a post about why I think it would be useful for all people, not just kids, to be taught to code. I never moved past the notes stage but recently thought it worth revisiting and finally posting.
I’m not going to pick apart everything Foxton said in his article, I could try and it’d probably be fun to do but loads of people already have, making a better job of it than I would. Just search for “Foxton coding” and you’ll see what I mean. One of my personal favs is this storify piece by @tef; amusing and insightful in equal measure. One nice example being:
@WillardFoxton but one parting shot: judging code as mechanical from the programs you use is judging english from the contracts you sign
— ⎡tef⎦ (@tef) October 24, 2013
For me one of the main problems with the Foxton article is the conflation of whether people should learn to code with whether the proposed cirriculum is any good. These are mutually exclusive. The cirriculum being rubbish doesn’t mean people shouldn’t learn to code and vice versa. The cirriculum issue is moot, I’m only interested in whether people should learn to code. To which I’d categorically answer yes.
Code, coding, developing, programming (from now on I’m going to use “code”) suffers from a perception problem, a perception wrongly perpetuated by the likes of Foxton. The perception is that “code” is hard, only for the uber geek and is only useful for people who need to write spreadsheet software. Who needs to do that right?
Perceptions like these also help to reenforce the erroneous view of “code” being the thing. It isn’t. Code is no more than a means to an end, not the end in itself. Code is just one method we humans use to make things, one way we can get things done.
Just because you aren’t at the top of the field doesn’t mean the skill isn’t a useful one, useful for work, useful for your life. Can I speak fluent Spanish? No, but I know enough to get by, to recognise words, to not be completely helpless. Can I draw? A little. Does that make me an artist? No, but it does help me when I need to explain something or express an idea (and when bored).
Everybody doesn’t have to master it. That’s not the goal. At the very least “code” will give people a better understanding of the technology that is such a huge part of everything we do.
That knowledge lets you sit in a room and understand the conversation happening around technology. It’s great to be unafraid of the lingo.
The above sentence, said by Paul Smalera in his article “Fear of Coding”, is so true. Technonlogy is everywhere, it is ubiqutous. It underpins almost everything; what we do, how we do it, how we communicate, society, business, it is shaping our future, etc. Wouldn’t it be nice to be able to join in, understand and shape that conversation?
That is the key message for me. Learning to and understanding “code” empowers people.
As well as the empowerment aspect, I believe it can help people be more creative. Something we all aspire to be.
A key component of creativity is the ability to form, express and explore new connections and ideas. How we currently do this and communicate it takes on a wide variety of forms. We talk, we write, we read, we draw, we calculate, we compose, plus many more. Each of these mediums is its own type of creative expression, more suited to some people than others, which is a key characteristic of diverse thought. Wouldn’t it be useful to have another powerful medium in our arsenal? Can we ever have too many ways to express an idea, and ultimately, to learn?
Learning “code” not only increases our capacity and capability for creativity it also gives people the ability to make their idea a reality. Turning a spark of creative insight into a thing that you can show people — a thing that people can use or learn from, and from which they can derive some iota of pleasure, understanding or utility. That’s useful. That’s exciting.
I think it is also worth noting that whilst not everyone will use programming skills in their jobs the skills people pick up through the learning process will be, and will be vital in the fast paced, ever changing, exciting world we live in. Plus, if applicability to jobs was the criteria on which curriculum decisions were made then not much currently in them would stay there.
Learning to code shouldn’t just be about the final goal: being able to code. That point seems too readily forgotten when discussing learning to code, people are too quick to, again, just focus on the end states; can’t code, can code. But what about the bit inbetween? The journey? As with so many other pursuits there is so much to gain from just being on the journey. I don’t understand why people are so obsessed with this, why the other parts are so neglected, they are often the most rewarding and enjoyable. People are just so desperate to already be there. They want it now. It is so backwards but that is a topic for another time.
There is so much to be learnt and picked up, both from a technical and a soft skill point of view. Such as logic and reasoning, problem solving, collaboration and communication skills as well as those already mentioned; technical vocabulary and the exploration of ideas.
As intimated earlier, being able to be part of the conversation should be reason enough for people to want to learn but improving in all these skill areas can’t hurt either.
So the people that learn to code will be very well positioned in comparison to those that don’t. They’ll have a better understanding and ability to participate in the World we live in, increased capacity and capability for creativity, and a whole host of other skills. It’s a no brainer really.
If you’ve ever thought about learn, or even if you haven’t, I highly recommend you give it a go, learn to code a little, see what it does for you. I doubt you’ll regret it.
Edit: I think the success of free to learn sites like codecademy and initatives like the amazing codeclub tells its own story, regardless of whether the powers that be think people should learn to code, people want to and are doing so…
I’m keen to hear what other people think. Should people learn to code? Are you learning? How are you finding it? Let me know in the comments.