It’s official, from now on, teaching to kids the basics of computer programming, or coding, is on the agenda of the French National Education … But why teach a so complex and so obscure discipline, to our children?
Let us agree, even with all the enthusiam we see for coding today in France (with a bit of delay compared to the US and China), learning programming is not vital, we can always live without it! If your kid did not do coding in school, he will not be less educated or with less capabilities later. Many skills that coding allows to acquire can be acquired elsewhere, for example while playing chess, music, or doing sport.
But then, why has coding become so important to the point that it’s now part of school curriculums starting from primary school? To answer this question, we must not stop at “coding” itself; i.e. the idea of your kid in front of a computer doing things you don’t understand 🙂 We need to dig a bit more to understand the phenomenon as a whole!
But what exactly is coding?
Concretely, programming (or coding) is a manifestation of computational thinking, a problem-solving process that involves intellectual abilities such as logical data analysis, visual representation of problems, and creating solutions using organized sets of instructions, or algorithms. Understanding how a computer works is essential for developing computer applications, but it can also be used to support problem solving in other disciplines, such as mathematics or engineering.
#1. Learning to code provides the same cognitive effects as learning a second language
When we learn a new language, we use it to express ourselves. The same is true with the code. Coding allows children not only to consume digital media and technologies, but also -and above all- to create them. Instead of just playing a video game or using an application, they can imagine how to create their own video game, or imagine what their own website or application might look like.
#2. Learning to code helps acquire rigor in writing
Since a computer language is a formal language (which does not support ambiguities), writing code imposes a certain synthactic rigor: for example, if we forget to close a bracket in a program, the whole program no longert works. In the case of compiled languages (an extra step is needed to translate the human readable program to binary code), anomaly detection is more difficult because it takes place only when the entire code is translated to machine language. On the other hand, interpreted languages (evaluated on the fly) report errors instantly while the programmer writes the code.
#3. Learning to code helps to overcome the fear of being wrong
Programming is essentially an experimental process, it is a discipline where learning by mistake is essential. Even the greatest programmer on the planet must test his code, correct mistakes, and test again. So we hear a lot about “debugging”; it is the process of following the execution of code step by step in order to detect anomalies, also called “bugs”.
#4. Learning to code helps develop visual thinking skills
Programming allows visual intelligence to be developed by stimulating pattern recognition. For example, a well-written code is organized into functions which are blocks of instructions isolated in one single place (function definition), and which are later invoked from various places (function calls). Pattern recognition is not only useful in programming: this faculty is also useful for finding one’s way, recognizing words and structures in text, associating a meaning with a visual sign, etc.
#5. Learning to code means being in tune with the times
You have probably heard about the disturbing fact that predicts that 65% of future jobs are not yet invented. The transformations that drive the world today thanks to -and because of- technology, are also cultural, and it affects even our way of life. Therefore, teaching the language of computers allows our children to become aware of what has been surrounding them since thy’re born. It’s about understanding what’s a computer, a tablet, or a smartphone, and especially how to use these new objects constructively and safely.
#6. Learning to code develops creativity
Whatever the reason we code, whether to develop an application, a game, or simply to solve a problem, the process always requires a lot of imagination and creativity: to implement a solution to a problem, to improve a rendering, or to make a computer perform specific tasks. A computer program is like an invention of the mind; but unlike a craftsman who needs raw material to create a work, a programmer just needs neurons and inspiration.
#7. Learning to code increases the chances of finding a job later
One argument we often hear, especially in the USA, is that people should learn to code to find a job. The explanation is straightforward: as the job market is increasingly demanding software development skills (an estimated 2 million IT jobs in the US by 2020), learning how to code remains one of the ways to acquire these skills.
#8. Coding is a literacy to understand our computational world
In the world we live in, it is essential to understand how software can manipulate our behavior, violate our privacy, and violate our rights. The CSForAll consortium, which emerged from Obama’s initiative in 2016, makes a similar argument in seeking to empower young people to “create businesses in the digital economy,” not to just be consumers, but to be active citizens in an increasingly technological world.
#9. Coding values teamwork
Apart from developing technical skills, coding also helps to acquire non-technical skills, such as getting along with colleagues, because most projects are extremely collaborative. Later, whether you are interacting with bosses, subordinates or with external stakeholders, these soft skills are essential to succeed in any environment, both professionally and personally, as they can also help you to better get along with friends and family.
#10. Coding opens up to new possibilities!
Whether for personal development, career advancement, career change, or simply for the desire to improve one’s digital culture, the knowledge of how software works and the ability to develop new software is a form of expression that provides inner satisfaction. Like the feeling of an artist who completes his work, the feeling of having coded an application that simplifies the management of your football club, a showcase site for your neighbor, or any other application likely to make the world a better one, is simply rewarding!
So what now ?
Before onboarding your kid on a coding adventure, make sure he/she likes it, otherwise don’t waste your time; it should be a pleasant activity above all. Also, remember that the purpose of teaching coding at school is not to make your child a future computer developer or “coder”, the goal is to give him a certain curiosity to understand the world that surrounds him, a world increasingly computerized.
If your kid has already played with Scratch, the MIT software that allows to build programs visually by assembling blocks, you may consider switching him to a real programming language. But, you probably asked yourself “what language to choose and why”. There are more than 400 programming languages, more or less general-purpose, some are interpreted, others are compiled, each of them comes with its own syntax and semantics, with diverse and different application domains. The choice of this or that language is a kind of specialization before the time.
At Coding Park, we propose an intermediate language before the specialization, a textual equivalent of the blocks of Scratch that focuses on plain algorithmics. The Play language has a simplified syntax, it allows to discover the algorithmic concepts found in most programming languages, such as loops, conditional expressions, variables, functions, etc. Play is an interpreted language, which means that code is analyzed instantly when typing text. The editor returns errors, warnings, and content proposals in real time, so that the user is guided throughout the writing. Try it now!
Getting Started with Python!