Tag Boeken
Wat vertelt de Turingtest ons?
Stel, een proefpersoon zou via een computerterminal twee gesprekken voeren: één met een mens, en één met een machine. Als hij niet zou kunnen onderscheiden welke van zijn gesprekspartners de menselijke is en welke de machine, dan kunnen we de machine redelijkerwijs “intelligent” noemen. Dit experiment is in de literatuur de Turingtest gaan heten, en wordt zowel geprezen als verguisd. Maar wat vertelt de Turingtest ons nu precies? Dat is het onderwerp van Bernardo Gonçalves’ essaybundel The Turing Test Argument.
(Kunstmatig) intelligent gedrag
Het immitatiespel van Alan Turing, ook wel bekend als de Turingtest, werd gedurende zijn eerste receptie als een behavioristisch argument geïnterpreteerd. Het gedachte-experiment werd opgevat als een voorstel om intelligentie te definiëren als het kunnen voeren van een gesprek.
Een (verre van complete) lijst boekentips
Ter voorbereiding op een praatje, heb ik de lijst aan softwareboeken die ik de afgelopen jaren heb gelezen eens goed doorgelopen. Het resultaat zou als referentiemateriaal kunnen dienen voor een opleidingstraject van junioren binnen een organisatie, of kan als inspiratie worden gebruikt voor een boekenclub, of als gewoon een lijst goede boeken voor wie zijn kennis over softwareontwikkeling bij wil spijkeren.
Over boeken en boekenclubs (3/3)
Dus: je wil een boekenclub starten, maar je weet niet waar je moet beginnen. Dit is een suggestie: begin eens na te denken over een geschikt boek. Lees verder voor een aantal tips.
Over boeken en boekenclubs (2/3)
Een boekenclub is een investering. Elke minuut die ontwikkelaars besteden aan het lezen en bediscussiëren van ideeën over softwareontwikkeling, is een minuut die ze niet kunnen besteden aan het daadwerkelijk ontwikkelen van software. Dat maakt het belangrijk om steun van je manager te hebben vóórdat je een boekenclub begint.
Over boeken en boekenclubs (1/3)
Het beste werkgerelateerde advies dat ik ooit heb gekregen, kreeg ik van mijn eerste manager. Ik was nog maar net begonnen als softwareontwikkelaar en worstelde met de enorme complexiteit die kwam kijken bij het onderhouden van een legacy codebase. Hij zei (ik parafraseer): “Je hebt de ballen verstand van softwareontwikkeling. Houd de vrijdagen vrij voor zelfstudie, en lees eens een boek.”
Wat is refactoring (volgens Hannah Arendt)?
Wat kunnen Hannah Arendts filosofische overpeinzingen ons leren over refactoring? Nou, bijvoorbeeld waarom de metafoor van technische schuld een misleidende is. Maar als refactoring niet het afbetalen van technische schuld is, wat is het dan wel? En wat betekent dat voor de rol die refactoring in onze dagelijkse werkzaamheden in mag (of moet?) nemen?
Koppeling buiten code om
Koppeling is: wanneer een wijziging in het ene systeem een wijziging in het andere systeem noodzakelijk maakt. Wanneer softwareontwikkelaars het over koppeling hebben, dan bedoelen we meestal: in code aan elkaar gekoppelde systemen. Maar twee systemen kunnen ook zuiver functioneel aan elkaar gekoppeld zijn, zonder ook maar één regel code te hoeven delen.
Begin een boekenclub!
Wie software ontwikkelt, leert van zijn fouten. Wie leest over softwareontwikkeling, leert van andermans fouten. Een lust voor lezen is een cheat code die je in staat stellen in rap tempo een betere IT-professional te worden.
Feature branches belemmeren een beter begrip van koppeling
Laatst brak een kleine wijziging aan de back-end – die we zo snel mogelijk richting de testomgeving hadden gebracht – functionaliteit aan de front-end. Voor mijn collega was het een ideale gelegenheid om zijn bias voor Gitflow bevestigd te zien. “Dit zou nooit gebeurd zijn als we van feature branches gebruik hadden gemaakt!” concludeerde hij. – En niet onterecht, want het apart houden van de wijziging in kwestie zou de functionaliteit op testomgeving inderdaad intact hebben gehouden.