Programmare, Coding e Prompting: Facciamo Chiarezza

Programmare, Coding e Prompting: Facciamo Chiarezza

La differenza che conta

Ultimamente sento tutti dire "sono uno sviluppatore" dopo aver usato ChatGPT per generare qualche riga di codice. Ma è davvero così? La risposta breve è: no. E capire perché fa la differenza tra giocare e costruire qualcosa di solido.

Vediamo questi tre termini non come sinonimi, ma come attività diverse con scopi diversi.

Programmare: quando il cervello è davvero impegnato

Programmare è risolvere un problema pensando. È quel momento in cui ti chiedi: "come posso far fare alla macchina esattamente quello che voglio?" Non si tratta di scrivere caratteri a caso, ma di costruire una logica precisa nella tua testa prima di toccare la tastiera.
Quando programmi veramente:

  • Devi capire il problema fino in fondo
  • Devi prevedere i casi limite
  • Devi scegliere strumenti e approcci consapevolmente
  • Il risultato è qualcosa che tu puoi spiegare riga per riga
    La soddisfazione qui non viene dal vedere qualcosa funzionare per caso, ma dal quel "aha!" quando finalmente trovi la quadra. È duro, a volte frustrante, ma è anche profondamente umano.

Coding: il lavoro di traduzione

Coding è semplicemente scrivere il codice. È l'atto fisico di tradurre un'idea già chiara in istruzioni per la macchina. Puoi fare coding senza aver fatto il lavoro di programmazione precedente - ad esempio quando traduci specifiche altrui in codice.

È simile a tradurre un libro: non hai inventato la storia, ma devi renderla comprensibile in un'altra lingua. Richiede abilità, ma è un lavoro diverso dall'aver avuto l'idea originale.

Prompting: chiedere all'AI di fare il lavoro per te

Prompting è dire all'AI: "fammi questo" e sperare che capisca. È diventato popolare perché spesso funziona, scrivi una descrizione e ottieni qualcosa che sembra funzionare.

Ma ecco il nodo cruciale: non stai risolvente il problema. Stai delegando la soluzione a qualcun altro (in questo caso, un'AI). E per giudicare se il risultato è buono o meno, devi almeno capire abbastanza di programmazione per valutarlo.

Quando ciascuno ha senso
Non è tutto bianco o nero. Ci sono contesti in cui ciascuna attività è appropriata:
Il prompting va bene quando:

  • Hai bisogno di un prototipo veloce per un'idea
  • Stai facendo un side project dove l'obiettivo è solo vedere se funziona
  • Vuoi esplorare rapidamente diverse approcci
  • Non ti serve manutenzione a lungo termine o performance ottimali

Serve programmare quando:

  • Costruisci qualcosa che altri dovranno usare e mantenere
  • La affidabilità e la sicurezza contano
  • Vuoi davvero capire come funziona ciò che stai costruendo
  • Pensi di lavorarci sopra per mesi o anni

Il rischio dello "sviluppatore da prompt"

Il pericolo più grande non è usare l'AI, ma credere di essere diventati migliori programmatori mentre in realtà stiamo facendo meno lavoro cognitivo. Come dire di essere diventati migliori cuochi perché ordiniamo sempre takeaway.

Quando qualcosa va storto (e andrà storto), chi si è affidato solo al prompting spesso non ha gli strumenti per capire perché non funziona o come ripararlo. Ha perso l'opportunità di sviluppare quel muscolo mentale che serve per risolvere problemi veri.

Una via di mezzo intelligente
L'AI non è nemica della programmazione, può essere un ottimo assistente se usata con testa. Prova così:

  • Usa l'AI per generare uno scheletro di codice, poi leggilo e capiscilo riga per riga
  • Chiedile di spiegare concetti che non conosci, poi prova a spiegarli tu stesso a qualcun altro
  • Falla aiutare con le parti noiose e ripetitive, ma tieni per te le decisioni di architettura
  • Sempre, sempre, rivedi criticamente quello che ti restituisce
    L'obiettivo non è evitare di pensare, ma pensare meglio - delegando solo ciò che davvero non aggiunge valore al tuo apprendimento o al risultato finale.

Conclusione
Chiamarsi "programmatore" perché si sa scrivere buoni prompt per un'AI è un po' come chiamarsi scrittore perché si sa dettare bene a un trascrittore. Potrebbe funzionare per alcuni scopi limitati, ma ti sta facendo perdere la parte più preziosa del mestiere: la capacità di pensare come un costruttore di sistemi, non solo come un utilizzatore di strumenti.
Se il tuo obiettivo è solo vedere se un'idea può prendere forma velocemente, allora prompting avanti tutta. Ma se vuoi costruire qualcosa che duri, che altri possano capire e migliorare, e che ti faccia sentire davvero capace di risolvere problemi difficili - allora devi sporcarti le mani con il vero lavoro di programmazione.
La soddisfazione vera non sta nel vedere funzionare qualcosa che non hai capito, ma nel sapere esattamente perché funziona. E quello, nessun prompt può dartelo. Devi guadagnartelo da solo.