What is coding?
Explaining what coding is (and isn’t) to someone who has little or no experience is challenging to say the least. There is a strong push to encourage people to learn to code and yet there is so much mystique surrounding it. It can seem like an alien culture and an alien language.
This series of blogs and videos will, hopefully, give you at least an insight into this strange world, and it can be a bit strange. Don’t let that put you off though because it is also the most accessible, interesting and fascinating thing there is.
It covers everything from art, robotics, artificial intelligence and medicine. There really isn’t any area of human endeavour that coding has had no impact on. Even so you might be hard pushed to find it anywhere. That is because it is so well hidden. This is what makes it so mysterious.
Nearly everything more complicated than a torch or flashlight has some sort of microchip in it, and inside every microchip there is some code. This is true for your laptop, smartphone, car, TV, washing machine etc. this doesn’t mean that you are going to learn how to programme your car it does mean that you can use code in whatever field you are interested in.
Back to basics, coding is simply a list of instructions written in such a way that a computer chip will do something it. You could tell it to draw a circle, switch an LED on when it gets dark or work out the best times to switch the heating on. This is where your imagination can run riot.
Think of it like a cake recipe where you follow a set of instructions. Recipes need to be done in the right order and with the right ingredients. You can’t simply throw everything in a pan and hope that it works, you might get lucky but more than likely it won’t be the cake that you hoped or expected.
Learning to code is like learning a new language. There is some English in it and some number and symbols. But it is a language with a very simple structure, a relatively small vocabulary and repeatable syntax. It is surprisingly quick to learn and equally surprisingly easy to make a mistake, it can be quite unforgiving, miss a comma and it grinds to a halt.
It might be easier to show you than to find different metaphors for coding, so look out for a short video on what coding looks like.
What is coding for?
That is a question almost as difficult to answer as the first one. If you want to draw a comparison you could ask what is the written language for or what is maths for. In the same way that the answer is various and covers nearly everything it is true of coding but it is far more hidden and less obvious.
You can read text and write a message so that the use of the written language is obvious. Maths is similar, you use to work out the cost of your shopping or how many steps you have done today. You can also write a whole series of books on a topic or creating statistical models for predicting the behaviour of a pandemic.
If you think that coding is irrelevant or unimportant just think that every computer, every smartphone, every website, every app uses code to a very large extent. All the social media you may (or not) use. Emails, text messages etc, you cannot escape it no matter how hard you try not to use technology or call yourself a technophobe.
Have you ever wondered who writes all this code, someone has to. Any company that makes a gadget will need someone who is a software engineer as well as the hardware engineer and someone to make the tea. This still may seem very niche and not your thing. But that is the issue and is also the point.
You may never have written a book (and publish it), played a musical instrument, created a piece of music, learned how to paint a landscape or created a beautiful garden. Yet creativity is in our blood, we do it all the time. We tend to think of creativity as someone with a paint brush and easel, or a guitar and microphone.
Yet making a game is creative, making a gadget to automate part of your home is creative. Finding a better way to water the plants is creative. Creativity is just an expression of you and I propose that coding is a creative process. One that might appeal to those who want to find creative solutions to problems or just make life better for someone else, now there’s a thought.
The answer to the above question is quite hard to frame but whatever you are interested in coding can enhance it. You can paint with coding, make music, manipulate photographs, create artificial intelligence to do a whole range of activities and functions. To me it opens up a whole world of possibilities.
Why learn to code?
Why should you learn to code? The answer is firstly you don’t have to but secondly I would strongly recommend that at least have some understanding. Coding shapes our world at almost every level and it is not going away. It is the silent skill that shouts through a megaphone.
For me it was out of interest and curiosity. That might be just me, maybe no one else feels that way. Yet governments are trying to include coding in their nations curriculum, they are starting to recognise its importance.
The UK government invested (along with the BBC) in a small microcomputer called a micro:bit for use primarily in schools to teach coding skills. They provided one for every pupil (year 7 and 8). The Raspberry Pi, Arduino are educational boards and the coding language Scratch was created for young children to help them learn to code.
There is no lack of resources for children, no real lack of opportunity (more on that later) and yet very few learn how to code. It remains a dark art as far as the general public are concerned. Parents have no idea what it is exactly, teachers and schools pay lip service mainly and the take up for GCSE and A’levels in the UK is woeful.
The reason for all this, in my opinion, is a lack of clear purpose. It is a bit chicken and egg or catch 22. You won’t know what it can do for you unless you explore it and you won’t explore its possibilities unless you have a reason to. If that makes any sense.
My desire and ambition is for everyone to have a go at coding even if it is just for 10 minutes. Yes you can do coding in 10 minutes. Even if all it means is you can say you have coded. That at least is a step in the right direction. The reasons why we should take any steps I will outline in the next paragraph.
Coding is a tool and not an end in itself. The world is already reliant on it and that is going to increase considerably over the coming decades especially in the field of artificial intelligence (cover more on that later). It isn’t just the dependance on it, we will need it to improve our lives and fix problems we haven’t even identified yet.
Children (adults of the future) aren’t learning how to code because the adults (parents and teachers) struggle with it also. So even if there is an appetite and a clear benefit the resources aren’t there, people. Not everyone can learn something online, it is possible and it is how many do learn but it is very limited and off putting for many.
Adults today need to at least have some grasp of the concepts even if there is no need to actually use it in a career defining way. Libraries run clubs but cannot find volunteers, schools want to run computer science classes but the teachers don’t know how to code, they have never been taught and haven’t the time to learn.
So how about you?
Isn’t coding hard maths?
It isn’t right to say there is no maths. Again it does depend on what you are doing. But for many coding activities all you need is basic addition, subtraction, multiplication and division are sufficient along with a knowledge of co-ordinates. After that understanding greater than, less than is important.
Coding is far more about logic than maths and before you say that you are not a logical thinker, you are. You wouldn’t exist without logic. It is all about putting things in the right order. Sequencing if you like. All coding does is work through each line of code in order (more on algorithms later) one after the other.
How you order them is crucial. This is the skill of coding more so than any maths you may come across. Think like an artist who wants to create a certain painting effect, the artist will plan through the steps and stages of the process. It is quite structured and they can explain what those steps are and why. Coding is no different.
You have be put off by the words it uses. These are key words that have a function but most coding languages use words that have some meaning inherent even if the meaning is lost on you. A coding language like python (more on that later) was designed to be very readable by an average person who isn’t a tech wizard.
Maths does play a big role in coding but nowhere near as much as the syntax and structure. 90% of the maths is fairly basic but it is more likely to be a missing bracket that causes the biggest problem. The usual way that coding and complex maths come together is when you are using coding to solve a complex maths problem. Just think what you ask your calculator to do and that is a very, very basic computer.
So do not put off if you think you are rubbish at maths, one you are not rubbish at maths and two if you are it isn’t a problem.
Do you have to be clever to code?
I include this question because it can be a problem and it is one that I struggle with. To some people I am an expert in coding but when I look at what others are doing I feel like a total numpty when it comes to coding, I feel as if I have not a clue. I read articles that I don’t understand on purpose just to immerse myself in that world.
But doing that can be incredibly off putting and discouraging. what I am doing is comparing myself to someone else and I am not someone else. I learn the way I learn, my experiences and understanding are unique to me and not the same as anyone else on the planet. This is true of you.
If you say that you cannot do it before you do it then you won’t be able to do it because you won’t even start. I ask a group of people if they are good at maths. Usually at least three quarters will instantly (and with some pride) say they are rubbish at maths.
This is evidently not true, what they might be saying is at school they didn’t find it easy, or didn’t do well at maths, or were told they were rubbish and now they happily tell themselves that they a bad at maths. This is a perception shared by many people. It might be a similar reason why you feel that you couldn’t be good at coding.
Learning to do anything takes practice, practice and more practice and this is so very true of coding. The more you do it the better you become. It becomes automatic, you start to think differently, the fog starts to lift and you start to see things that weren’t apparent before.
The beauty of coding is that you can do stuff very successfully in a very short period of time. It is good to look at some of the wonderful things other people have made and created but your main focus is you, moving form one stepping stone to the next. Remember they are just stepping stones. It is not a race or a competition. Do it for you, better still let it benefit someone else, be an inspiration for others to follow.
Am I too old for coding?
The short answer is no. I started learning to code in my 50s. The curriculum that I written was used by a five year old (with help from a parent) and I had a group where the average age was around 70. So it is good for any age and any gender.
It is a fallacy that it is for millennials operating from a darkened bedrooms. It is for everyone for all age groups. It does require some ability but there is so much you can do with just a little bit of knowledge with a few snippets of code especially creating digital art.
So don’t let age put you off. If you can find someone who will tutor you either in person or through online support. When teaching different age groups I found a marked difference in response. Whereas the teenagers weren’t afraid to break something so they learned by doing, making and exploring often going off my curriculum and did things I hadn’t seen before.
The, shall we say, older group were more reluctant to try something out, followed my instructions to the letter and generally needed more prompts early on. Having said that each age group made the same rate of progress, and enjoyed it equally. So find a way that works for you whatever your age.
Libraries often run a free course what is called a ‘Code Club’ for children. It uses activities based on the coding language Scratch (more on that later). Other clubs that are worth looking at are Raspberry Jams which has the Raspberry Pi as its focus although they may well have dedicated sessions it tends to be up to the individual as to what they do, it is for a wider audience and includes adults.
So called ‘Bootcamps’ are a popular option which tend to be a intensive short term coding events. Obviously many events and courses went online or virtual during the pandemic but as starts to have less of an impact on organised events you may see more in person events and courses springing up.