Vos enfants ont mieux à faire qu'apprendre à coder...et tous autres métiers du digital...
Je suis développeur et je ne vais pas apprendre la programmation informatique à mes enfants: cela ne sert à rien.
Il y a peu, lors d’une course tardive, je suis passé devant un grand présentoir de livres consacrés à l’apprentissage de la programmation chez les enfants. J’avais déjà vu ces ouvrages à plusieurs reprises, mais jamais une aussi grande quantité de titres destinés à des bambins de primaire.
Ces bouquins font partie d’un vaste ensemble de ressources visant à munir les enfants de connaissances utiles pour leur avenir, qui comprend également des colonies de vacances axées sur la programmation, des clubs périscolaires de code ou des applications destinées à enseigner aux élèves de maternelle des rudiments de JavaScript.
Il n’est pas difficile de comprendre pourquoi les parents incitent leurs enfants à apprendre à coder. Quel meilleur moyen de préparer notre progéniture à un avenir dirigé par les logiciels que de lui apprendre à les concevoir? Si tout est voué à être automatisé, il est beaucoup plus sûr d’être la personne en charge de l’automatisation. Et si apprendre à programmer est utile, il est encore plus utile de l’apprendre tôt. Mais bien que ces produits puissent enseigner aux enfants certains langages de programmation spécifiques, ils n'ont en réalité que très peu de choses à voir avec la création de logiciels.
«Nouvel alphabet»
L'un de mes anciens collègues a été formé dans un camp de programmation qui avait pour devise «Le code est le nouvel alphabet». Ce sentiment est au cœur de tous les ouvrages et jeux destinés à apprendre la programmation. Le descriptif d’un ouvrage très apprécié explique que commencer à coder jeune est «essentiel pour préparer les enfants à l’avenir», ce qui donne l’impression que ne pas enseigner aux enfants à programmer équivaut à ne pas leur apprendre à lire.
Bien évidemment, cela est ridicule. Le code n’est pas le nouvel alphabet. Si la majorité des parents savent lire, peu d’entre eux sont programmeurs, et la plupart n’ont pas la moindre idée des connaissances qu’un développeur doit avoir.
Programmer, c’est devoir faire preuve de créativité et d’une détermination à toute épreuve.
Les ouvrages sur la programmation destinés aux enfants présentent la programmation comme un ensemble de problèmes auxquels correspondent des solutions «correctes». Et ils promettent que si vos enfants maîtrisent la syntaxe du code, ils seront en mesure de faire des choses facilement et rapidement. Mais ce n’est pas ainsi que la programmation fonctionne.
Programmer, c’est tâtonner. Programmer, c’est devoir faire preuve de créativité et d’une détermination à toute épreuve. Être développeuse ne se cantonne pas à connaître la syntaxe du code. Il existe bien d’autres facultés qu’il est nécessaire de développer chez les très jeunes.
Au début de ma carrière, j’ai écrit un programme afin de configurer et administrer à distance un groupe de serveurs. Le code fonctionnait très bien. Du moins, c’est ce que j’ai pensé les dix-huit premières heures, jusqu’à ce que mon téléphone sonne au milieu de la nuit, m’avertissant que plusieurs de mes serveurs étaient en panne. Mal réveillé, j’ai rejoint mon ordinateur en titubant et j’ai relancé le code pour remplacer les serveurs en panne. Quelques heures plus tard, plusieurs autres serveurs étaient hors service.
Il n’y avait pas d’erreur de syntaxe. Si cela avait été le cas, les serveurs n’auraient jamais pu commencer à fonctionner. Le problème était bien plus complexe. L’isoler et le résoudre m’a demandé plusieurs semaines et de nombreuses nuits avec trop peu de sommeil.
Travail bien fait
Voilà ce qu'est la programmation. Essayer quelque chose, voir si ça marche, réessayer. Si un problème est simple à résoudre, il va être automatisé, ou au moins résolu avec un code open source. Reste la difficile tâche de créer quelque chose d’unique.
Il n’existe aucun livre expliquant comment résoudre un problème que personne n’a jamais rencontré, c’est pourquoi je ne veux pas que mes enfants apprennent la syntaxe de la programmation. Je veux qu’ils apprennent à résoudre des problèmes, à les examiner sous tous leurs angles, à être créatifs. Comment enseigner cela?
Essayer. Voir comment cela fonctionne. Essayer encore.
Un jour, mon fils a remarqué que l’une de nos chaises n’était plus stable, qu’elle bougeait de façon inquiétante lorsque l’on s’asseyait dessus. Nous l’avons examinée et il m’a aidé à cerner le problème: l’une des vis était desserrée. Je suis allé chercher l’une des nombreuses clés Allen que nous avons en trop à la maison et je lui ai montré comment resserrer la vis. Après cela, il s’est demandé ce qui se passerait s’il tournait la vis dans l’autre sens, ce qu’il a fait, jusqu’à ce que la vis sorte complètement.
Nous avons fini par démonter intégralement la chaise, avant de la remonter. Plusieurs fois de suite. En se trompant parfois. Jusqu’à ce qu’il soit satisfait du résultat. Essayer. Voir comment cela fonctionne. Essayer encore.
Évidemment, réussir à faire fonctionner un programme n’est que la première étape de la création d’un logiciel. L’étape suivante consiste à écrire un code clair, réutilisable et propre.
Aux premiers jours de ma vie professionnelle, j’ai écrit une fonction et l’ai confiée à un développeur senior pour correction. Il a jeté un coup d’œil à mon indentation hasardeuse et à mes conventions de nommage erratiques, et s’est contenté de dire: «Recommence.» Mon code fonctionnait et la syntaxe était correcte, mais mon travail était encore mauvais. Les bons développeurs ne se bornent pas à écrire quelque chose qui fonctionne: ils veulent que ce soit bien fait.
Cette impression de qualité, de pleine satisfaction du travail accompli est pour nombre de pros du développement l’une des choses les plus difficiles à atteindre. Un code bien conçu est quelque chose avec lequel on prend plaisir à travailler. À l’inverse, un code affreux risque d’engendrer des grincements de dents.
Les meilleurs développeurs et développeuses savent allier logique abstraite et sensibilité artistique. Apprendre à avoir confiance en ce sens de l’esthétique fait autant partie du développement informatique que tout algorithme ou modèle de code.
Curiosité à transmettre
Avec ma femme, nous avons récemment appris à notre fils à faire des sablés. À chaque fois que nous mélangions un nouvel ingrédient, nous nous arrêtions pour regarder la pâte et parler avec lui de sa consistance et de sa couleur. Était-elle bien lisse? Avions-nous mélangé tous les ingrédients de manière homogène?
Lorsque nous avons étalé la pâte, mon fils a tâté la surface et a bien observé ma femme pendant qu’elle lui expliquait comment faire pour que la pâte soit fine et uniforme. Mais le plus dur a été de découper les formes. Comme tous les enfants, il posait instinctivement l’emporte-pièce en plein milieu de la pâte. Nous avons essayé de lui expliquer comment placer les différentes formes les unes à côté des autres pour réaliser le plus de biscuits.
Il est difficile d’expliquer la différence qu’il y a entre se contenter de suivre des étapes et bien faire les choses.
Chaque étape –mesurer précisément les ingrédients, vérifier la consistance de la pâte, placer les formes pour perdre le moins de pâte possible– lui a appris quelque chose sur la qualité.
Il est difficile d’expliquer la différence qu’il y a entre se contenter de suivre des étapes, comme lors de la réalisation d’une recette, et bien faire les choses; cela ne peut se transmettre que par les sensations et l’expérience. Et dès que l’on implique ses enfants dans l’exécution de quelque chose qui compte pour nous, on leur apprend à bien faire les choses. On les prépare à écrire du code, en somme.
Mais ce n’est heureusement pas la seule chose qu’on leur enseigne. On leur montre également que le monde est plein de choses intéressantes à découvrir. On les incite à être passionnés et à chercher cette impression éphémère de qualité dans tout ce qu’ils font. Et le mieux dans tout cela, c'est que même s’ils ne deviennent jamais codeurs –ce qui sera le cas pour l’écrasante majorité d’entre eux–, ils pourront toujours s’en servir dans leur carrière, dans leurs passions, dans leur vie.
En forçant les enfants à apprendre la syntaxe du code, on renforce l’idée selon laquelle toute capacité qui ne serait pas directement utile sur le plan professionnel serait sans valeur. Les adultes peuvent apprendre à coder, mais seuls les enfants peuvent apprendre à être curieux.
http://www.slate.fr/source/171858/joe-morgan
General manager/Gestionnaire WebPresent: Communications & Analytics platforms provider.
5 ans100% d'accord.