211service.com
Kære alle, der underviser i programmering: I gør det forkert
Det er varmt at undervise i kodning. Kodeakademi berømt tilmeldt New Yorks borgmester som bruger (og for nylig skaffet 10 millioner dollars i risikovillig kapital ), og den populære online-undervisningsvirksomhed Khan Academy netop lanceret en række programmeringslektioner . Tilbageslag fulgte: karriere programmører har hånede ideen om kodning som læsefærdighed, mens en akademisk undersøgelse hævdede det nogle mennesker kan kode, og andre kan simpelthen ikke.
Bret Victor , en tidligere grænsefladedesigner for Apple, mener, at de er alle forkert. I et ødelæggende og overbevisende interaktivt essay , hævder han, at gør-det-selv-programmeringssider for det meste er ubrugelige på grund af deres uigennemsigtige grænseflader. (Ved at bruge Khans online tutorials, han skriver , er som at prøve at lære at lave mad ved at stikke i tilfældige knapper på en umærket mikrobølgeovn.)
Men det er kun halvdelen af problemet. Victor mener det selve programmeringen Er ødelagt. Det siges ofte, at for at kode godt, skal du kunne tænke som en computer. For Victor er dette absurd bagvendt - og det er den egentlige grund til, at programmering ses som grundlæggende hårdt. Computere er human værktøjer: hvorfor kan vi ikke styre dem på vores vilkår, ved at bruge teknikker, der kommer naturligt for os alle?
Hovedproblemet med programmering bunder i, at programmøren skal forestille sig programmets udførelse og aldrig ser dataene, fortalte Victor. For at illustrere dette problem laver han en anden levende analogi til madlavning:
Det er klart, at dette er en frygtelig måde at lære en nybegynder, hvordan man laver en ret. Victors større indsigt er, at det er en frygtelig måde for en erfaren kok også at skabe nye retter. Kokke er ikke tvunget til perfekt at simulere alt mellem ingredienser og ny soufflé i hovedet, før de rører ved noget af maden; de ville heller ikke forvente, at alt, hvad der sker mellem at samle ingredienserne og trække soufflen ud af ovnen, er skjult for dem. Men sådan foregår meget af arbejdet med programmering faktisk ifølge Victor.
Ikke underligt, at programmering virker som noget, der kun dem med en freakish evne til at manipulere abstrakte symboler nogensinde kunne gøre. Vi har sat det op på den måde.
Victors essay er tæt med interaktive eksempler på, hvordan man løser dette (de kan desværre ikke indlejres, så bestemt klik igennem for at tjekke dem ud ): fra redesign IDE'er så de visualiserer strømmen af data fra den ene instruktion til den næste, til at genoverveje de grundlæggende metaforer, der ligger til grund for selve programmeringssprogene. (Spoileralarm: den 45-årige Logo får meget mere kærlighed end Forarbejdning .)
Men til hvilket formål? Er programmering virkelig alt det skruet sammen? Så hvad nu hvis os normale aldrig rigtig er i stand til at få styr på det – er de nuværende tilgange til at lære og skrive kode ikke tilstrækkelige til at generere nok programmører til at holde verden i gang?
Altså ja. Men kun hvis du abonnerer på programmørerne som blikkenslagere analogi, hvilket Victor eftertrykkeligt ikke gør. Bill Atkinson (skaber af Hypercard ) ønskede at skabe software skulle være som at tegne eller skrive - noget, som alle kunne gøre, siger Victor. Vi forventer, at alle kan skrive et brev. Muligheden for at skabe din egen software til dit eget brug er meget kraftfuld.
Victor taler ikke kun om at rulle din egen Twitter-klient. Det, der virkelig er kraftfuldt, er evnen til at bygge/skrive, hvad han kalder udforskelige forklaringer : interaktive simuleringer af dine egne ideer og argumenter – eller andres. Hvad hvis den næste op-ed du læste om global opvarmning eller nuklear sikkerhed inkluderede en indbygget model til at undersøge dens påstande? Dette er bogstaveligt talt programmering som læsefærdighed – det vil sige en forstærkning af tænker - med potentiale til at blive gjort tilgængelig for enhver. Men kun hvis vi træder uden for de hjørner, vi har malet os ind i om, hvad programmering er, hvordan man gør det, og hvordan man lærer det.
Alligevel kommer millioner af udviklere ikke pludselig til at genoverveje, hvordan de udfører deres arbejde; millioner af værktøjer, apps, programmeringssprog og IDE'er kan ikke redesignes fra den ene dag til den anden. Victor siger, at det bare er mere grund til at begynde at hugge løs på fundamenterne nu. Thomas Kuhn, forfatter til Struktur af videnskabelige revolutioner , foreslog, at når der sker et paradigmeskifte, adopterer de gamle videnskabsmænd faktisk aldrig den nye måde at tænke på, siger Victor. De går bare på pension, og bliver erstattet af en ny generation, der tænker på den nye måde.