Should we really teach our kids how to code?

Katerina Sand
CheckiO Blog
Published in
9 min readOct 19, 2017

--

CheckiO as a game for programmers has started several years ago. And although we haven’t planned to use it for educational purposes at the beginning, now it’s already serves as an additional resource in many schools and universities. Either way, we are making our contributions to the education. But following the educational trend that year after year is only gaining momentum, it’s hard not to speak up.

Everything changes with time. There’re simple basics that everyone should know in order to function efficiently, but coding isn’t one of those basics. And just because your kid likes to play video games doesn’t necessarily mean that he or she should start learning to program. You drive all the time and probably plan your budget. Does it mean that you should be a car mechanic or an accountant? I don’t think so.

Human skills over coding skills

There’s nothing wrong with basic exposure to computer science. But the focus on teaching kids to code is misplaced. It should not come at the expense of fundamental skills such as reading, writing and mathematics. The most important skills our education system can provide to children have nothing to do with software or technology. So many programmers would have been much more successful in their careers if they had only been better writers, better critical thinkers, better back-of-the-envelope estimators, better communicators.

Of course, it would be great if every child had the opportunity to learn to code. But it would be much better if every child carried through the high school the excitement to learn and explore, to become effective communicators, adept at resolving conflict with their peers. Just by having these skills and never seeing a line of code before, they are more likely to turn out more successful .

Anyone can learn to code. And junior developers can be taught the coding skills they need to solve the problem at hand, but they can’t be taught the curiosity they need to solve the next problem without help. It’s not even talking about the importance of understanding what problem they’re trying to solve. Simply banging out code would not solve the problem, but cool, collected problem solving would. That’s why everyone should ask themselves, whether they even have a problem, and whether they can explain it in a way that others would be able to understand. Very few people can explain why they wrote a line of code, what that code does or convince other people to use it and help them build it. And, of course, the greatest risk to a software company isn’t their code, but how their employees work together. These are all essential human skills that have everything to do with the art of communicating with other people, and nothing at all to do with the writing code that a computer can understand.

Try to foster soft skills like communication, teamwork, and curiosity. People can learn to code as adults, which might be even better due to the fact that studies have shown that every 2 years 60% of our technical skills become obsolete, so any programming languages learned 5 or 6 years ago are unlikely to be in use after that time.

Don’t advocate learning to code just for the sake of learning how to code. Or worse, because of the fat paychecks. Spend time teaching how to research voraciously, and understand how the things around us work at a basic level, communicate effectively with other human beings. Because I myself want my kids to experiment with their computers, to collaborate and learn with other people through them. I want them to learn to investigate. Be critical. Don’t just accept opinions of other people or what they see on some random web page. Ask for credible data, facts and science. These are skills that extend far beyond mere coding and will help them in every aspect of their life.

And, if we’re being honest, aside from success in careers, what kinds of people do we want our children to grow up to be?

Coding doesn’t ensure success

We live in an ultra-competitive world, where people are dishonestly selling coding as a ticket to economic salvation for the masses. And as our society grows increasingly aware of the power of computer programming, both to shape how our world works and provide high-demand jobs, some people have suggested that we require all children to learn how to code. But nobody put the emphasis on the fact that technology changes at a rapid pace in this industry.

Learning to code at a young age isn’t the key to success. What might be good now in terms of coding may not be relevant in the future. The career that is hot now is never going to be hot when your kids have careers. That’s not how the job market unfolds. In the 70s it was real estate, in the 80s it was banking. In the 90s it was the Internet. Right now it’s writing code. There is probably zero unemployment for people who can write code today. But that’s not going to be true in ten years.

Coding is so popular because parents are afraid that if their kids aren’t learning it now, they won’t be able to pick it up and master it later. But your kids are growing up in a tech-dominated world, one way or another they’re going to have tech skills. And as appealing as coding sounds now, it is still has limited options. The things that will make kids successful in this tech-driven world is whether they can think — creatively, innovatively, and expansively — and that is accomplished through free, unstructured play.

It’s not that complicated to learn coding later, a lot of great coders learned as adults. And frankly speaking, you want your kids to know a simple language that has no relation to the type of skills they will need when they grow up. Especially taking into account that even artificial intelligent (AI) is developing so fast, nobody can guarantee that in 5–10 years the basics of programming won’t change profoundly. And what then? Starting from scratch? Most likely.

Freedom to find yourself

I strongly believe in the importance of letting kids choose, giving them the freedom to decide if and when they are ready and want to learn programming.

Sometimes parents get carried away when their small children express interest in technology, and they don’t want their kids to get left behind in the technical revolution. But forcing all kids to learn to code risks killing the joy of it for those who would otherwise come to love programming. And what good it’ll bring if you turn it into yet another test to take for those who never had any interest in programming in the first place.

We have to let our children play and enjoy childhood. If kids have a desire to learn coding when they get to high school, that is plenty of time. Brain surgeons, lawyers or astrophysicists don’t start learning as children. Why is coding different? There’re plenty of other activities they’d rather be doing. And if kids are coding, they’re not exercising, interacting with other people, doing their math, and any number of other more beneficial things.

Parents have to loosen up a little and just take a step back. You can’t control everything and you can’t completely plan your children’ life for them. Get perspective and send kids outside.

Wrong assumptions

To those who argue programming is an essential skill we should be teaching our children almost straight from the kindergarten alongside with reading, writing, and math, can you explain to me how any great artist, musician, dancer, chef would be better at what they do if they woke up one morning as a crack Java coder? It is obvious how being a skilled reader, a skilled writer, a good communicator and at least high school level math are fundamental to performing almost any job. But understanding variables and functions, pointers and recursion? I don’t get it.

I love programming and I can support learning a tiny bit about it just so you can recognize what code is, and when code might be an appropriate way to approach a problem. But I can also recognize plumbing problems when I see them without any particular training in the area. I do believe that programming is important. But so are a lot of skills. I would no more urge everyone to learn programming than I would urge everyone to learn plumbing or performing surgeries, or representing somebody in court. That’d be ridiculous, right? And that’s why I think that this “everyone should learn to code” movement is wrong in so many ways.

For some reason it assumes that coding is the goal, and software developers tend to be software addicts who think their job is to write code. But their job is actually to solve problems. Don’t celebrate the creation of code, celebrate the creation of solutions.

The other crazy assumption is that adding naive, novice coders, that not even sure they like this whole programming thing to the workforce is a great benefit to the world. Pardon my skepticism, maybe “everyone can learn to code”, but just maybe not every single guy and gal can be that good at it.

And my favorite is the implication that learning to program is just one small step away from getting paid to program professionally.

Of course, there are many good reasons to encourage kids to learn to code. It helps them understand how our technology-driven world works, develops problem-solving and logical abilities, sets them up with a vocational skill. But not every person wants or needs to learn to code. And who says that they can’t be successful learning as adults?

So, please, stop thinking your kid needs to write code. An stop pressuring. School does it for you plenty already. Don’t think that you have any idea what job would be right for your kid in ten years. If you think writing code is so great, then you should learn to do it. The only thing that can be beneficial is a basic understanding of how computers, and the Internet work. Let your kids figure out what’s going to be next. Because they’re going to be way better at that than you are.

Free access

I wasn’t saying that it’s possible to learn programming as an adult just for the sake of it. It’s a known fact that there’re a lot of great self-taught programmers who started coding in their 20s and 30s. There’s no limit to that. As technology evolves programming also becomes better, more understandable and easy to learn. In the modern world there’re countless possibilities, and with Internet you can access any information you need. There’s a huge number of tutorials, online courses and books that will guide you if you’re determined to be in this field. No need to start coding early on, you might have to start again anyway.

It’s far better to give your kids the skills that will stay useful even after 5, 10, hell, even after 20 years. Programming changes, but how much the piano playing changed in how many years? Or the ability to draw paintings? There’re so many immoral things, things that will stay alive through the course of time, and will cultivate in your child only the sense of beautiful, of culture and discipline. The same goes for the skills that are harder to gain when you’re an adult. Sure, you can learn ice skating in 20–25, but it’s highly unlikely that you’ll ever become an Olympic champion in figure skating. So, stop concentrating on something that can be archived later in life and would be much better then, and start giving your kids the opportunity to learn much more important things for which they’d be grateful. I really regret that I haven’t learnt playing the guitar as a child. It’s much harder now to find the time for this kind of thing.

Wrapping up

So there’ll be no confusion, with this article I’m not saying that kids don’t absolutely have to learn programming and how to code. It’s not about that. If a kid is really interested in these kinds of stuff then by all means do support him, provide the opportunity for him to try, to determine whether it’s something he might stick with long term. But if eventually he doesn’t, don’t push. Afterall, if coding is something your child wants to do, something he’s passionate about, he’ll pick it up again, if not, then he’s simply destined to find himself somewhere else. But it’s his choice to make. There’s very little chance that you can be really good and paid extremely well for something you hate doing or do badly (if it’s even possible to do “goodly” something you really hate doing).

--

--