In dit artikel reflecteert Adam Tornhill op boeken die zijn programmeerstijl en visie op code fundamenteel hebben beïnvloed. Hij richt zich specifiek op werken van vóór 2015 om de duurzaamheid van de lessen te waarborgen.
Hoewel hij klassiekers zoals The Pragmatic Programmer erkent, kiest hij voor een eigen top vijf:
- Smalltalk Best Practice Patterns: Voor inzichten in programmeerstijl en abstracties.
- Structure and Interpretation of Computer Programs (SICP): Zijn favoriet, waarin hij leerde over 'wishful thinking' als ontwerptool.
- Paradigms of Artificial Intelligence: Waardevol vanwege de narratieve kracht van de codecommentaren.
- Facts and Fallacies of Software Engineering: Een kritische blik op de software-industrie en veelgemaakte fouten in planning en schattingen.
- Thinking Forth: Een boek dat programmeren als een creatief proces presenteert.
Daarnaast noemt hij The Nature of Code als het boek dat hem opnieuw motiveerde om te programmeren, evenals diverse eervolle vermeldingen over recursie, metaobject protocollen en softwareontwerp. De kernboodschap is dat de echte waarde van deze boeken niet ligt in de specifieke programmeertaal, maar in de universele lessen over softwarearchitectuur en probleemoplossing.
Vijf programmeerboeken die mijn manier van denken hebben veranderd
Auteur: Adam Tornhill Datum: 11 augustus 2026
Aangezien je dit bericht leest, kan ik er wel vanuit gaan dat jij — net als ik — houdt van top vijf-lijstjes. Ik klik op meer lijstjes dan ik me kan herinneren, maar vaak eindig ik met een vluchtige scrollbeurt. De meeste lijsten herhalen namelijk dezelfde vijf klassiekers.
In dit artikel wil ik verder gaan dan de gebruikelijke verdachten en boeken belichten die mijn manier van denken over code hebben beïnvloed.
Deze selectie bestaat uit boeken die vóór 2015 zijn geschreven. Waarom stop ik daar? Simpelweg omdat een decennium de tijd is die ik nodig heb om echt te zien welke impact een specifiek boek op me heeft gehad. De lakmoesproef is: heeft het boek a) mijn programmeerstijl veranderd, en b) was dat een duurzame verandering die een positief verschil maakte?
Mijn visie op de klassiekers
Het zou niet eerlijk zijn om de veelvoorkomende aanbevelingen simpelweg over te slaan. Dus laat ik me in mijn eigen val lokken met een korte beschouwing daarover.
Ten eerste zijn Refactoring, Domain-Driven Design en The Pragmatic Programmer om goede redenen klassiekers. Het zijn geweldige boeken en verplichte kost. Working Effectively with Legacy Code verdient alle lof, en natuurlijk zou iedereen (ja, echt iedereen) The Mythical Man-Month moeten lezen.
Clean Code is een andere standaardaanbeveling, maar dat boek was niet voor mij. Er staan nuttige ontwerpprincipes in die het waard zijn om te bestuderen, maar het boek als geheel is naar mijn smaak te nauw en een beetje te dogmatisch. Jouw ervaring kan anders zijn. Ik zou in plaats daarvan wijzen naar Modern Software Engineering van David Farley (zie je — er zijn uitzonderingen op alle regels, zelfs op mijn "vóór 2015"-regel).
Dat gezegd hebbende, is het tijd voor mijn eigen lijst. Wat vinden we wanneer we verder kijken dan deze klassiekers?
Voorbij de gebruikelijke verdachten: Adams top 5 programmeerboeken
- Smalltalk Best Practice Patterns
Het is waar dat Kent Beck bekender is om zijn latere werk, dat overigens ook uitstekend is. Maar Smalltalk Best Practice Patterns is bijzonder sterk op het gebied van programmeerstijl. Ik heb veel geleerd door simpelweg de codevoorbeelden te lezen. Kleine aanpassingen in namen en abstracties tellen op; niemand brengt dat beter in beeld dan Kent.
- Structure and Interpretation of Computer Programs (SICP) door Gerald Jay Sussman en Hal Abelson
SICP is mijn favoriete programmeerboek aller tijden. Het is ook waar ik leerde over de kracht van 'wishful thinking' bij het programmeren. SICP gebruikt wishful thinking als een ontwerptool: schrijf code alsof de abstractie al bestond. Doe alsof. Zodra de ideale abstractie vorm heeft gekregen, implementeer je die functies. Dit meta-niveau is wat SICP zo waardevol maakt. Uiteindelijk is het een boek dat leert hoe je moet denken over code en probleemoplossing. Ik ben in theorie geneigd om te zeggen dat SICP meer een kunstwerk is dan een puur programmeerboek, maar ik laat dat voor nu. Een prachtig boek.
- Paradigms of Artificial Intelligence door Peter Norvig
Het leren van de AI die in dit boek wordt beschreven, zal je tegenwoordig waarschijnlijk geen baan opleveren. Maar het lezen van de codevoorbeelden zal de manier waarop je naar broncode kijkt transformeren. Het boek blinkt uit in codecommentaren, een onderwerp dat ik nog nooit zo goed heb gezien gedemonstreerd in andere bronnen. Hier zien we hoe commentaren waardevol worden als een narratief dat zowel de intentie als de redenering uitlegt. Briljant, simpelweg briljant.
- Facts and Fallacies of Software Engineering door Robert L. Glass
In essentie is dit een boek over een industrie die weigert te leren. Dat was 25 jaar geleden toen dit boek werd gepubliceerd al waar, en het is vandaag de dag waarschijnlijk twee keer zo waar (denk maar aan alle AI-adoptiemetrieken die worden uitgerold — terug naar productiviteit die wordt verward met geproduceerde regels code, alleen nu uitgebreider en duurder). Wat ik leuk vind aan dit boek, is dat Glass niets nieuws presenteert. Integendeel; het gaat over lessen uit onderzoek die we allemaal zouden moeten kennen, maar vaak vergeten. Heb je ooit een schatting moeten maken of moeten plannen op basis van een requirements-specificatie? Of dacht je dat voldoende ogen alle bugs oppervlakkig maken? Dan is dit boek voor jou. Een geweldig werk van een fantastische auteur.
- Thinking Forth door Leo Brodie
Ik had vroeger de gewoonte om verschillende programmeertalen te leren. Om mijn perspectief uit te dagen, koos ik talen uit families en paradigma's die fundamenteel verschilden van wat ik al wist. Af en toe stuitte ik op genialiteit. Thinking Forth presenteert programmeren als een creatief proces en brengt die lessen over op een entertainende en pedagogische manier. Het boek is bijzonder sterk in softwareanalyse en ontwerp, maar het is de uitvoering en het technische schrijven dat het boek in mijn top vijf bracht. Dit is hét boek voor iedereen die over software schrijft — Leo's methode is de juiste manier.
Aangezien de ranglijst zero-indexed is (begint bij 0), is er nog één boek in de top 5:
The Nature of Code: Simulating Natural Systems with Processing door Daniel Shiffman Dit boek is een prachtige introductie tot simulaties van natuurlijke systemen. We krijgen beknopte proza, heldere illustraties en zorgvuldig gekozen systemen met een begeleide tour door de wiskunde. Alles is geschreven in de taal Processing, die leuk is en gemakkelijk aan te leren. De reden dat ik dit boek zo waardeer, is waarschijnlijk te danken aan het tijdstip. In 2013 stond ik op het punt om te stoppen met softwareontwikkeling. Ik was er klaar mee (dat is een verhaal voor een andere keer). In plaats daarvan was ik van plan om fulltime als onderzoeker in de cognitieve psychologie te gaan werken. Dit boek bracht me het plezier in programmeren terug. Soms is een goed boek simpelweg het boek dat je motiveerde.
Eervolle vermeldingen
Het kiezen van een top vijf was moeilijk. Er zijn zoveel andere prettige boeken, en op een andere dag had de bovenstaande lijst elk van de volgende boeken kunnen bevatten:
- The Art of the Metaobject Protocol door Kiczales, Rivieres and Bobrow: Voor die momenten waarop je je geest op interessante manieren moet buigen.
- Let Over Lambda door Doug Hoyte: Perfect voor die drie mensen ter wereld die The Art of the Metaobject Protocol onvoldoende vinden. Een van de meest indrukwekkende boeken die ik heb gelezen.
- The Design of Design door Frederick P. Brooks: Dit boek kreeg nooit de aandacht die The Mythical Man-Month kreeg, maar het deelt veel van dezelfde kwaliteiten. Het is een boek dat meegroeit met de lezer en een schat aan inzichten biedt.
- The Little Schemer door Friedman and Felleisen: Dit boek leert je niet Scheme, maar iets waardevols: hoe je recursief denkt. Door het boek te doorwerken, voelde ik me zelfs comfortabel met de Y-combinator in lambda calculus (althans, voor een tijdje).
- Multi-Paradigm Design for C++ door James O. Coplien: Twintig jaar na het lezen zijn de kerntechnieken nog steeds bij me. Dit betreft 'commonality analysis' (waarbij het doel is om families van systemen te identificeren) en 'variability analysis' (gericht op het vastleggen van domeinparameters die variëren). In essentie: de fundering van geweldig softwareontwerp.
Ik zal hier stoppen, anders word ik verleid om ook The Timeless Way of Building, Programming Erlang en The Art of UNIX Programming toe te voegen. Laat me afsluiten met enkele laatste woorden.
De boeken in dit bericht maken wellicht gebruik van een specifieke programmeertaal. Maar het zou een fout zijn om te denken dat ze over die taal gaan. Hun lessen zijn breder, veel breder. Ze tonen betere manieren om over software na te denken.
Bij het lezen van deze boeken zouden we ons dus niet moeten focussen op de details. Het gaat om de algemene lessen. En die overstijgen de Lisp, C++, Smalltalk of Forth die in de codevoorbeelden wordt gebruikt. Voor mij is dat het kenmerk van echt geweldige boeken.
Vijf programmeerboeken die mijn manier van denken hebben veranderd
Auteur: Adam Tornhill Datum: 11 augustus 2026
Aangezien je dit bericht leest, kan ik er wel vanuit gaan dat jij — net als ik — houdt van top vijf-lijstjes. Ik klik op meer lijstjes dan ik me kan herinneren, maar vaak eindig ik met een vluchtige scrollbeurt. De meeste lijsten herhalen namelijk dezelfde vijf klassiekers.
In dit artikel wil ik verder gaan dan de gebruikelijke verdachten en boeken belichten die mijn manier van denken over code hebben beïnvloed.
Deze selectie bestaat uit boeken die vóór 2015 zijn geschreven. Waarom stop ik daar? Simpelweg omdat een decennium de tijd is die ik nodig heb om echt te zien welke impact een specifiek boek op me heeft gehad. De lakmoesproef is: heeft het boek a) mijn programmeerstijl veranderd, en b) was dat een duurzame verandering die een positief verschil maakte?
Mijn visie op de klassiekers
Het zou niet eerlijk zijn om de veelvoorkomende aanbevelingen simpelweg over te slaan. Dus laat ik me in mijn eigen val lokken met een korte beschouwing daarover.
Ten eerste zijn Refactoring, Domain-Driven Design en The Pragmatic Programmer om goede redenen klassiekers. Het zijn geweldige boeken en verplichte kost. Working Effectively with Legacy Code verdient alle lof, en natuurlijk zou iedereen (ja, echt iedereen) The Mythical Man-Month moeten lezen.
Clean Code is een andere standaardaanbeveling, maar dat boek was niet voor mij. Er staan nuttige ontwerpprincipes in die het waard zijn om te bestuderen, maar het boek als geheel is naar mijn smaak te nauw en een beetje te dogmatisch. Jouw ervaring kan anders zijn. Ik zou in plaats daarvan wijzen naar Modern Software Engineering van David Farley (zie je — er zijn uitzonderingen op alle regels, zelfs op mijn "vóór 2015"-regel).
Dat gezegd hebbende, is het tijd voor mijn eigen lijst. Wat vinden we wanneer we verder kijken dan deze klassiekers?
Voorbij de gebruikelijke verdachten: Adams top 5 programmeerboeken
- Smalltalk Best Practice Patterns
Het is waar dat Kent Beck bekender is om zijn latere werk, dat overigens ook uitstekend is. Maar Smalltalk Best Practice Patterns is bijzonder sterk op het gebied van programmeerstijl. Ik heb veel geleerd door simpelweg de codevoorbeelden te lezen. Kleine aanpassingen in namen en abstracties tellen op; niemand brengt dat beter in beeld dan Kent.
- Structure and Interpretation of Computer Programs (SICP) door Gerald Jay Sussman en Hal Abelson
SICP is mijn favoriete programmeerboek aller tijden. Het is ook waar ik leerde over de kracht van 'wishful thinking' bij het programmeren. SICP gebruikt wishful thinking als een ontwerptool: schrijf code alsof de abstractie al bestond. Doe alsof. Zodra de ideale abstractie vorm heeft gekregen, implementeer je die functies. Dit meta-niveau is wat SICP zo waardevol maakt. Uiteindelijk is het een boek dat leert hoe je moet denken over code en probleemoplossing. Ik ben in theorie geneigd om te zeggen dat SICP meer een kunstwerk is dan een puur programmeerboek, maar ik laat dat voor nu. Een prachtig boek.
- Paradigms of Artificial Intelligence door Peter Norvig
Het leren van de AI die in dit boek wordt beschreven, zal je tegenwoordig waarschijnlijk geen baan opleveren. Maar het lezen van de codevoorbeelden zal de manier waarop je naar broncode kijkt transformeren. Het boek blinkt uit in codecommentaren, een onderwerp dat ik nog nooit zo goed heb gezien gedemonstreerd in andere bronnen. Hier zien we hoe commentaren waardevol worden als een narratief dat zowel de intentie als de redenering uitlegt. Briljant, simpelweg briljant.
- Facts and Fallacies of Software Engineering door Robert L. Glass
In essentie is dit een boek over een industrie die weigert te leren. Dat was 25 jaar geleden toen dit boek werd gepubliceerd al waar, en het is vandaag de dag waarschijnlijk twee keer zo waar (denk maar aan alle AI-adoptiemetrieken die worden uitgerold — terug naar productiviteit die wordt verward met geproduceerde regels code, alleen nu uitgebreider en duurder). Wat ik leuk vind aan dit boek, is dat Glass niets nieuws presenteert. Integendeel; het gaat over lessen uit onderzoek die we allemaal zouden moeten kennen, maar vaak vergeten. Heb je ooit een schatting moeten maken of moeten plannen op basis van een requirements-specificatie? Of dacht je dat voldoende ogen alle bugs oppervlakkig maken? Dan is dit boek voor jou. Een geweldig werk van een fantastische auteur.
- Thinking Forth door Leo Brodie
Ik had vroeger de gewoonte om verschillende programmeertalen te leren. Om mijn perspectief uit te dagen, koos ik talen uit families en paradigma's die fundamenteel verschilden van wat ik al wist. Af en toe stuitte ik op genialiteit. Thinking Forth presenteert programmeren als een creatief proces en brengt die lessen over op een entertainende en pedagogische manier. Het boek is bijzonder sterk in softwareanalyse en ontwerp, maar het is de uitvoering en het technische schrijven dat het boek in mijn top vijf bracht. Dit is hét boek voor iedereen die over software schrijft — Leo's methode is de juiste manier.
Aangezien de ranglijst zero-indexed is (begint bij 0), is er nog één boek in de top 5:
The Nature of Code: Simulating Natural Systems with Processing door Daniel Shiffman Dit boek is een prachtige introductie tot simulaties van natuurlijke systemen. We krijgen beknopte proza, heldere illustraties en zorgvuldig gekozen systemen met een begeleide tour door de wiskunde. Alles is geschreven in de taal Processing, die leuk is en gemakkelijk aan te leren. De reden dat ik dit boek zo waardeer, is waarschijnlijk te danken aan het tijdstip. In 2013 stond ik op het punt om te stoppen met softwareontwikkeling. Ik was er klaar mee (dat is een verhaal voor een andere keer). In plaats daarvan was ik van plan om fulltime als onderzoeker in de cognitieve psychologie te gaan werken. Dit boek bracht me het plezier in programmeren terug. Soms is een goed boek simpelweg het boek dat je motiveerde.
Eervolle vermeldingen
Het kiezen van een top vijf was moeilijk. Er zijn zoveel andere prettige boeken, en op een andere dag had de bovenstaande lijst elk van de volgende boeken kunnen bevatten:
- The Art of the Metaobject Protocol door Kiczales, Rivieres and Bobrow: Voor die momenten waarop je je geest op interessante manieren moet buigen.
- Let Over Lambda door Doug Hoyte: Perfect voor die drie mensen ter wereld die The Art of the Metaobject Protocol onvoldoende vinden. Een van de meest indrukwekkende boeken die ik heb gelezen.
- The Design of Design door Frederick P. Brooks: Dit boek kreeg nooit de aandacht die The Mythical Man-Month kreeg, maar het deelt veel van dezelfde kwaliteiten. Het is een boek dat meegroeit met de lezer en een schat aan inzichten biedt.
- The Little Schemer door Friedman and Felleisen: Dit boek leert je niet Scheme, maar iets waardevols: hoe je recursief denkt. Door het boek te doorwerken, voelde ik me zelfs comfortabel met de Y-combinator in lambda calculus (althans, voor een tijdje).
- Multi-Paradigm Design for C++ door James O. Coplien: Twintig jaar na het lezen zijn de kerntechnieken nog steeds bij me. Dit betreft 'commonality analysis' (waarbij het doel is om families van systemen te identificeren) en 'variability analysis' (gericht op het vastleggen van domeinparameters die variëren). In essentie: de fundering van geweldig softwareontwerp.
Ik zal hier stoppen, anders word ik verleid om ook The Timeless Way of Building, Programming Erlang en The Art of UNIX Programming toe te voegen. Laat me afsluiten met enkele laatste woorden.
De boeken in dit bericht maken wellicht gebruik van een specifieke programmeertaal. Maar het zou een fout zijn om te denken dat ze over die taal gaan. Hun lessen zijn breder, veel breder. Ze tonen betere manieren om over software na te denken.
Bij het lezen van deze boeken zouden we ons dus niet moeten focussen op de details. Het gaat om de algemene lessen. En die overstijgen de Lisp, C++, Smalltalk of Forth die in de codevoorbeelden wordt gebruikt. Voor mij is dat het kenmerk van echt geweldige boeken.