Liebe alle, die Programmieren lehren: Sie machen es falsch

Codierung zu unterrichten ist heiß. Codeakademie bekanntlich angemeldet New Yorks Bürgermeister als Nutzer (und kürzlich 10 Millionen Dollar Risikokapital eingeworben ) und das beliebte Online-Lehrunternehmen Khan Academy gerade eine Reihe von Programmierlektionen gestartet . Es folgte Gegenreaktion: Karriereprogrammierer haben spottete über die Idee des Programmierens als Alphabetisierung, während eine akademische Studie das behauptete manche Leute können programmieren, andere einfach nicht.

Bret Victor , ein ehemaliger Interface-Designer für Apple, denkt, dass sie es sind alle falsch. In ein verheerender und überzeugender interaktiver Essay , argumentiert er, dass DIY-Programmierseiten wegen ihrer undurchsichtigen Schnittstellen meist nutzlos sind. (Mit Khans Online-Tutorials kann er schreibt , ist, als würde man versuchen zu lernen, wie man kocht, indem man auf zufällige Knöpfe einer unbeschrifteten Mikrowelle sticht.)

Aber das ist nur das halbe Problem. Victor denkt das selbst programmieren ist kaputt. Es wird oft gesagt, dass man, um gut zu programmieren, in der Lage sein muss, wie ein Computer zu denken. Für Victor ist dies absurd rückständig – und es ist der wahre Grund, warum Programmieren als grundsätzlich schwierig angesehen wird. Computer sind Mensch Tools: Warum können wir sie nicht kontrollieren? unsere mit Techniken, die für uns alle selbstverständlich sind?



Das Hauptproblem bei der Programmierung besteht darin, dass sich der Programmierer die Ausführung des Programms vorstellen muss und die Daten nie sieht, sagte mir Victor. Um dieses Problem zu veranschaulichen, macht er eine weitere anschauliche Analogie zum Kochen:

Offensichtlich ist dies eine schreckliche Art, einem Anfänger beizubringen, wie man ein Gericht zubereitet. Victors größere Erkenntnis ist, dass es für einen erfahrenen Koch auch eine schreckliche Art ist, neue Gerichte zu kreieren. Köche sind nicht gezwungen, alles zwischen Zutaten und neuem Souffle in ihrem Kopf perfekt zu simulieren, bevor sie eines der Lebensmittel berühren; Auch würden sie nicht erwarten, dass ihnen alles, was zwischen dem Zusammenstellen der Zutaten und dem Herausziehen des Souffles passiert, verborgen bleibt. Aber so läuft laut Victor ein Großteil der Programmierarbeit tatsächlich ab.

Kein Wunder, dass Programmieren nur etwas zu sein scheint diejenigen, die ein verrücktes Händchen dafür haben, abstrakte Symbole zu manipulieren jemals tun könnte. Wir haben es so eingerichtet.

Victors Essay ist vollgepackt mit interaktiven Beispielen, wie man dies beheben kann (sie lassen sich leider nicht einbetten, also definitiv Klicken Sie sich durch, um sie zu überprüfen ): von der Neugestaltung IDEs damit sie den Datenfluss von einer Anweisung zur nächsten visualisieren, um die grundlegenden Metaphern zu überdenken, die den Programmiersprachen selbst zugrunde liegen. (Spoiler-Alarm: der 45-Jährige Logo bekommt viel mehr Liebe als wird bearbeitet .)

Aber zu welchem ​​Zweck? Ist Programmieren wirklich so vermasselt? Was also, wenn wir Normalen nie wirklich in der Lage sind, den Dreh rauszubekommen – sind die aktuellen Ansätze zum Erlernen und Schreiben von Code nicht ausreichend, um genügend Programmierer zu generieren, um die Welt am Laufen zu halten?

Nun ja. Aber nur, wenn Sie die Analogie der Programmierer als Klempner abonnieren, was Victor nachdrücklich nicht tut. Bill Atkinson (Schöpfer von Hypercard ) wollte, dass das Erstellen von Software wie Zeichnen oder Schreiben ist – etwas, das jeder tun kann, sagt Victor. Wir erwarten, dass jeder einen Brief schreiben kann. Die Möglichkeit, Ihre eigene Software für Ihren eigenen Gebrauch zu erstellen, ist sehr mächtig.

Victor redet nicht nur davon, seinen eigenen Twitter-Client zu starten. Was wirklich mächtig ist, ist die Fähigkeit, das aufzubauen/zu schreiben, was er nennt erforschbare Erklärungen : interaktive Simulationen Ihrer eigenen Ideen und Argumente – oder denen anderer. Was ist, wenn der nächste op-ed, den sie über globale erderwärmung oder nukleare sicherheit lesen, enthält ein eingebautes modell zur prüfung der behaupteten? Dies ist buchstäblich Programmierung als Alphabetisierung – d. h. eine Erweiterung von Denken – mit dem Potenzial, jedem zugänglich gemacht zu werden. Aber nur, wenn wir die Ecken verlassen, in die wir uns hineingemalt haben, was Programmieren ist, wie man es macht und wie man es lehrt.

Dennoch werden Millionen von Entwicklern nicht plötzlich ihre Arbeit überdenken; Millionen von Tools, Apps, Programmiersprachen und IDEs können nicht über Nacht neu gestaltet werden. Victor sagt, das sei nur ein Grund mehr, jetzt an den Fundamenten zu kratzen. Thomas Kuhn, Autor von Struktur wissenschaftlicher Revolutionen , schlug vor, dass die alten Wissenschaftler bei einem Paradigmenwechsel nie wirklich die neue Denkweise übernehmen, sagt Victor. Sie gehen einfach in Rente und werden durch eine neue Generation ersetzt, die neu denkt.

[ Erlernbare Programmierung von Bret Victor ]

verbergen