Apprenez à coder

La semaine dernière, Jeff Atwood (fondateur de Stack Overflow) a initié un débat sur son blog avec un article intitulé « Par pitié, n’apprenez pas à coder » :

La tendance à dire que « tout le monde devrait apprendre à programmer » est tellement hors de contrôle que le maire de New York City a réellement juré d’apprendre à coder en 2012.

Le Maire de New York veut apprendre à coder en 2012

C’est un noble geste pour recueillir les votes de la communauté high-tech de NYC, mais si le maire de New York City a vraiment besoin de taper du code JavaScript pour faire son boulot, c’est qu’il y a quelque chose de profondément, horriblement, terriblement de travers avec les politiques dans l’état de New York. Même si M. Bloomberg « apprenait à coder », avec mes excuses à Adam Vandenberg, je suppose que ça donnerait quelque chose comme ça :
10 PRINT "I AM MAYOR"
20 GOTO 10
Heureusement, les chances pour pour que cette fantaisie technologique arrive, même pour plaisanter, sont nulles, et pour de bonnes raisons : le maire de New York City va on l’espère passer son temps à faire le travail que des employés contribuables le payent pour faire à la place. D’après le site du bureau du maire, ça signifie travailler sur les programmes contre l’abstention à l’école, les améliorations des transports publics, le budget de la ville pour 2013, et… il faut vraiment que je continue ?

Pour ceux qui soutiennent que programmer est une compétence essentielle que nous devrions enseigner à nos enfants, au même titre que la lecture, l’écriture, ou l’arithmétique : pouvez-vous m’expliquer en quoi Michael Bloomberg serait meilleur à son travail quotidien de gestion de la plus grosse ville des USA s’il se réveillait un matin en étant un as du développement Java ? Il me semble évident qu’une lecture expérimentée, une écriture expérimentée, et au moins un niveau lycéen en mathématiques sont fondamentaux pour réaliser le travail d’un politique. Ou n’importe quel travail, pour ce que ça vaut. Mais comprendre des variables et des fonctions, des pointeurs et la récursivité ? Je ne vois pas.

Forcément, les réponses ont été vives et nombreuses. J’ai retenu notamment celle de Sacha Greif, webdesign Freelance : « Par pitié, apprenez à coder« .

« Apprendre à coder » ne veut pas forcément dire devenir le prochain Linus Torvalds, tout comme « apprendre à cuisiner » ne veut pas dire ouvrir un restaurant 3 étoiles.

Ça veut simplement dire avoir une compréhension basique du fonctionnement des ordinateurs plutôt que suivre aveuglément ce que vous dit un trombone qui parle (et peut être finalement être capable de programmer vos propres trombones qui parlent).

Si le premier article est particulièrement tranché, je reste persuadé que l’apprentissage de la programmation devrait être aujourd’hui obligatoire à l’école. Pas au même titre que la lecture, l’écriture ou les mathématiques. Mais au même titre que l’histoire, la géographie, la physique, la chimie, l’économie, ou la philosophie. Vous ne deviendrez pas un grand historien, chimiste ou philosophe en vous contentant des cours donnés au collège et au lycée. Mais aussi barbants que certains de ces cours ont pu vous paraître à l’époque, ils ont contribué à votre culture générale, et à la façon dont vous appréhendez et comprenez le monde qui vous entoure.

S’il me paraît important pour un quidam d’avoir des notions basiques en programmation, cela me semble carrément indispensable pour quelqu’un qui travaille dans le web. Mais c’est souvent loin d’être le cas chez les chefs de projet et les graphistes.

Chez Pixar, tous les employés sont invités à apprendre à dessiner :

Grâce à l’Université Pixar, les employés apprennent à voir le travail de la société (et de leurs collègues) sous un nouvel angle. « Les compétences qu’on développe sont des compétences dont nous avons besoin partout dans l’organisation. Pourquoi enseigner le dessin à des comptables ? Parce que des cours de dessin n’apprennent pas seulement aux gens à dessiner. Ça leur apprends à être plus observateurs. Il n’y a aucune société sur Terre qui ne bénéficierait pas d’avoir des employés plus observateurs. »

En apprenant à coder, vous n’apprenez pas seulement à coder (même si c’est plutôt cool). Vous apprenez à résoudre des problèmes. Je ne pense pas qu’il y ait une société sur Terre qui ne bénéficierait pas d’avoir des employés plus doués pour résoudre des problèmes. Ça vaut donc également pour le maire de New York.

Mais trop souvent, j’ai le sentiment que l’ignorance de la programmation parmi les chefs de projet web ou les graphistes est due à un total mépris du métier. « Je suis directrice artistique, je ne me vois absolument pas me lancer dans du développement JavaScript » (entendu à Paris Web, à 38min).

Quelque soit votre métier, vous devez être curieux, et ne jamais rechigner à apprendre quelque chose de nouveau. Récemment lues sur Reddit, je cautionne particulièrement ces paroles de Neil deGrasse Tyson :

Je suis poussé par deux philosophies principales. En savoir plus aujourd’hui sur le monde que j’en savais hier. Et en chemin, diminuer la souffrance des autres. Vous seriez surpris jusqu’où cela peut vous mener.

Ce serait hautain et condescendant de ne pas vouloir apprendre à cuisiner ou de ne pas vouloir apprendre une nouvelle langue.

Je pense que c’est hautain et condescendant de ne pas vouloir apprendre à coder. C’est décrédibilisant pour vous en tant que professionnel du web. C’est décrédibilisant pour vous en tant qu’être humain.