C’è un momento molto gratificante nella lettura di un libro tecnico: copio l’esempio, lo eseguo e sullo schermo compare proprio il risultato promesso. Mi concedo una piccola soddisfazione. Poi arriva la domanda guastafeste: se cambio qualcosa, so ancora che cosa sto facendo?
È anche la domanda che ho in mente quando scrivo. Vorrei che il lettore potesse chiudere il libro e portarsi via un modo di ragionare, insieme al codice. Il programma dell’autore ha già avuto parecchio aiuto: qualcuno ha scelto i dati, preparato il contesto e accompagnato ogni passaggio. Fuori dalla pagina, tutta questa cortesia non è garantita.
La piccola cattiveria di togliere un dato
Prendo un esempio semplice: la media di tre temperature, 18, 20 e 22 gradi. Sommo i valori, divido per tre e ottengo 20. Fin qui siamo tutti d’accordo, persino il termometro. Prima di eseguire il codice, però, voglio saper spiegare perché quel calcolo risponde alla domanda.
Poi comincio a disturbare l’esempio. Gli lascio una sola temperatura: la media dovrebbe coincidere con quel valore. Infine tolgo tutte le misure. Qui il libro e il programma devono aiutarmi a decidere che cosa fare, perché la media di nessuna temperatura non è una temperatura particolarmente misteriosa: manca proprio il dato da calcolare.
Mi piace questa prova perché mi obbliga a fare una previsione. Scrivo il risultato che mi aspetto, eseguo e confronto. Se mi sorprendo, ho trovato il punto da rileggere. Tornare indietro di due pagine, a quel punto, ha uno scopo molto più preciso di rileggere tutto sperando nell’illuminazione.
Quando l’esempio smette di essere ospitale
Ora passo dalle temperature ai voti, con pesi diversi. Posso riusare la media semplice? Dipende da ciò che voglio ottenere: se alcuni voti devono contare di più, serve una media che tenga conto dei pesi. Il pezzo di codice più familiare potrebbe essere quello sbagliato per il nuovo problema.
È per questo che nei miei libri insisto sulle varianti. Vorrei accompagnare il lettore fino al momento in cui sa scegliere, e sa spiegare la scelta. Anche quando la scelta è lasciare da parte l’esempio che ha appena imparato.
Il mio consiglio è concedersi il tempo di fare un piccolo dispetto a ogni esempio. Cambiare un dato, togliere una condizione, chiedersi che cosa succede al confine. Se il programma protesta, tanto meglio: finalmente abbiamo qualcosa di interessante di cui parlare.