Luca Leone

La Via del Codice: Dialogo 1

In una piccola caffetteria, un giovane programmatore siede frustrato davanti al suo laptop. Un anziano sviluppatore, notando la sua agitazione, si avvicina.

Anziano: Vedo che stai lottando con il codice, giovane.

Giovane: (sospirando) Non riesco a far funzionare questo maledetto contatore. È solo JavaScript, dovrebbe essere semplice! Ho un deadline domani per un intero e-commerce, e sono bloccato su questa stupida funzione.

Anziano: (sedendosi) Mmh. Dimmi, quando mangi una torta, come procedi?

Giovane: (perplesso) La... mangio? Un morso alla volta, suppongo.

Anziano: E perché non la ingoi intera?

Giovane: (ridendo) Sarebbe assurdo! Mi strozzerei.

Anziano: Eppure è esattamente quello che stai cercando di fare con il tuo codice. Mostrami cosa hai scritto.

Giovane:

function buildEcommerce() {
    setupDatabase();
    createUI();
    handlePayments();
    // Altri 200 righe di codice...
}

Anziano: Vedi? Stai cercando di ingoiare l'intera torta. Proviamo un approccio diverso. Qual è la cosa più piccola che potresti costruire ora?

Giovane: Beh... suppongo che potrei iniziare dal contatore che non funziona.

Anziano: Ancora troppo grande. Più piccolo.

Giovane: Un... bottone che cambia colore quando ci clicco sopra?

Anziano: (sorridendo) Ora ci siamo. Scrivilo.

Giovane:

const button = document.querySelector('#myButton');
button.addEventListener('click', () => {
    button.style.backgroundColor = 'blue';
});

Anziano: Funziona?

Giovane: Sì! È... quasi troppo semplice.

Anziano: La semplicità è il primo passo della maestria. Ora, aggiungi il contatore.

Giovane:

let count = 0;
button.addEventListener('click', () => {
    count++;
    button.textContent = count;
});

Anziano: Vedi? Da un semplice bottone a un contatore. Da un contatore a un carrello. Da un carrello a un e-commerce. Questo è la Via.

Giovane: (pensieroso) Ma quando scrivo codice più complesso, spesso mi perdo nei dettagli. È frustrante, faccio errori stupidi...

Anziano: Ah, la fretta. Il più grande nemico del programmatore. Quando il codice non funziona, cosa fai?

Giovane: Di solito mi arrabbio e inizio a cambiare cose a caso sperando che funzioni.

Anziano: (prendendo un sorso di caffè) Quando un detective trova un cadavere, corre subito ad arrestare il primo sospetto?

Giovane: Non credo

Anziano: Che fa?

Giovane: Boh... raccoglie indizi, formula ipotesi, le testa?

Anziano: Esatto. Mostrami un bug che ti sta tormentando.

Giovane:

for(let i=0; i<array.lenght; i++) {
    // Il loop non funziona!
}

Anziano: (indicando lo schermo) Guarda attentamente. Lettera per lettera.

Giovane: (dopo un momento) Oh... ho scritto 'lenght' invece di 'length'!

Anziano: Un detective paziente nota ciò che un detective frettoloso ignora. Ma dimmi, quando scrivi una nuova funzione, cerchi subito la perfezione?

Giovane: Ci provo... ma spesso finisco paralizzato dal tentativo di scrivere codice perfetto al primo colpo.

Anziano: (sorridendo) Un maestro di arti marziali non nasce tale. Prima impara a stare in piedi, poi a camminare, poi a correre, infine a combattere. Ogni versione del suo stile è imperfetta, ma necessaria.

Giovane: Quindi... va bene scrivere codice imperfetto?

Anziano: Non solo va bene, è necessario. Guarda:

// Versione 1: Funziona, ma è brutta
function calcolaPrezzo(prodotto) {
    return prodotto.prezzo * 1.22;
}

// Versione 2: Meglio, ma ancora migliorabile
function calcolaPrezzo(prodotto, tassaPercentuale = 22) {
    return prodotto.prezzo * (1 + tassaPercentuale / 100);
}

// Versione 3: Ora sì!
function calcolaPrezzo({prezzo}, {tassaPercentuale = 22} = {}) {
    if (prezzo < 0) throw new Error('Prezzo non valido');
    return prezzo * (1 + Math.max(0, tassaPercentuale) / 100);
}

Giovane: Ogni versione itera la precedente...

Anziano: E ogni versione era perfetta per il suo momento. La perfezione non è uno stato, è un processo.

Giovane: (dopo una pausa) Ho sempre pensato che la programmazione fosse solo... scrivere codice. Ma mi stai insegnando molto di più.

Anziano: La programmazione è uno specchio. Ci mostra come pensiamo, come affrontiamo i problemi, come gestiamo la frustrazione. Ogni bug è un'opportunità di crescita, ogni refactoring una lezione di umiltà.

Giovane: (guardando il suo codice con occhi nuovi) Quindi quale dovrebbe essere il mio prossimo passo con l'e-commerce?

Anziano: Quale pensi che sia il più piccolo passo utile che puoi fare ora?

Giovane: Potrei... iniziare con una semplice lista di prodotti. Solo HTML e CSS. Poi aggiungere il bottone che abbiamo fatto. Poi il carrello...

Anziano: (alzandosi) Hai capito la Via. Ricorda: la fretta genera errori, la pazienza genera codice. La perfezione paralizza, l'imperfezione insegna. E soprattutto...

Giovane: Sì?

Anziano: Controlla sempre l'ortografia di 'length'. (sorride e se ne va)

Giovane: (ridendo, mentre torna al suo codice con rinnovato entusiasmo) Length. Non lenght. Mai più.

La Via del Codice: Dialogo 2

Blog post più recenti

#codice #imparare