De beste boeken over software ontwikkeling die ik in 2020 las
2020 was in nogal wat opzichten… laten we zeggen: een bewogen jaar. Maar aan de andere kant: wat was er veel tijd om te lezen! December vorig jaar - lijstjestijd! - zette ik de vijf beste boeken die ik dat jaar had gelezen op een rijtje (inclusief vijf eervolle vermeldingen).
Omdat het wat mij betreft het hele jaar door lijstjestijd is, presenteer ik bij dezen in herhaling: de beste boeken over software ontwikkeling die ik in 2020 las.
Top 5
1. Robert C. Martin - Clean Code: A Handbook of Agile Software Craftsmanship
Ik overdrijf niet als ik zeg dat dit boek de manier waarop ik code schrijf, totaal heeft veranderd. Robert “Uncle Bob” Martins codeertips op zichzelf rechtvaardigen de aanschaf van dit boek. Maar Clean Code komt pas echt tot leven in het laatste deel, waarin de schrijver stapsgewijs, en aan de hand van zijn eigen principes, een (voor boekbegrippen behoorlijk) stuk code refactort. En dat zonder de aandacht van de lezer ooit los te laten! Verplichte kost voor elke softwareontwikkelaar.
2. Robert C. Martin - Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Dat “Uncle Bob” zowel de eerste als tweede plek op deze lijst inneemt, voelt wat ongemakkelijk. Maar het is dubbel en dwars verdiend: de opvolger van Clean Code is (bijna!) net zo goed als het origineel. Martins boodschap is even indringend als belangrijk: elke beslissing die jij als ontwikkelaar maakt, is een architecturele beslissing. Zorg dus dat je weet wat je doet! Ik denk in elk geval wel twee keer na voordat ik mijn classes zomaar public maak.
3. Jay Wengrow - A Common-Sense Guide to Data Structures and Algorithms (2nd Edition)
Een cursus algoritmen behoorde (helaas?) niet tot het vakkenpakket van mijn studie filosofie. Om de performance van mijn code op te krikken, was ik dus aangewezen op mijn (overigens fantastische) collega’s. Totdat ik A Common-Sense Guide to Data Structures and Algorithms van Jay Wengrow las. Het is misschien wel de helderste inleiding in de materie ooit geschreven. En met de uitdagende oefeningen aan het eind van elk hoofdstuk schrijf je binnen de kortste keren op eigen kracht de efficiëntste code.
4. Carola Lilienthal - Sustainable Software Architecture: Analyze and Reduce Technical Debt
Boeken over softwarearchitectuur zijn er genoeg (zie mijn nummer 2 en de eervolle vermeldingen). Wat Sustainable Software Architecture onderscheidt van de rest, is dat het architectuur bespreekt in de context van al bestaande applicaties. Specifieker: bestaande applicaties met technische schuld. Oftewel: het soort applicaties waar je als ontwikkelaar het gros van de tijd mee te maken krijgt. Dat Lilienthals diverse analyses allemaal één en dezelfde tool gebruiken, doet misschien iets af aan hun directe toepasbaarheid maar niet aan de ideeën die daarachter liggen.
5. David Thomas & Andrew Hunt - The Pragmatic Programmer: Your Journey to Mastery (20th Anniversary Edition)
Tot mijn grote genoegen bleek ik al een aardig deel van de 100 pragmatische tips uit Thomas’ en Hunts klassieker in de praktijk te brengen. Nog groter is het genoegen mezelf als ontwikkelaar te kunnen blijven uitdagen met de overgebleven tips. De eerste uitdaging: probeer eens een dag te coderen zonder je muis te gebruiken - en kom erachter welke keyboard shortcuts je in je routine op moet nemen.
Eervolle vermeldingen
De volgende boeken verdienen een eervolle vermelding:
- Mark Richards & Neal Ford - Fundamentals of Software Architecture: An Engineering Approach
- Jenifer Tidwell, Charles Brewer & Aynne Valencia - Designing Interfaces: Patterns for Effective Interaction Design (3rd Edition)
- Ian Griffiths - Programming C# 8.0: Build Windows, Web, and Desktop Applications
- Perdita Stevens - How to Write Good Programs: A Guide for Students [recensie]