Beste iedereen die leert programmeren: je doet het verkeerd

Leren coderen is hot. Codecademy beroemde aangemeld De burgemeester van New York als gebruiker (en onlangs $ 10 miljoen aan durfkapitaal binnengehaald ), en het populaire online onderwijsbedrijf Khan Academy net een reeks programmeerlessen gelanceerd . Weerslag volgde: carrièreprogrammeurs hebben spotte met het idee van codering als geletterdheid, terwijl een academische studie beweerde dat: sommige mensen kunnen coderen en anderen gewoon niet.





Bret Victor , een voormalig interface-ontwerper voor Apple, denkt dat ze allemaal mis. In een verwoestend en overtuigend interactief essay , stelt hij dat doe-het-zelf-programmeersites meestal nutteloos zijn vanwege hun ondoorzichtige interfaces. (Met behulp van Khan's online tutorials, he schrijft , is als proberen te leren koken door willekeurige knoppen op een niet-gelabelde magnetron te steken.)

Maar dat is slechts de helft van het probleem. Victor denkt dat zelf programmeren is kapot. Er wordt vaak gezegd dat om goed te coderen, je moet kunnen denken als een computer. Voor Victor is dit absurd achterlijk - en het is de echte reden waarom programmeren als fundamenteel moeilijk wordt beschouwd. Computers zijn menselijk tools: waarom kunnen we ze niet controleren op? ons termen, met behulp van technieken die voor ons allemaal vanzelfsprekend zijn?

Het grootste probleem met programmeren komt neer op het feit dat de programmeur zich de uitvoering van het programma moet voorstellen en nooit de gegevens ziet, vertelde Victor me. Om dit probleem te illustreren, maakt hij nog een levendige analogie met koken:



Het is duidelijk dat dit een vreselijke manier is om een ​​beginner te leren hoe hij een gerecht moet bereiden. Victors grotere inzicht is dat het voor een ervaren chef-kok ook een vreselijke manier is om nieuwe gerechten te maken. Chef-koks zijn niet gedwongen om alles tussen ingrediënten en nieuwe soufflé in hun hoofd perfect te simuleren voordat ze iets van het voedsel aanraken; ze zouden ook niet verwachten dat alles wat er gebeurt tussen het samenstellen van de ingrediënten en het uit de oven halen van de soufflé voor hen verborgen blijft. Maar dit is hoe veel van het programmeerwerk eigenlijk gebeurt, volgens Victor.

Geen wonder dat programmeren iets lijkt dat alleen degenen met een grillig talent voor het manipuleren van abstracte symbolen ooit zou kunnen doen. We hebben het zo ingesteld.

Victor's essay staat vol met interactieve voorbeelden van hoe dit op te lossen (ze kunnen helaas niet worden ingebed, dus zeker klik door om ze te bekijken ): van herontwerpen Ides zodat ze de gegevensstroom van de ene instructie naar de andere visualiseren, tot het heroverwegen van de basismetaforen die de programmeertalen zelf ondersteunen. (Spoiler alert: de 45-jarige) Logo krijgt veel meer liefde dan Verwerken .)



Maar met welk doel? Is programmeren echt zo verpest? Dus wat als wij, normale mensen, het nooit echt onder de knie krijgen - zijn de huidige benaderingen voor het leren en schrijven van code niet voldoende om voldoende programmeurs te genereren om de wereld draaiende te houden?

Wel, ja. Maar alleen als je de programmeurs als loodgietersanalogie onderschrijft, wat Victor nadrukkelijk niet doet. Bill Atkinson (maker van) Hyperkaart ) wilde dat het maken van software zou zijn als tekenen of schrijven - iets dat iedereen zou kunnen doen, zegt Victor. We verwachten dat iedereen een brief kan schrijven. De mogelijkheid om uw eigen software te maken voor uw eigen gebruik is zeer krachtig.

Victor heeft het niet alleen over het draaien van je eigen Twitter-client. Wat echt krachtig is, is het vermogen om te bouwen/schrijven wat hij noemt verkenbare verklaringen : interactieve simulaties van uw eigen ideeën en argumenten – of die van anderen. Wat als het volgende opiniestuk dat je las over het broeikaseffect of nucleaire veiligheid een ingebouwd model bevatte om de beweringen ervan te onderzoeken? Dit is letterlijk programmeren als geletterdheid - dat wil zeggen, een versterking van denken - met het potentieel om voor iedereen beschikbaar te worden gemaakt. Maar alleen als we buiten de hoeken stappen waarin we onszelf hebben geschilderd over wat programmeren is, hoe het te doen en hoe het te onderwijzen.



Toch zullen miljoenen ontwikkelaars niet plotseling heroverwegen hoe ze hun werk doen; miljoenen tools, apps, programmeertalen en IDE's kunnen niet van de ene op de andere dag opnieuw worden ontworpen. Victor zegt dat dat gewoon een reden te meer is om nu de fundamenten weg te hakken. Thomas Kuhn, auteur van Structuur van wetenschappelijke revoluties , suggereerde dat wanneer een paradigmaverschuiving plaatsvindt, de oude wetenschappers nooit de nieuwe manier van denken overnemen, zegt Victor. Ze gaan gewoon met pensioen en worden vervangen door een nieuwe generatie die op de nieuwe manier denkt.

[ Leerbaar programmeren door Bret Victor ]

zich verstoppen