5 reasons students should learn to code (that aren’t about jobs)
There are a lot of articles around about why everyone should learn to code, and they make some very valid points, but almost all of them focus on future benefits — mostly on career advantages. Focusing on benefits that will only be realised years from now is not likely to be motivating for most students, particularly younger ones.
The one other commonly given reason is for students to learn problem-solving skills. However, there are many ways to practice problem-solving skills that don’t require also developing expertise in a specific field such as programming.
So with that in mind here are 5 reason students should learn to code that will benefit them now (and aren’t problem solving)!
Learn about the world we live in
The majority of high school students have their own smart phone, and more and more are rating the internet as a very important part of their lives. Students live in a world of computers, and so it makes sense that they should learn at least the basics of how these devices work. Learning to code helps them to understand the digital world.
In the same way we will not all become scientists, but we still learn science in school, we may not all become computer programmers but we should all learn the basics of computer programming. Understanding the world around us is important and useful.
We may not need to understand the complexities of acid/base reactions or perform titrations in our adult lives, but understanding why soap works better at cleaning grease than plain water, or why we can’t replace self-raising flour with plain flour without also adding baking powder, are useful concepts that high school chemistry helps us to understand.
Similarly, understanding how to write a simple program such as a chatbot (including recognising the limitations of such a program) goes a long way to helping people understand how to best structure a search query, or why computers will struggle with nuance or colloquialisms when trying to translate between two human languages.
Learning to fail
Debugging is a vital skill all programmers learn. It is an accepted part of the software development process.
By teaching debugging as a specific skill, with various strategies and techniques, we demonstrate to students that no-one is perfect and that everyone makes mistakes.
Some students are very averse to ‘failing’ and can take being told they have made a mistake as a serious setback. By helping students to view error messages as the computer saying “I don’t understand that, can you try again?”, they become more comfortable with making mistakes, viewing them as things to improve on not signs of failure.
Recognising that mistakes are not only common, but expected, helps students build resilience and learn to fix errors themselves - “I made a mistake — that’s ok! Now what do I need to do to fix it?”.
Learning to stop and assess the outcomes of their calculations is something many students struggle with. They seem to have an almost blind faith in technology: ‘if the calculator says 10, then the answer is 10’ — never mind that there could have been a multitude of errors in the lead up to typing the actual numbers in the calculator.
I saw a prime example of this when, in a first year university physics class, students were asked to estimate the mass of their lower leg. They were told that the density of the human body is similar to water, and a large range of answers were accepted. All the tutors were looking for were plausible answers, so anywhere between 1kg and 10kg was considered valid. And yet many many students gave answers that were wildly off, sometimes by orders of magnitude! It was baffling that an ~70kg student could estimate their calf to be 1000kg, and not even stop to consider this might not be right.
Learning to code helps students realise that computers are really not very smart. They just do exactly what we tell them to. If we input the wrong information they’ll output the wrong answer. It’s up to the user to stop, think, and check that the output seems correct.
When debugging and reviewing old code students will quickly learn that a simple and elegant program is much easier to decipher than a complicated one. Introducing concepts like for loops, for example, further helps students recognise the value in keeping things simple and optimising their solutions to be more efficient and generalisable across situations, rather than taking a complicated brute-force approach every time.
This skill — to understand and recognise when it is worth spending some mental energy and time to find a more efficient solution — is one which is useful across every facet of life! For example, let’s say you needed to mix paints to make a specific colour. You could try to colour match every time you needed to make up more paint, but it would be a much more efficient use of your time to measure the proportions of each component colour at the start!
Variety is the spice of life
By opening their eyes to the world of programming, we can show students the incredible variety of opportunities available. We can show them that they don’t have to be completely focused on tech, and only tech, to enjoy using it. Our annual web design competition, Web.Comp, is great for demonstrating to students that an interest in art and design can be explored via technology and coding. Similarly, programming a chatbot offers fascinating insights into human languages and linguistics.
We can break down the stereotype that being interested in or “good at” technology means being the kind of person who wants to spend all of their spare time sitting at a computer and writing code (check out this video of our co-founder Tara Murphy, talking about how there isn’t only 1 type of person who can succeed in science & tech).
By exposing all students to coding and the variety of ways it can be used to explore other skills and interests, we might show more students that a future in tech is for them!
What do you think? Are there reasons we missed? Let us know in the comments below.
If this list has inspired you to learn to code, or to teach your students, check out our website! It’s full of great coding resources, including teacher notes and lesson plans. All verified teachers get free access to all of our courses and content!