Coding for children and teenagers: an exercise in thinking
Question: Why do we teach coding to children?
Answer #1: Because we will need programmers in the future.
FALSE — We do not teach Maths so that all out children become professional Mathematicians. We shouldn’t teach programming for that reason either.
Answer #2: Because many jobs (including new ones that do not exist yet) will require programming as a necessary skill.
TRUE — This is already the case. Software developers are not the only ones who need to code. So do many working in science, finance, data analysis and other professions. It is likely more jobs will require programming in the future.
Answer #3: Because programming has critical thinking and problem-solving at its heart; these are skills that go beyond coding.
VERY TRUE — Here is a quote from Steve Jobs from 1995, a time when programming was reserved for the few and not taught to children: “Everybody should learn to program a computer, because it teaches you how to think”.
How should coding be taught?
The teaching of coding to children is still in its early days. Often, both in schools and in out-of-school programmes, children-specific platforms such as Scratch are used because they are easy to teach and do not require proficiency in programming. Teaching children using a full-featured programming language, such as Python, is a lot harder. But that’s not a reason not to do it.
The problem with Scratch and similar children’s platforms is that they are limited in what they can do and children soon get bored with them, and with coding as a whole.
The alternative approach is to use a proper language and instead make the projects age-appropriate; making sure students are engaged while still learning how to think in the logical and systematic way required for programming.
What language should they start learning?
There are two answers I always give to this question:
These answers seem contradictory so let me elaborate. What matters is not what language one learns but that they learn how to think like a programmer. The fundamental concepts are very similar across languages.
However some languages have a steeper learning curve (e.g. C++) or require you to write lots of code that will initially look obscure (C++ again, Java among others). Python is one of the best placed languages for beginners of all ages as it allows you to focus on the key concepts while still being a very powerful and versatile language.
Programming is a way of thinking tailored for problem solving – a useful skill in all aspects of life. It should be treated as a serious subject and not just an excuse to play games.
This is a sponsored post by Stephen Gruppetta who is the founder of CodeToday, a company which runs scheduled and private coding courses in Python for all ages from 7 upwards, including adults.