jeudi 11 décembre 2014

Coder ou ne pas coder, voilà la question...

Aujourd'hui jeudi, beaucoup d'initiatives pour "apprendre à coder". Quézaco ? Décodons ce message.

Coder, cela veut dire "écrire dans un langage codifié et compréhensible par une machine". Il y a de multiples sortes de codage. Au début des ordinateurs, c'était complexe et réservé à des professionnels. Petit à petit, les systèmes de codage sont devenus de plus en plus faciles pour les débutants et les enfants. Aujourd'hui certains sont faciles à utiliser et très puissants. Moi, par exemple, j'aime beaucoup LiveCode dont j'ai parlé ici et ici. Avec un peu de patience, un esprit un peu logique et quelques idées on peut facilement écrire des "bouts de code" satisfaisants et même des applications comme on dit tout-à-fait utiles ou ludiques. Les informaticiens professionnels, eux, restent drapés dans leurs toges immaculées face à ces langages trop grand public, tout en se foutant de la gueule des autres informaticiens. Pour eux, ou pour ceux qui voudraient les comprendre, je vous recommande ce blog dessiné par des informaticiens pour des informaticiens ou des geeks. Hilarant et à lire au premier ou au second degré suivant votre humeur. La chasse au bug est un peu comme celle au dahu : on ne le trouve jamais complètement.

Aujourd'hui, quand vous parlez à votre téléphone (Siri sur un iPhone) par exemple pour lui demander de vous réserver un taxi pour maintenant, et si cela fonctionne, ce n'est pas du codage. C'est simplement que des codeurs professionnels ont, en amont, réussi à écrire des programmes pour décoder votre voix, analyser votre demande, déclencher une commande pour un taxi et à vous afficher le retour. Si ça ne marche pas il y a plusieurs causes : soit les programmeurs n'ont pas (encore) réussi à interpréter votre voix ou à déclencher une chaine complète de commandes ; soit vous avez mal formulé votre question ou vous avez la voix pâteuse et vous n'auriez pas dû danser toute la nuit, autant dormir jusqu'au premier métro Zzzzzzz.

Il y a donc des tentatives au plus haut niveau pour amener les jeunes et les autres à comprendre comment coder et pourquoi le faire. Exemple d'Obama ici, en vrai ou en BD, et d'Hollande ce jeudi.
Finalement coder à quoi ça sert ? Pour les politiques cela a la vertu d'enseigner une bonne pratique, teintée de bon sens et d'esprit logique. Bien formuler une instruction pour obtenir le bon résultat, plutôt que de passer son temps à râler ou à mettre en place des règles, puis des exceptions aux règles sans oublier les exceptions aux exceptions aux règles. C'est un peu un voeu pieux évidemment car le monde n'est pas rationnel. Mais les spécialistes savent bien que le rationnel n'est pas loin en dessous. Un exemple : lorsqu'il y a une cinquantaine d'années un universitaire informaticien a édit un petit programme (Eliza) pour simuler le comportement d'un psychothérapeute et que beaucoup de gens ont cru qu'il s'agissait soit d'un vrai humain soit de la première vraie intelligence artificielle créée, ils ont eu beaucoup de mal à accepter qu'un tel "comportement" soit si vraisemblable alors qu'il avait suffi de très peu de lignes de "code" pour arriver à ce résultat. Une simulation presqu'aussi vraie que nature, alors qu'en fait c'était juste un exercice. La réalité est donc facile à imiter, à coder... dans certains cas.

Un des débats, en France, porte sur l'apprentissage ou non à l'école du codage informatique. Le corps enseignant est divisé, une fois de plus. Lisez cet article et son enquête officielle. Il faut savoir, en tous cas dans les collèges et lycées normaux que l'informatique est mal traitée. Il y a des "heures supplémentaires" pour les professeurs en charge de l'informatique, mais elles sont très peu nombreuses et sont trustées par les profs de maths ou de physique. Les littéraires ne veulent souvent rien entendre et certains obligent encore les élèves à écrire avec un stylo plume. Il y a de plus en plus d'équipements informatiques, par exemple des tableaux blancs numériques branchés sur des ordinateurs pour des présentations et des cours plus "animés". Mais lorsqu'il faut faire venir un collègue pour l'installer, l'allumer, le dépanner ou simplement s'en faire expliquer le fonctionnement, un certain nombre de profs sont réticents ou tout simplement ignorants. Cela changera avec la génération des digital natives, mais ce n'est pas encore le cas. Lire, écrire et calculer sont des apprentissages de base admis par tous. Coder ? un nouvel apprentissage de base ? Ou plutôt ne faudrait-il pas parler de "raisonner logiquement" ?

Quels arguments peut-on donc invoquer pour amener les gens - et les jeunes en particulier - à coder ? Voici une petite liste personnelle, à compléter par vous-même :

- coder, c'est se donner la sensation qu'on peut contrôler les machines, au lieu de les subir en consommateur ou en cible marketing. C'est vrai, même si certains programmes sont bien trop complexes pour les humains normaux. C'est encore vrai même en sachant que certains programmes trop complexes sont écrits en fait par d'autres programmes...
- coder c'est un jeu logique, pour ceux qui aiment résoudre des énigmes de toutes sortes, en suivant des méthodes, en en inventant. Les ordinateurs sont rapides pour certaines choses et cela ne les gêne pas de tester un million de possibilités pour trouve la bonne.
- coder c'est se placer au-dessus de la machine et lui faire faire ce qu'on fut, même si c'est juste tracer un trait. La différence entre coder un trait ou utiliser un programme déjà fait pour dessiner un trait est essentielle : dans le deuxième cas on utilise du code sans se poser de question, comme lorsqu'on conduit une voiture, et dans le premier on sait qu'on peut ouvrir le capot et contrôler un câble débranché. Plein de gens n'ont pas besoin de cela, jusqu'au moment où...
- coder c'est ressentir l'élégance d'une chose bien faite, un peu comme en maths. Un code "bien construit" fait ressentir à son auteur la même satisfaction que celle de l'artisan ou du bricoleur qui a fabriqué un bel objet. On peut fabriquer salement des objets beaux, on peut fabriquer proprement des objets inutiles, mais rien ne vaut la fabrication d'un bel objet de manière élégante. Pareil pour le codage.
- coder, c'est comme une nouvelle langue. Un apprentissage utile pour s'enrichir de la diversité du monde. On parle souvent de diversité culturelle ou de diversité linguistique. On devrait également parler de la diversité informatique, loin des oukases des ayatollahs autour de certaines solutions (cf. le débat idéologique sur les logiciels ouverts, ou libres par exemple).
- coder, c'est produire un résultat et il y a un côté magique, une fois que c'est fait pout ceux qui ne savent pas le faire et qui découvrent simplement le résultat. Un peu comme un prestidigitateur qui réalise un tour de cartes bluffant, avec le sourire de celui qui sait.
- coder c'est une compétence utilisable un peu partout (pas partout évidemment). S'en priver c'est s'affaiblir par rapport à ceux qui savent ou sauront le faire. Les français sont réputés bons dans le domaine, peut-être parce que nous sommes un peuple cartésien et qu'un programme c'est un ensemble de difficultés réparties en blocs et coupées en plus petits ensembles. Le monde n'est pas cartésien, mais heureusement de multiples systèmes de développement permettent aujourd'hui d'être utilisés avec des formes de logiques différentes : procédurale, objet, systémique, floue...
- coder c'est un nouveau territoire pour les curieux. Pour mieux comprendre comment marche le monde numérique et pour s'y sentir moins perdu. Et pour être capable de discuter avec ceux qui l'ont compris, histoire de ne pas rompre le contact avec ces nouvelles générations qui tapent plus vite que vous sur un clavier ;)


Alors oui, pourquoi n'essayeriez-vous pas de vous y mettre aussi ?


Aucun commentaire:

Enregistrer un commentaire