211service.com
Chers tous ceux qui enseignent la programmation : vous vous trompez
L'enseignement du codage est chaud. Codecademy notoirement inscrit Le maire de New York en tant qu'utilisateur (et a récemment enrôlé 10 millions de dollars de capital-risque ), et la société d'enseignement en ligne populaire Khan Academy vient de lancer une série de leçons de programmation . Backlash suivi: les programmeurs de carrière ont s'est moqué de l'idée de coder comme une alphabétisation, tandis qu'une étude universitaire a affirmé que certaines personnes peuvent coder, et d'autres non.
Bret Victor , un ancien concepteur d'interfaces pour Apple, pense qu'ils sont tout tort. Dans un essai interactif dévastateur et persuasif , il soutient que les sites de programmation de bricolage sont pour la plupart inutiles en raison de leurs interfaces opaques. (En utilisant les didacticiels en ligne de Khan, il écrit , c'est comme essayer d'apprendre à cuisiner en poignardant des boutons au hasard sur un micro-ondes sans étiquette.)
Mais ce n'est que la moitié du problème. Victor pense que la programmation elle-même est cassé. On dit souvent que pour bien coder, il faut être capable de penser comme un ordinateur. Pour Victor, c'est absurdement en arrière - et c'est la vraie raison pour laquelle la programmation est considérée comme fondamentalement difficile. Les ordinateurs sont Humain outils : pourquoi ne pouvons-nous pas les contrôler sur notre termes, en utilisant des techniques qui nous viennent naturellement à tous ?
Le principal problème avec la programmation se résume au fait que le programmeur doit imaginer l'exécution du programme et ne voit jamais les données, m'a dit Victor. Pour illustrer ce problème, il fait une autre analogie frappante avec la cuisine :
Évidemment, c'est une façon terrible d'apprendre à un débutant à cuisiner un plat. La plus grande idée de Victor est que c'est aussi un moyen terrible pour un chef expérimenté de créer de nouveaux plats. Les chefs ne sont pas obligés de simuler parfaitement tout entre les ingrédients et le nouveau soufflé dans leur tête avant de toucher l'un des aliments ; ils ne s'attendraient pas non plus à ce que tout ce qui se passe entre l'assemblage des ingrédients et la sortie du soufflé du four leur soit caché. Mais c'est ainsi qu'une grande partie du travail de programmation se déroule, selon Victor.
Pas étonnant que la programmation ressemble à quelque chose qui ceux qui ont un talent bizarre pour manipuler des symboles abstraits pourrait jamais faire. Nous l'avons configuré de cette façon.
L'essai de Victor est dense avec des exemples interactifs sur la façon de résoudre ce problème (ils ne sont malheureusement pas intégrables, donc définitivement cliquez pour les consulter ): de la refonte IDE afin qu'ils visualisent le flux de données d'une instruction à l'autre, à repenser les métaphores de base qui sous-tendent les langages de programmation eux-mêmes. (Alerte spoiler : l'homme de 45 ans Logo reçoit beaucoup plus d'amour que Traitement .)
Mais dans quel but ? La programmation est-elle vraiment foutue ? Alors, que se passe-t-il si nous, les normaux, ne sommes jamais vraiment capables de comprendre cela - les approches actuelles pour l'apprentissage et l'écriture de code ne sont-elles pas adéquates pour générer suffisamment de programmeurs pour que le monde continue de tourner ?
Hé bien oui. Mais seulement si vous vous abonnez à l'analogie des programmeurs en tant que plombiers, ce que Victor n'a catégoriquement pas. Bill Atkinson (créateur de Hypercarte ) voulait que la création de logiciels ressemble au dessin ou à l'écriture - quelque chose que tout le monde peut faire, dit Victor. Nous nous attendons à ce que tout le monde soit capable d'écrire une lettre. La possibilité de créer votre propre logiciel pour vos propres usages est très puissante.
Victor ne parle pas seulement de lancer votre propre client Twitter. Ce qui est vraiment puissant, c'est la capacité de construire/écrire ce qu'il appelle explications explorables : simulations interactives de vos propres idées et arguments, ou de ceux des autres. Et qu'est-ce qui se passerait si le prochain éditorial que vous avez lu sur le réchauffement climatique ou la sécurité nucléaire incluait un modèle intégré pour examiner ses revendications ? Il s'agit littéralement d'une programmation en tant qu'alphabétisation, c'est-à-dire une amplification de en pensant - avec le potentiel d'être mis à la disposition de n'importe qui. Mais seulement si nous sortons des recoins dans lesquels nous nous sommes peints sur ce qu'est la programmation, comment la faire et comment l'enseigner.
Pourtant, des millions de développeurs ne vont pas soudainement repenser la façon dont ils font leur travail ; des millions d'outils, d'applications, de langages de programmation et d'IDE ne peuvent pas être repensés du jour au lendemain. Victor dit que c'est juste une raison de plus pour commencer à rogner les fondations maintenant. Thomas Kuhn, auteur de Structure des révolutions scientifiques , a suggéré que lorsqu'un changement de paradigme se produit, les anciens scientifiques n'adoptent jamais réellement la nouvelle façon de penser, dit Victor. Ils viennent de prendre leur retraite et sont remplacés par une nouvelle génération qui pense d'une nouvelle manière.