At what age do kids need to learn coding? The net is awash with articles touting how important it is to have kids “start coding as young as possible”… or something in that vein. After years of saying kids need to get outside more and get more exercise, we are now saying they should spend more time indoors, learning to code. I don’t have a fundamental problem with the concept of learning how to solve problems by designing and writing programs. But the process of teaching kids to program is one that has to be well thought out – not a reactionary one.
What age? I would say no earlier than the 6th grade. Some people will say kids could learn way earlier than that – but writing programs is more than just writing pieces of code in some simplistic language. Kids also need to be kids – building things with Lego, running around outside, making cookies, building sandcastles. The mere act of doing these things helps children learn some of the core skills they will need later on: problem solving, and creativity.
What to teach? Programming isn’t all coding, there are many other skills: problem solving, designing and writing programs, testing programs, and making sure people can use the program in a useful way. Start with problem solving skills. Then progress to designing simple algorithms – recipes for guiding how a program works. Then introduce the basic concepts of programming using a simple, yet realistic programming language.
What programming language? Programming languages are the building blocks of computer science. Without them, there is no programming. It’s possible to start with a bubble language like Scratch, or even a language which does graphics such as Logo. However the progression from “toy” languages to real ones should be short – it is not hard to introduce programming concepts using graphics in languages such as Python. Even Pascal is a good language for learning the basics.
What not to do? Don’t think of using languages such as Java, C, C++ or the like. They are complicated, and rely on a greater knowledge of programming concepts. Don’t teach object-oriented anything – it is not necessary for kids to learn. Don’t teach memory management.
What to expect? Not all kids will like programming – in fact some likely won’t. Teach programming in the wrong way, and it may turn kids off programming. Don’t push it on kids. I say this because not all kids will have an aptitude for programming, just like not every kid has an aptitude for learning a language such as French. If they have a bad experience, or find they don’t like it – they will learn to hate it. The adage that “everyone can learn to code“, may not be true.
But above all else remember that programming is NOT like playing video games (the exception to this rule may be writing “mods” for Minecraft).