Lire, écrire, compter et coder ? Faut pas déconner !

L’informatique est de plus en plus présente dans nos vies et globalement toujours aussi absente dans l’éducation. Résultat, une sorte de frénésie s’est emparée de la plupart des observateurs : il faut apprendre à la société à coder !

Une voix discordante vient cependant de se faire entendre récemment en suscitant de nombreuses réactions. Une voix de l’intérieur, puisqu’il s’agit de Jeff Atwood, développeur de renom.

L’auteur de cet article est Jeff Atwood. L’article publié sur le site de l’association Infini est une publication relais de sa traduction.

Le nouveau mantra « tout le monde devrait apprendre à programmer » a pris des proportions tellement incontrôlables ces derniers temps que même le maire de New York a pris cette résolution du nouvel an.

Voilà certes une noble déclaration propre à engranger les suffrages de la communauté techno de NYC, mais si le maire de la ville de New York a vraiment besoin de tricoter du code JavaScript pour faire son travail, c’est un symptôme de grave maladie pour la vie politique de l’état de New York. Même si M. Bloomberg se mettait vraiment à « apprendre à coder », que Adam Vandenberg me pardonne cet emprunt, je crois qu’on aboutirait à quelque chose comme :

10 PRINT "JE SUIS LE MAIRE"

20 GOTO 10

Heureusement, les risques qu’une telle prouesse technologique se produise sont proches de zéro, et pour une bonne et simple raison : le maire de New York passera plutôt son temps à faire le travail pour lequel les contribuables le paient, et c’est tant mieux. Selon la page d’accueil du secrétariat du maire, il s’agit de lutter contre l’absentéisme scolaire, pour l’amélioration des services de transports en commun, pour l’équilibre de budget municipal en 2013 et… dois-je vraiment poursuivre ?

Je m’adresse à ceux qui prétendent que savoir programmer est une compétence essentielle que nous devrions enseigner à nos enfants, au même titre que lire, écrire et compter. Pourriez-vous m’expliquer en quoi Micheal Bloomberg accomplirait mieux sa tâche quotidienne à la tête de la plus grande ville des USA s’il se réveillait un beau matin en étant devenu un petit génie de la programmation en Java ? Il me semble évident qu’être un lecteur averti, un écrivain talentueux, et posséder le minimum requis en mathématiques sont essentiels à l’exécution du travail d’un politicien. Et à n’importe quel autre emploi du reste. Ça l’est beaucoup moins pour ce qui concerne la maîtrise des variables, des fonctions, des pointeurs ou de la récursivité,

Attendez, j’adore programmer. Je suis également convaincu que la programmation c’est important… mais dans le contexte adéquat, et pour certaines personnes. Tout comme un grand nombre de compétences. Je n’inciterais pas tout le monde à apprendre la programmation, pas plus que je ne pousserais tout le monde à apprendre la plomberie. Ce serait ridicule, non ?

La mode du « tout le monde devrait apprendre à coder » n’est pas seulement néfaste parce qu’elle met la programmation sur un pied d’égalité avec d’autres compétences comme la lecture, l’écriture et le calcul. Selon moi, elle est mauvaise pour un grand nombre d’autres raisons.

  • Elle part du postulat que le monde entier désire ardemment davantage de code. En trente ans de carrière comme programmeur, j’ai constaté que… ce n’est pas le cas. Devriez-vous apprendre à écrire du code ? Non, je n’en démords pas. Vous devriez apprendre à écrire le moins de code possible. Et même pas de code du tout, idéalement.
  • Elle présuppose que la programmation est un but en soi. Les développeurs de logiciels ont tendance à devenir des drogués de la programmation qui croient que leur travail consiste à écrire du code. Ils se trompent. Leur travail consiste à résoudre des problèmes. Ne célébrez pas la création de code, célébrez la mise au point de solutions. Nous avons déjà une pléthore de codeurs complètement accros à l’idée d’ajouter encore une ligne de code.
  • Elle met la charrue avant les bœufs. Avant de vous précipiter pour apprendre à coder, analysez soigneusement la nature exacte de votre problème. Avez-vous seulement un problème, au fait ? Êtes-vous capable de l’expliquer à d’autres de manière compréhensible ? Avez-vous mené une recherche approfondie des possibles solutions à ce problème ? La programmation permet-elle de résoudre le problème ? En êtes-vous sûr ?
  • Elle suppose qu’adjoindre à la force de travail des codeurs naïfs, inexpérimentés, et même-pas-trop-sûrs-d’aimer-ce-truc-de-programmer serait un gain appréciable pour l’humanité. Je pense que c’est exact si vous considérez qu’un mauvais programmeur peut facilement provoquer deux créations d’emploi nouvelles par an. Et à ce propos, notez que la plupart de ceux qui s’autoproclament programmeurs ne savent même pas coder, vous me pardonnerez donc mon scepticisme sur ce préjugé « tout me monde peut apprendre à coder ».
  • Elle suppose qu’il existe une cloison mobile de l’épaisseur d’une feuille à cigarette entre apprendre à programmer et en faire une activité professionnelle rémunérée. Regardez un peu ces nouveaux programmeurs à qui l’on propose des emplois payés sur la base de $79k/an (NdT : environ 62 000 euros) après avoir assisté à une simple session d’entraînement de deux mois et demi ! Vous pouvez même apprendre le Perl par vous-même en 24 heures ! Certes j’adore que la programmation soit un domaine égalitaire dans lequel les diplômes et les certifications sont sans objet en regard de l’expérience, mais il va bien falloir vous y plonger pendant dix mille heures comme nous tous.

Je suppose que je peux accepter l’idée qu’apprendre un peu de programmation vous permet de savoir reconnaître ce qu’est le code, et quand le code peut être un moyen adéquat d’aborder un problème que vous rencontrez. Mais je peux aussi bien repérer des problèmes de plomberie quand j’en vois sans avoir bénéficié d’une formation spécifique dans ce domaine. La population au sens large (et ses dirigeants politiques) tirerait probablement le meilleur profit d’une meilleure compréhension du fonctionnement d’un ordinateur et d’Internet. Être capable de se débrouiller avec Internet est devenu une compétence vitale de base, et c’est ce qui devrait être notre obejctif principal prioritaire, avant de nous jeter à corps perdu dans la programmation.

Merci de ne pas argumenter en faveur de l’apprentissage de la programmation pour le plaisir d’apprendre à programmer. Ou pire encore pour le nombre de zéros sur le bulletin de paie. Je suggère humblement que nous passions plutôt du temps à apprendre à…

  • Mener des recherches avec avidité, et comprendre comment fonctionnent les choses autour de nous à un niveau basique.
  • Communiquer efficacement avec les autres êtres humains.

Voilà des compétences qui vont bien au-delà de la pure programmation et qui vous aideront dans toutes les circonstances de votre vie.

Posté le 25 mai 2012