Everyone should learn to code

I know some really good writers. People who make money out of writing. People who wow others with their ability to conjure up emotions and worlds full of intricate detail all with the power of a pen (or laptop as the case may be). These people are in their element when writing. But, it doesn’t stop us all learning to read and write at school because it is the foundation and platform for interacting in the world. We have to learn otherwise we would struggle to communicate in general society. It doesn’t mean if you can’t write you can’t contribute, but it does make life just a little easier if you can. Letters, words, sentences, grammar, printing and writing all help us express ideas and communicate. It has been and continues to be fundamental to progress in the world. Communication is fundamental. And now the medium of communication is changing…

After a recent post I was asked by quite a few people why I was bothering to learn about modern software engineering languages and tools rather than focusing on more managerial type skills. Maybe this was because I suggested it was for ex-developers to learn and not everyone (the point was that I am an ex-developer and believe that I need to learn more). I had a few people say that we should let the expert developers develop code. Now, I wasn’t advocating that the results of my learning was going to see me back in front of a keyboard full-time to develop production code. I was more intrigued into the practicalities of development with the modern languages, databases, tools and concepts so I could better understand the decision-making processes, trade-offs and choices being made by the experts who deal with the work on a day-to-day basis.  But, there are a couple of other reasons why I was interested and I wanted to share my reasons.

The next generation

At the moment, the UK is trying to promote Computer Science in schools. It isn’t just about teaching the kids though, it also means teaching the adults. We have a big gap in the quality of teachers who are capable of really teaching the foundations of computing. At the moment, the ICT curriculum isn’t really taught by specialists but rather people who have either been asked to do  ICT as a secondary subject or the people who have a passion for it but more as amateurs. Often, anecdotally, people talk about how the Geography and Sports teachers are also the people teaching ICT. The fact that we are now trying to make a difference is a good thing, but it is going to take a lot of time to bridge the knowledge gaps. Claire Sutcliffe did a great talk about the gap and the lost time over the last couple of decades (the gap is explained at about the 4:45min mark). There has been a recent drive for digital literacy, but this goes further than having people be able to drive a computer with a keyboard. It is about understanding the platform for the next wave of creative output.

I want to give my own children and other young family members good guidance and advice. The world is becoming more dependent on code. Not just for the developers, but for everyone. As this article on edSurge suggests every age demands its own set of skills. I believe it is not too far away when many non-developer roles will need to be writing code on a regular basis. This will not be the computer code required to create the web browser you are reading this on, but more the type that is required to search for, sort and present data in usable ways. Or automation of simple tasks to get jobs done more quickly.  Imagine a customer service agent sitting in a call centre – wouldn’t it be great if they could get access to the vast information stores that an enterprise has about the person they are talking to on the phone so they can know more about the person they are talking to and the products and services they have. I bet many companies have record of most interactions with customers, but that isn’t currently at the fingertips of the call centre agent. Most enterprises are trying to solve this problem by producing canned reports and centralised data warehouse systems. Large business and management information programmes costing millions upon millions without delivering the value promised. It might have been better to have invested the same money in giving more people access to the training to allow them to write algorithms to search and sort data. It might also be a little more successful than most of the enterprise data warehouse programmes I’ve seen.

But the next generation will need to express themselves online more than we have ever done. They will probably take many classes online. They will need to submit their art, music, writing, acting and dance projects online. They will likely even have to submit computing-based creative projects online too. They will probably see more and more projects based on the idea of the Internet of Things, and they will likely contribute to it. Open Data, Open Sensors, hackathons, code clubs and the like. They will live out much of their social lives online too, just as we are only just starting to. To innovate and push the boundaries they will need to code. To participate effectively they will need to code. To fit in they will probably need to code. So, who is going to teach them how to do this, and participate safely? The schools will have a part to play, but I believe there is an onus on the wider community to provide guidance and support this.

The current generation

The then there is another group I come across in my travels; the development/department/product/project/programme managers who are in charge of IT based products and services or delivery programmes because that was the route for promotion, empowerment and decision-making within their environments. The world hasn’t always appreciated and valued the work of a developer. These managers are no longer in a position where they understand the work being done, yet they are meant to be representing those doing the work and managing them. They are still being asked to make the decisions, manage suppliers and staff, and generally be seen as the experts by the people above them. Over the last decade there have been shifts in the workplace and more value is being placed on the developers than the managers. Even in very traditional and established businesses this is starting to become true. Many would agree that this is a good thing, but typically not for the people who no longer understand the work. For this group of people, they need to learn new skills (or indeed re-learn old skills) quickly to remain relevant and valuable. Helping these people through the transition of roles and value is important. I wouldn’t want to see people become disenfranchised because the world has moved on. I sometimes get asked direct questions from this group about what and where can they learn about the advances in technology.

I can’t believe that coding isn’t going to be as important as reading and writing in the next decade. It will be an important medium for creativity and innovation. I know people in many different states of confusion – from 14 year olds looking to choose their GCSEs, to Mums who are struggling to understand what their teenage children are up to and then there are parents and teachers who want to educate for the future, and the managers and professionals who are trying to keep pace with how the world of work is changing. The explosion of broadband and the internet is creating some interesting challenges for people. And some need and want to do more to contribute, but don’t know how to get started. My foray into learning more about the modern tools is in a desire to help others understand where to find good resources and learn how to learn more. There is a huge amount of information out there, it just isn’t that easy to get started.