Verdieping

‘Computer says no’: waarom iedereen moet kunnen programmeren

0

Column – Het was een diner van vijf gezworenen die met elkaar gemeen hebben dat ze een sleutelrol spelen in de verandering van de organisatie waar ze bij werken. Het was in de Goudfazant, in Amsterdam, want aan de omgeving mag het niet liggen. En het voornemen was om met elkaar te praten over gedeelde ervaringen, frustraties, gestolde gewoontes, bokkige bestuurders en muitende middenkaders.

Een sollicitant moet kunnen programmeren

Onder ons was de Grote Verzekeraar, de Grote Transporteur en de innovatieve Cool Clothing Brand. Allemaal zijn we bezig met het veranderen van organisaties. We hadden het over de remmende emmers in organisaties, de plekken waar de grootste weerstand verwacht kan worden. We hadden het over het lijstje met begrippen die als vergane relikwieën uit de oude wereld terugkwamen in de dagelijkse praktijk. Wekelijkse vergaderingen. Jaarlijkse budgetrondes. Langlopende contracten. Eco-systeem. Sloeprolprocedure. De afkorting w.v.t.t.k. Incident-management.

Èn we hadden het over het aannemen van talent, nieuwe medewerkers die het vermogen hebben om op een manier te denken die past bij de nieuwe tijd. Iedereen was het er over eens dat eigenlijk iedere kandidaat zou moeten kunnen programmeren, of het nu een marketeer is of een analist, een inkoper of een ontwerper. Helder dus. Een sollicitant maakt pas kans als hij kan programmeren.

Programmeren als verplicht vak op middelbare scholen

Een andere aanleiding. Het marathoninterview is weer terug. Drie uur lang wordt gesproken met een gast. Bijvoorbeeld professor Max Welling, hoogleraar aan de UVA-faculteit der Natuurwetenschappen, Wiskunde en Informatica, veel bezig met machine learning. In het gesprek met Jelle Brandt Corstius kwam de te verwachten reorganisatie van de arbeidsmarkt ter sprake. De robots rukken op en veel krachten (van zorgverlener tot boekhouder, van rijschoolhouder tot advocaat) zullen zoetjes moeten nadenken over een omscholing. Ga met elkaar zitten, denk na over de mogelijkheden, gedraag je als een start-up en je zult zien dat in ieder plan dat langskomt het voordeel heeft als je begrijpt wat programmeren is. Wat je wel en niet kunt vragen. En dus was het duo in de studio het er helemaal over eens dat programmeren een verplicht vak op middelbare scholen zou moeten worden.

Volstrekt eens. Sterker nog, waarom niet beginnen op de basisschool?

Iedereen heeft te maken met systemen

Iedereen, en dus zeker ook iedere scholier heeft volop te maken met systemen, met apparaten die in hun gedrag worden gestuurd door geschreven programmeerregels. Geen scholier zonder een Facebookaccount, geen scholier dus die zich mag ontslaan van de plicht om na te denken over hoe Facebook met flags werkt en wat de verbinding kan zijn tussen het zoekgedrag op Google, de cookies in je browser, de geo-locaties die gebrand zitten in je foto’s, de zelfrijdende Tesla die beslissingen neemt, de intimiteit van leerlingen volgsystemen en wat het betekent dat je docent of je baas op je stageplek het recht heeft om je computergedrag te monitoren en eventueel ter sprake te stellen.

Tekening: Sterre Stijns Bisschop

Tekening: Sterre Stijns Bisschop

Alle systemen hebben gemeen dat ze een en dezelfde taal spreken: de computertaal. Ergens, op het laagste niveau is er sprake van directe instructies, de object code. Die hoeven we niet te snappen. Daarboven ligt een hogere programmeertaal die we misschien nog een beetje kunnen begrijpen, maar dat hoeft niet eens. Cobol, Fortran, dat zijn de oude getrouwen. Later komen talen als C, later C++ en Microsoft’s C#, Pascal, Delphi, PHP, Visual Basic.NET, Python, PHP of Java. Willekeurige volgorde, willekeurige belangrijkheid. Maar wat al die talen op hoog niveau gemeen hebben, is een bepaalde syntax, een bepaalde logica, rechtlijnigheid. Procedures, routines, pointers, variabelen, if-then-else. Als je ook maar een beetje begrijpt hoe ze met elkaar omgaan, kan het helpen te begrijpen hoe rechtlijnig computers soms kunnen zijn. Het is niet erg om te begrijpen wat een boolean is (waar of onwaar), wat de overeenkomst is tussen ons parate geheugen en Random Access Memory en cloud-geheugen.

We praten al iedere dag met apparaten

Nogmaals, iedere dag praten we minstens tientallen keren met een apparaat dat een andere taal dan Nederlands spreekt. Als het argument is dat we Engels als vak verplicht stellen, omdat er zoveel Engels om ons heen wordt gesproken, wie kan me dan uitleggen waarom het niet minstens net zo logisch is om een computertaal te leren, of, rustig aan, te begrijpen?

Als Engels als vak verplicht is, omdat er zoveel Engels om ons heen wordt gesproken, is het dan niet minstens net zo logisch om een computertaal te leren?

Als kinderen moeten leren wat fotosynthese is, wat Maagdenburger halve bollen willen bewijzen, wat spijsvertering is en hoe de concentratiekampen systematisch werkten, waarom zouden ze dan ook niet moeten weten wat een algoritme is en hoe je een app voor een smartphone kunt maken?

If This Then That

Een voorbeeld. Het populaire If This Then That (IFTTT) stelt je in staat om verschillende waarnemingen van verschillende programma’s op elkaar te laten reageren. Als de buurman belt, neem dan niet op. Plaats al mijn tweets automatisch op mijn Facebookaccount. Als mijn kleine neefje een foto op Instagram zet, laat die dan op mijn iPhone zien en maak een notitie aan in mijn dagboek op Evernote. Noem IFTTT een eenvoudige programmeertaal op het hoogste niveau.

Lang niet iedereen zal ermee overweg kunnen, het doet er niet toe. Maar je zou de moeite kunnen nemen om je te verplaatsen in samenwerkende systemen.

Begin met programmeren op de basisschool

Programmeren, te beginnen op de basisschool, en wel voor iedereen. Er is geen dag te verliezen. En het gaat me er niet eens om dat er allemaal programmeurs uit komen – die zullen er ongetwijfeld tussen zitten. Het gaat me er alleen maar om te bereiken dat we iets beter begrijpen wat een systeem is, hoe een programma redeneert, en dat we iets empathischer kunnen reageren als we ‘Computer says no’ horen.

Begrip is mooi.