Learning to program at school should be approached as an art, not a language
There are many press articles right now talking about learning to program in school as a national issue.
It is a new subject for the general public, and many are struggling to popularize it. For the skeptics, it is “a maneuver of the industry”, and for the more convinced they approach this learning as “the learning of a new language”.
These are false shortcuts. We run the risk of bringing particularly false ideas into people’s heads and, above all, turning away from what programming really brings.
It is believed, and rightly so, that learning mathematics in an industrial world is a good thing. It was not Airbus that imposed the learning of math in kindergarten to have engineers 20 years later. The same is true of learning to code in a digital world.
Then, if you meet a linguist, to whom you say: “learning to code is like learning English”, you risk a reaction that ranges from outrage to a form of aggression. Human languages are of a level of complexity and finesse incomparable to those used in computer science. A computer language is only used to talk to a machine, and frankly, I can guarantee that they [ces machines] do not understand much.
The abilities of a developer are more like that of a craftsman. Unlike mathematics, which is a science, programming is an art. In programming, “we do not observe a phenomenon”, which is the beginning of the scientific process.
Video La Philo sans Zéro – “He’s right Bachelard”:
From there, we must understand that we can extend learning to everyone and not reserve programming for the only “scientific” sector and, of course, start very early because it requires almost no prerequisite.
What this art brings, beyond the capacities developed by craftsmanship (precision, ability to concentrate, a job well done, etc.) to those who practice it is a totally different way of thinking and seeing the world.
This way of thinking allows you, through the use of increasingly important layers of abstractions, to understand and solve problems more effectively. When faced with a problem, you will always ask yourself the question of what can be automated and what is not. At the crossroads between machine and man, you will invent systems that go beyond both.
You are able to see and manipulate the “Matrix”, which in a digital world is a skill of great value …
It is about being able to “sequence”, to create “loops”, to see what is feasible in “parallel”, to understand the impact of “events”, “conditions”, “Variables”, “lists” …, to put into practice an “incremental” reflection, to understand what the “test” is and of course the concepts of “design”, “collaborative work” etc. This list is not exhaustive and science has made a huge contribution by theorizing all of these concepts (both positive and negative) around what is called, procedural thinking.2.
Today, we must therefore teach our young people to program so that they can acquire this model of thought.. The stake is there. The important thing is not the language but the learning pedagogy. If we base ourselves on a classic model of transmission of knowledge, we will not teach our children this model of thought, but just a language of abysmal poverty.
If we succeed, then we will give our youth, with everything that school already brings, a complex set of skills and a way of thinking, which will allow them to enter fully into the digital world and to create the one of tomorrow.
1: Prof. Donal Knuth: Emeritus Professor of “The Art of Programming” and Professor at Standford. He is one of the greatest references in programming and computer science.
2: Computational Thinking view point by Jeannette M. Wing
Kwame Yamgnane is the co-founder of 42, the computer programming school launched with Xavier Niel, Nicolas Sadirac and Florian Bucher. He is Education & Innovation Expert for FrenchWeb.