How should we teach programming to children?

No-Code Jan 28, 2020

Ok, so…teaching kids to code: yay or nay? It’s something that has been in our frame of mind for a while now. Maybe the next generation should be proficient in how the digital world is made, taking into account how much time we already spend in it. It should be a no-brainer, then, right? Of course they should! Take my money already and shove some programming skills into my son’s skull.

But wait. Is it really that necessary? What would they actually learn?

In an article from Hackaday, AI Williams shares some of my doubts. He writes: “When you teach a kid to code, what benefit do they actually get? I mean, we can all agree that teaching a kid Python isn’t necessarily going to help them get a job in 10 years because Python will probably not be the hot language in a decade. But if we are just teaching Python, that’s the real problem. A Python class should teach concepts and develop intuition about how computers solve problems. That’s a durable skill.”

Williams seems to be concerned about the specifics; about how the stuff we know today (python language, in this case) might not be the most useful in the future. Joe Morgan — writing for Slate—, on the other hand, is troubled with the idea of programming itself, and how it’s being sold to children and schools and academies willing to teach this.

He explains: “Coding books for kids present coding as a set of problems with “correct” solutions. And if your children can just master the syntax, they’ll be able to make things quickly and easily. But that is not the way programming works. Programming is messy. Programming is a mix of creativity and determination. Being a developer is about more than syntax, and certain skills can only be taught to the very young.”

Both of them seem to have some criticisms towards the models offered to children and, even though they say it from different corners, both seem to think it would be better to have a more holistic approach to learning code.

What I’ve seen recently while researching about this topic is that, yes, kids should learn about this, but not through just a learning system of syntax and languages because, 1. they will probably become obsolete or change, and 2. coding has to do more with certain logical ways of thinking than with the languages themselves.

So what should we do? How should we teach the next generation a way into the digital universe? Just tell them about this abstract thing that coding is? To learn how to solve problems? Isn’t that a little vague for a child?

I offer an alternate solution.

Maybe.

Hear me out. What if we get kids into programming and coding with the use of No-Code and Low-Code tools? I know, I know, it sounds counterintuitive, but let me explain. For kids to get excited about this stuff, it can’t be an abstract explanation about how coders solve problems and think creatively because, well, a lot of people do that in different fields and, also, it doesn’t sounds very exciting to not be able to visualize what your doing or why you’re learning it (I’m looking at you, high school algebra). But you do need to learn about certain logics and patterns of thinking and, well, I think tools like Webflow or Bubble might be able to show that, using a graphic interface AND letting the kids see what they create almost immediately.

And that is the other mayor thing: early sense of accomplishment. Try teaching guitar to a kid. You plan out your classes to teach him chords, scales and music theory. It is most likely that he’ll get bored soon and drop out. Now, try teaching him a couple of chords. Now use those chords to teach him a song he knows. When he understands that this knowledge is useful and is fun, he will want more. Early accomplishments using No-Code tools are almost guaranteed and the process to get there is clear and didactic, if we think of things like drag-and-drop or click-and-point interfaces.

So, maybe, just maybe, that is something we should try. I know this is probably not the best expression when talking about children, but I think we should use the No-Code tools as a gateway drug (yup, it’s weird) for future coders and developers. Tools will change, and technology will change, but if we reward children with early accomplishments, if they understand why programming might be useful later in their lives and get excited about it, maybe we will be fine in the end. And they will be fine.

HelloGuru.

const headerTagLinks = document.querySelectorAll('.js-header-tag-link'); for (x = 0, l = headerTagLinks.length; x < l; x++) { const lang = headerTagLinks[x].getAttribute('data-slug').split('-')[1]; const shouldRemoveLink = lang !== document.documentElement.lang; if (shouldRemoveLink) { headerTagLinks[x].remove(); } }