There are people who think that programming is a kind of magic, there are other people that feel like it’s something seamlessly natural, passionate, intuitive, and even pleasant. Every Internet user has people to thank for, these are developers and designers all over the world. If it wasn’t by their work, we’d be stuck in the past.
Have you ever noticed how much kids love stories?! From the movies or books… When they ask you to read for them?! That’s right! Think about a movie and listing its components and the people who work in it we have a screenplay, director, director of photography, actors, producers, scenarios, and so on… Those diferent can also be found in programming! For example, the screenplay is detailed idea to be developed, the director may be the product owner, the actors are the developers, the producers provide the resources you have to program and the tracking of the whole process of programming, the scenarios are the small parts of the big piece.
Wait, wait, wait! In fact these terms are about a complete software process and really technical for children. Nonetheless, they can assimilate this naturally though, just like they learn a new language that’s totally different from their mother language or learn how to ride a bicycle. One don’t learn to ride a bicycle without training wheels first. Ideally, it starts taking baby steps. In programming, we start with Algorithm.
An algorithm is a finite sequence of instructions defined and unambiguous, each of which can be performed in a finite period of time and a finite amount of effort.
In other words, an algorithm is some steps you do before something. Think about the bike. You mount the bike, prepare the pedal and push it down, so the bike starts moving. The steps are to achieve the goal, which is to move the bike. Not always the goal is reached by only one algorithm though. Thinking about swimming, if your goal is to cross the pool, you can use different styles to do it, some faster, some less tiring…
The algorithm is the main component of programming along with Mathematical Logic. With them, we are able to learn any existing programming language. Some adjusts may be necessary from language to language, just like the spoken languages. But the core, the communication, is the same.
Ok, but why should the children learn how to program?!
Well, kids tend to have the ability to learn faster than adults, and coding is as beneficial as music lessons. The evolving process of their brains expand. They will be able to solve problems more naturally and faster, take complex problems apart, divide and conquer. They will know how to use abstraction and think outside the box. Additionally, they get the chance to get in contact with mathematics more often. The triple combination is the basis of Computer Science: Mathematics, Logic and Algorithm. That’s our main tools to solve problems. So they can be one step away to learn the Computation Thinking.
Computational thinking is the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information-processing agent. — Research Notebook: Computational Thinking — What and Why?
I was born in the 90’s. I grew up seeing a thousand times faster technology than my parents did. I’m sure that our future kids will see computers billions of times faster than we do. It’s the science fiction coming true! The children of mid of 2000’s already were born in world totally connected.1
But you can’t force a child to program, you need to incentive them. If they like a game, you can ask if they would want to know how a game is made, how a robot moves, for example. The very own interest and curiosity about technology is even better to welcome them to the Matrix. The idea that the children can use their own imagination to build what they want is ideal to boost interest on them, to show them that they can use tech to make something useful to a lot of people.
“Once you know how to code, you can create virtual worlds within the computer where the only limit on what is possible is your imagination.” — Why every child should learn to code
If we can do what we can do now, just imagine what we would be doing if all of those programmers around the world had started in their childhood. We’d be some years ahead from our current time technology wise.
Additionally, you don’t need to introduce a programming language to a child in the first place. There are several projects that introduce the concepts nicely to the children, such LEGO Mindstorms.
“Everybody in this country should learn how to program a computer… Because it teaches you how to think.” - Steve Jobs