Zondagmorgen. Terwijl de zoon (8jr) er voor het eerst op los bouwt met de micro:bit (een geweldige micro computer voor beginnende makers), vraag ik me af of je al klooiend kunt leren programmeren. Ik weet het niet zeker.
Ik weet wél dat er veel vraag is bij leerkrachten naar een creatieve toepassing van programmeren. En naar lessen die het op die manier benaderen. Omdat ze zien dat niet alle kinderen programmeren zomaar leuk vinden. Lastig; want als je al klooiend wat in elkaar hackt, is de kans bijna 100% dat het niet werkt.
Toch is dat klooien wel belangrijk. Onlangs besprak ik dit met onze programmeurs bij Fonk. Mannen en vrouwen en uit minstens 4 verschillende landen. Van front-end tot hardcore java. Van alles dus. Hoe zijn zij programmeur geworden? Waar is de liefde ontstaan? Juist: door te klooien.
Ruwe liefde
Allemaal vonden ze de liefde voor code door te hacken; door bestaande dingen ruw en vuil aan te passen. Slechte code, rotzooien tot het werkt en dan proberen te begrijpen hoe dat kan. Pas daarna leerden ze het goed en gestructureerd op hun beroepsopleiding. Maar die eerste hackerige liefde was daarvoor zowel voorwaarde als opstap.
En: die eerst liefde was zonder het zogenaamde economisch perspectief. Het was voor de lol, uit hobby. Geen van hen is begonnen met coderen als 11 jarige met een carrière voor ogen.
Creatief instrument
En zo moet het ook. Pedro de Bruyckere zei het onlangs heel mooi in een interview met Remco Pijpers van Kennisnet. Vrij naar zijn uitspraken: Je moet kinderen niet leren programmeren vanwege het bedrijfsleven of omdat ze dan logisch leren denken (daar is nog steeds geen bewijs voor), maar omdat je ze wilt laten zien dat het bestaat, dat het iets leuks is dat ze kunnen leren kennen, waarna ze dan zelf wel beslissen wat ze daarmee willen. Mijn interpretatie: dat ze het gaan zien als één van de creatieve instrumenten die ze hebben.
En misschien is een hyper gestructureerde theoretische aanpak in het begin niet nodig. Bovendien hoeven we helemaal niet van die hard core code types te worden.
De toekomst is aan de generalisten
Niels de Keizer (collega en mede oprichter van Fonk) schetste me een mooi beeld. Wat hem betreft zijn er twee types programmeurs:
- De specialisten; de hard core code bouwers: zij zitten met hun handen en hersenen diep in de code. Kennen de theorie deep down en schrijven daadwerkelijk regels code.
- De generalisten: zij combineren bestaande componenten tot werkende systemen. Zij denken als ontwerpers en gebruiken heel pragmatisch dat wat voorhanden is: api glue.
Wat Niels betreft zullen de generalisten winnen: voor het handwerk (van de codebouwers) zal in de toekomst steeds minder menskracht nodig zijn: gestructureerd werk kun je automatiseren. Maar de generalisten zullen als ontwerpers creatief moeten blijven combineren. En dat kun je nooit automatiseren. Voila. Toekomst. (Waarschijnlijk ligt het veel genuanceerder, maar ik vind dit denken op zijn minst verhelderend.)
Economisch perspectief?
Nu lijkt het misschien of ik het heb over mensen die programmeur willen worden. Maar dat bedoel ik niet: we zijn allemaal steeds meer dat soort generalisten. Zo heb ik een handig IFTT script draaien dat mij ’s morgens een bericht stuurt als het zo koud is dat ik handschoenen aan moet. En ik ben echt geen programmeur! Maar wel iemand die altijd haar handschoenen vergeet.
Dus ja, ik denk dat het goed is alle kinderen dat denken te laten ervaren. Zodat ze zelf kunnen beslissen of ze er iets mee willen (voor later), maar ook omdat het gewoon leuk en creatief is. (En -zoals bij mij- onderdeel van je dagelijks leven.) De microcomputer staat dan ook op mijn poster, maar nadrukkelijk als één van de dingen. Naast gist en de naaimachine. Allemaal belangrijk wat mij betreft.
Goed. En hoe leer je dat aan?
Voor Expeditie micro:bit was dat een belangrijke vraag. We willen graag dat kinderen op hun creativiteit worden aangesproken tijdens het werken met de lessen, omdat ze de micro:bit dan ook als creatief instrument gaan beschouwen. Programmeren is het middel, het realiseren van een idee een doel. We hebben niet primair tot doel kinderen heel schoon coderen te leren, belangrijker in dit project is dat ze ervaring opdoen en plezier hebben. De behoefte aan diepere kennis zal daarna ontstaan.
Toen moest ik denken aan een lezing van Theisje van Dorsten die ik onlangs bijwoonde. Zij vertelde over het beoordelen van creatief werk. Wanneer is iets creatief? Zij noemt 3 bouwstenen van een creatief product: herinnering, verbeelding, vorm. Wat als ik haar verhaal combineer met het maken van creatieve programmeer opdrachten? Zou dat kunnen?
Het model laat ruimte voor allerlei soorten werk, en dat is goed. Vertaald naar ons project:
- Herinneringen: kinderen gebruiken hun eigen kennis, herinneringen en ideeën als uitgangspunt. We zorgen in de uitleg voor de koppeling naar de bestaande en bekende wereld. We zorgen dat de code meteen niet meer abstract voelt.
- Verbeelding: die kennis combineren ze met de micro:bit tot iets nieuws in de vorm van en plan of idee. We geven voorbeelden maar nodigen meteen daarna uit zelf dingen te verzinnen.
- Vorm: en ze maken het (samen) zelf. (Waarbij wij zorgen voor voldoende informatie, voorbeelden en materialen.) De kinderen bouwen de coolste dingen.
Ik heb gemerkt dat het heel goed kan, zelfs met hele kleine opdrachten. Je kunt én goed uitleggen, én meteen creativiteit uitlokken. Als je wordt uitgenodigd een vieze tekst te laten verschijnen op je bit in plaats van de tekst uit het voorbeeld ben je er al! Dus ja; klooiend en creatief. En misschien kan het ook nu pas, met die hele hele coole mirco:bit.
Onze lessen vorderen gestaag en ik verheug me enorm op het moment dat heel veel kinderen er mooie dingen door gaan maken. In de eerste test blijkt het al te werken: inmiddels heeft de zoon de micro:bit aan de WC deur getaped en klinkt Vader Jacob als je de deur open doet.
Al klooiend gebouwd. I rest my case.
Dit is natuurlijk geen pleidooi tegen de vele prachtige programmeer initiatieven, maar hopelijk aanvullend en inspirerend. Reacties zijn welkom!