Development

Software-ontwikkeling
Programmeren is talig

Programmeren is talig

Waarom het voor de ICT goed zou zijn om de taligheid van programmeren te benadrukken.

28 april 2020

Als ik van talloze verschillende vrienden en vage bekenden dezelfde Nature-paper doorgestuurd krijg, dan weet je dat er echt iets leuks aan de hand is. Het betrof deze paper: Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages.

Wat is er dan onderzocht? Wetenschappers van de University of Washington hebben met een EEG-scanner de hersenen van 36 mensen bekeken, en hun vervolgens 10 programmeerlessen van 45 minuten gegeven. En wat blijkt? Naast voor de hand liggende variabelen als hoe goed je kunt redeneren en hoe goed je kortetermijngeheugen is, is er nog een belangrijke voorspeller: hoe goed je bent in natuurlijke talen (gewone mensen talen zoals Engels of Nederlands). Dit voorspelt tamelijk precies hoe goed je bent in programmeren, en voorspelt dat beter dan hoe goed je bent in rekenen!

De taligheid van programmeren is ergens natuurlijk erg voor de hand liggend. Python, Java of C heten niet voor niets programmeertalen, en ze zitten ook vol met woorden. Niet alleen de keywords van een taal, zoals if en for, maar ook variabelen zijn woorden. En ander onderzoek liet al zien dat maar liefst 72% van de letters in een programma variabelenamen zijn. Dan is het natuurlijk niet gek dat hoe goed je al die woorden kunt lezen en leren, invloed heeft op hoe goed je kunt programmeren.

De taligheid van programmeren is ergens natuurlijk erg voor de hand liggend

Toch voelt het voor veel programmeurs heel vreemd om bij de talen te horen. Informatica is op de meeste universiteiten een spin-off van wiskunde, en huist daarom bijna altijd samen met wiskunde in een faculteit. Dat geeft meteen een bepaalde kleur aan ons onderwijs, en dus aan ons vakgebied. Informatica is een soort wiskunde, dus informatica is een technisch beroep. De technische aard van informatica zie je ook in terminologie terug, bijvoorbeeld de termen 'software engineers' en 'engineering', het gebruik van 'scaffolding' en het 'bouwen' van code.

Wij zijn programmeurs, geen boekenschrijvers, en die cultuur verander je niet zomaar, want die zit in het zelfbeeld van de mensen die het vakgebied vormen. Dus houden wij studenten op de open dag deze week nog steeds voor dat het echt belangrijk is om een goed cijfer te hebben voor wiskunde, en hebben we het niet over de taligheid van programmeren. Het laat zich gemakkelijk raden welk effect dat heeft op de studentenpopulatie.

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (aprilnummer 2020). Wil je alle artikelen uit dit nummer lezen, klik dan hier voor de inhoudsopgave.

Reactie toevoegen
2
Reacties
Nico 29 april 2020 14:28

Interessant onderzoek maar slecht samengevat in dit artikel. Er wordt gestart met de zin: "Naast voor de hand liggende variabelen als hoe goed je kunt redeneren "..." is er nog een belangrijke voorspeller: hoe goed je bent in natuurlijke talen "..." Dit voorspelt tamelijk precies ". Deze zin wekt de indruk dat "taligheid" net zo'n belangrijke voorspeller is als logisch redeneren en dat is niet de conclusie van het onderzoek. Logisch redeneren heeft een voorspellende waarde van 34%, "taligheid" komt daarna met 17%, dat is als voorspellende waarde verre van tamelijk precies.
De rekenkundige vaardigheid is veel minder voorspellend (duidelijk minder dan taligheid) en dat is iets waar je wat mee kan.

Het onderzoek gaat er vanuit dat met moderne programmeertalen (zoals Python) programmeren makkelijker is aan te leren voor mensen met gevoel voor taal. Dat lijkt logisch en de conclusie van het onderzoek onderbouwd dit ook, wat vooral zichtbaar is op het begrijpen van de taal en veel minder op het programmeren zelf. En dat is niet zo vreemd omdat kunnen programmeren los staat van de taal. Als je echt kan programmeren dan kan je dat in elke programmeertaal.  Net zoals bij natuurlijk talen het feit dat je correct en begrijpelijk kan schrijven, betekend niet dat je goed boek kan schrijven. Een goed boek kan vertaald worden naar elke taal, de taal heeft geen invloed op hoe goed het boek is, dat is bepaald door hoe het is geschreven. Dat zelfde geld voor programmeren. 

Martin Stevense 28 april 2020 12:26

Inderdaad is dit een niet zo populair uitgangspunt, maar we hebben er eind jaren 90 al wel driftig gebruik van gemaakt in de selectie van programmeurs. Sollicitanten met een taalkundige achtergrond pasten gewoon stukken beter, leerden sneller, behaalden betere resultaten. Dus bij de selectie was dit een goed uitgangspunt voor mijn collega's en mij. Fijn dat onderzoek hetzelfde aantoont.