De auteur trekt een parallel tussen blinddoekschaak en het programmeren met Large Language Models (LLM's). In blinddoekschaak gaat het niet om een fotografisch geheugen, maar om het onderhouden van een gestructureerd mentaal model van relaties en patronen.
Deze vaardigheid is volgens de auteur cruciaal voor software engineers die AI gebruiken. Er wordt een waarschuwing geuit tegen 'vibecoding' — het blindelings vertrouwen op AI-gegenereerde code zonder deze te begrijpen. De kernboodschap is dat de meest effectieve AI-programmeurs zij zullen zijn die, net als sterke schakers, een diep abstract mentaal model van de softwarearchitectuur kunnen behouden, waardoor ze de controle houden over de AI in plaats van erdoor geleid te worden.
Wat mijn vader me in de jaren 90 leerde over AI-coderen
Het was een zomervakantie, ergens in de late jaren 90. Ik was een jong kind, ongeveer 8 jaar oud. Mijn vader had me eerder de regels van het schaken geleerd en we speelden af en toe een partij. Maar deze keer was het anders: net toen we wilden beginnen, stond hij op en liep hij weg van het bord. Hij ging in een stoel aan de andere kant van de kamer zitten met zijn rug naar het bord toe.
Telkens wanneer ik een stuk verplaatste, moest ik de zet simpelweg hardop uitspreken, bijvoorbeeld: "pion van E2 naar E4". Mijn vader antwoordde vervolgens met zijn zet, die ik op het bord kon uitvoeren om daadwerkelijk te zien wat er gebeurde. We speelden blinddoekschaak. Ik herinner me dat ik hem vertelde dat ik een stuk van X naar Y verplaatste, terwijl het stuk helemaal niet op X stond. Zonder aarzeling vertelde hij me precies waar het stuk zich bevond. Ik verloor het spel vrij snel, maar ik was gefascineerd.
De mechanica van blinddoekschaak
Sterke spelers stellen zich over het algemeen geen perfect gedetailleerd bord voor als een foto. In plaats daarvan houden ze een gestructureerde set relaties bij:
- Waar de belangrijke stukken staan;
- Welke velden worden aangevallen of verdedigd;
- Open lijnen, diagonalen en pionstructuren;
- Tactische relaties zoals pinning, vorken en losse stukken;
- Wat er na elke zet is veranderd.
Interessant genoeg geven blinddoekspelers vaak aan dat hun concentratie meer gericht is op relaties en legale mogelijkheden dan op het letterlijk "zien" van het bord. Hun schaakkennis reconstrueert een groot deel van de positie automatisch. De uitzonderlijke vaardigheid is daarom een combinatie van ruimtelijk werkgeheugen, patroonherkenning, gedisciplineerde berekening en aandachtbeheersing — en niet simpelweg een fotografisch geheugen.
— Claude Fable 5
De overstap naar AI-programmeren
Ik ben nooit echt diep in het schaken gedoken; in plaats daarvan richtte ik me op computers en programmeren.
Met de snelle opkomst van Large Language Models (LLM's) in programmeren gedurende het afgelopen jaar en iets langer, verandert alles drastisch voor software engineers. Iedereen probeert uit te zoeken hoe ze in deze nieuwe wereld effectief kunnen werken. De meningen zijn sterk verdeeld. Wat voor iedereen duidelijk is, is dat als je AI gebruikt op een manier waarbij je weinig tijd besteedt aan het formuleren van wat je wilt, en geen tijd besteedt aan het lezen van de gegenereerde code, je aan het "vibecoden" bent. De resulterende software zal niet lang meegaan (als het überhaupt al werkt). De vraag is dus: hoeveel van het coderen moet je de AI laten doen, en hoeveel moet je zelf controleren, lezen en diepgaand begrijpen?
Abstractie en controle
In beperkte mate vertoont dit gelijkenissen met hogere programmeertalen. Voordat we die hadden, moest een programmeur een dieper begrip hebben van de eigenlijke hardware en hoe een CPU instructies uitvoert (denk aan geheugenbeheer, pointers en threads). We kunnen deze zaken negeren als we programmeren in Java of Python, maar de lijst met zaken die je nog steeds moet begrijpen blijft vaststaan (deze is alleen korter en eenvoudiger).
Het verschil nu is dat wanneer je AI gebruikt, er geen echte vereiste meer is om iets te weten. Ik geloof overduidelijk dat als een ervaren programmeur achter Claude Code zit, de kwaliteit van de output waarschijnlijk hoger zal zijn dan wanneer een niet-technisch persoon dat doet (hoewel dat moeilijk te meten is). De ervaren programmeur kan echter nog steeds moe of verveeld raken, stoppen met alles lezen en de AI simpelweg de controle laten overnemen. Mensen zijn inherent lui; het is moeilijk om scherp en gefocust te blijven wanneer het voelt alsof dat niet nodig is, omdat de AI sowieso aan het stuur zit.
De parallel tussen schaken en coderen
In veel opzichten is programmeren met AI het tegenovergestelde van blinddoekschaak: je hoeft niet bij elke beurt op te letten, je hoeft niet te onthouden wat de belangrijke stukken zijn, of de details van de tactische relaties (zoals code-interfaces en API's).
Maar ik wil betogen dat de vaardigheden die een sterke blinddoekschaker definiëren, dezelfde zijn als die van een programmeur die kan floreren achter een Claude Code-terminal zonder zelf code te lezen of te schrijven. Veel echt goede programmeurs hadden deze vaardigheden al verworven vóór de komst van LLM's. Voorbeelden hiervan zijn:
- Het vermogen om een diep mentaal model in het hoofd te hebben van hoe code in elkaar vlecht;
- Het inzicht dat code altijd een uitdrukking is van een abstracter idee of doel;
- Het vermogen om een bestaande implementatie te vereenvoudigen of te verbeteren door er simpelweg diep over na te denken.
Het is voor mijzelf moeilijker om zo'n mentaal model op te bouwen van software die ik niet fysiek heb geschreven (of veel van heb gelezen), en het is nog steeds lastig om de juiste balans te vinden tussen gedetailleerd communiceren versus communiceren op een hoog abstractieniveau op verschillende momenten.
Naarmate deze LLM's en hun tools steeds beter worden, kunnen zij die deze "beesten" echt kunnen temmen en de controle behouden, sneller en slimmer bewegen dan ooit tevoren. Ze worden dan niet langer beperkt door de snelheid waarmee men de onderliggende code schrijft of leest. Wist je dat de allerbeste blinddoekschakers meerdere partijen tegelijk kunnen spelen?
Het probleem zal zijn dat, in tegenstelling tot schaken waar het makkelijk is om iemands niveau te bepalen, effectief programmeren op deze manier onmogelijk te meten zal worden (omdat de AI elke kwantificeerbare metriek die je ertegenaan gooit, zal oplossen).
Wat mijn vader me in de jaren 90 leerde over AI-coderen
Het was een zomervakantie, ergens in de late jaren 90. Ik was een jong kind, ongeveer 8 jaar oud. Mijn vader had me eerder de regels van het schaken geleerd en we speelden af en toe een partij. Maar deze keer was het anders: net toen we wilden beginnen, stond hij op en liep hij weg van het bord. Hij ging in een stoel aan de andere kant van de kamer zitten met zijn rug naar het bord toe.
Telkens wanneer ik een stuk verplaatste, moest ik de zet simpelweg hardop uitspreken, bijvoorbeeld: "pion van E2 naar E4". Mijn vader antwoordde vervolgens met zijn zet, die ik op het bord kon uitvoeren om daadwerkelijk te zien wat er gebeurde. We speelden blinddoekschaak. Ik herinner me dat ik hem vertelde dat ik een stuk van X naar Y verplaatste, terwijl het stuk helemaal niet op X stond. Zonder aarzeling vertelde hij me precies waar het stuk zich bevond. Ik verloor het spel vrij snel, maar ik was gefascineerd.
De mechanica van blinddoekschaak
Sterke spelers stellen zich over het algemeen geen perfect gedetailleerd bord voor als een foto. In plaats daarvan houden ze een gestructureerde set relaties bij:
- Waar de belangrijke stukken staan;
- Welke velden worden aangevallen of verdedigd;
- Open lijnen, diagonalen en pionstructuren;
- Tactische relaties zoals pinning, vorken en losse stukken;
- Wat er na elke zet is veranderd.
Interessant genoeg geven blinddoekspelers vaak aan dat hun concentratie meer gericht is op relaties en legale mogelijkheden dan op het letterlijk "zien" van het bord. Hun schaakkennis reconstrueert een groot deel van de positie automatisch. De uitzonderlijke vaardigheid is daarom een combinatie van ruimtelijk werkgeheugen, patroonherkenning, gedisciplineerde berekening en aandachtbeheersing — en niet simpelweg een fotografisch geheugen.
— Claude Fable 5
De overstap naar AI-programmeren
Ik ben nooit echt diep in het schaken gedoken; in plaats daarvan richtte ik me op computers en programmeren.
Met de snelle opkomst van Large Language Models (LLM's) in programmeren gedurende het afgelopen jaar en iets langer, verandert alles drastisch voor software engineers. Iedereen probeert uit te zoeken hoe ze in deze nieuwe wereld effectief kunnen werken. De meningen zijn sterk verdeeld. Wat voor iedereen duidelijk is, is dat als je AI gebruikt op een manier waarbij je weinig tijd besteedt aan het formuleren van wat je wilt, en geen tijd besteedt aan het lezen van de gegenereerde code, je aan het "vibecoden" bent. De resulterende software zal niet lang meegaan (als het überhaupt al werkt). De vraag is dus: hoeveel van het coderen moet je de AI laten doen, en hoeveel moet je zelf controleren, lezen en diepgaand begrijpen?
Abstractie en controle
In beperkte mate vertoont dit gelijkenissen met hogere programmeertalen. Voordat we die hadden, moest een programmeur een dieper begrip hebben van de eigenlijke hardware en hoe een CPU instructies uitvoert (denk aan geheugenbeheer, pointers en threads). We kunnen deze zaken negeren als we programmeren in Java of Python, maar de lijst met zaken die je nog steeds moet begrijpen blijft vaststaan (deze is alleen korter en eenvoudiger).
Het verschil nu is dat wanneer je AI gebruikt, er geen echte vereiste meer is om iets te weten. Ik geloof overduidelijk dat als een ervaren programmeur achter Claude Code zit, de kwaliteit van de output waarschijnlijk hoger zal zijn dan wanneer een niet-technisch persoon dat doet (hoewel dat moeilijk te meten is). De ervaren programmeur kan echter nog steeds moe of verveeld raken, stoppen met alles lezen en de AI simpelweg de controle laten overnemen. Mensen zijn inherent lui; het is moeilijk om scherp en gefocust te blijven wanneer het voelt alsof dat niet nodig is, omdat de AI sowieso aan het stuur zit.
De parallel tussen schaken en coderen
In veel opzichten is programmeren met AI het tegenovergestelde van blinddoekschaak: je hoeft niet bij elke beurt op te letten, je hoeft niet te onthouden wat de belangrijke stukken zijn, of de details van de tactische relaties (zoals code-interfaces en API's).
Maar ik wil betogen dat de vaardigheden die een sterke blinddoekschaker definiëren, dezelfde zijn als die van een programmeur die kan floreren achter een Claude Code-terminal zonder zelf code te lezen of te schrijven. Veel echt goede programmeurs hadden deze vaardigheden al verworven vóór de komst van LLM's. Voorbeelden hiervan zijn:
- Het vermogen om een diep mentaal model in het hoofd te hebben van hoe code in elkaar vlecht;
- Het inzicht dat code altijd een uitdrukking is van een abstracter idee of doel;
- Het vermogen om een bestaande implementatie te vereenvoudigen of te verbeteren door er simpelweg diep over na te denken.
Het is voor mijzelf moeilijker om zo'n mentaal model op te bouwen van software die ik niet fysiek heb geschreven (of veel van heb gelezen), en het is nog steeds lastig om de juiste balans te vinden tussen gedetailleerd communiceren versus communiceren op een hoog abstractieniveau op verschillende momenten.
Naarmate deze LLM's en hun tools steeds beter worden, kunnen zij die deze "beesten" echt kunnen temmen en de controle behouden, sneller en slimmer bewegen dan ooit tevoren. Ze worden dan niet langer beperkt door de snelheid waarmee men de onderliggende code schrijft of leest. Wist je dat de allerbeste blinddoekschakers meerdere partijen tegelijk kunnen spelen?
Het probleem zal zijn dat, in tegenstelling tot schaken waar het makkelijk is om iemands niveau te bepalen, effectief programmeren op deze manier onmogelijk te meten zal worden (omdat de AI elke kwantificeerbare metriek die je ertegenaan gooit, zal oplossen).