Oggi la programmazione è una delle direzioni di sviluppo professionale più scelte.
Alcuni arrivano nel settore dopo aver studiato informatica. Altri finiscono bootcamp. Altri ancora imparano da soli, scrivendo le prime applicazioni nel tempo libero.
Indipendentemente dal percorso, quasi ogni programmatore alle prime armi si pone domande simili.
Quali tecnologie scegliere?
Come trovare il primo lavoro?
Cosa si aspettano le aziende?
Com’è il lavoro quotidiano in uno software house?
E forse la domanda più importante... Quando smetterò finalmente di essere junior?
Dopo oltre vent'anni di realizzazione di progetti per clienti di vari settori e dopo aver formato diverse generazioni di giovani programmatori, possiamo rispondere a molte di queste domande.
Ma avvertiamo: non troverai una lista del tipo “10 framework che devi imparare nel 2026”.
Articoli del genere ce ne sono migliaia su internet...
Al contrario, vogliamo mostrare com’è la programmazione dall'interno. Quella vera.
Senza slogan di marketing. Senza storie su programmatori che lavorano dalla spiaggia a Bali. Invece con storie che sono realmente accadute. E con consigli che noi stessi avremmo voluto ricevere.
Di cosa parlerà questa serie?
Nei prossimi quattro articoli ti guideremo lungo il percorso che quasi tutti i programmatori percorrono.
Nei prossimi pezzi parleremo, tra l'altro, di:
- cosa vale davvero la pena imparare all'inizio della carriera,
- quali tecnologie sono fondamenta e quali sono solo mode passeggere,
- quale hardware e software davvero contano,
- com’è il lavoro quotidiano in un professional software house,
- perché il Code Review è una delle migliori lezioni di programmazione,
- come usare l’AI per crescere più velocemente, invece di copiare il codice a occhi chiusi,
- quali errori commettono quasi tutti i junior,
- perché la frase “da me funziona” è diventata uno degli scherzi più noti del settore,
- qual è la differenza tra Junior, Mid e Senior Developer,
- perché i migliori programmatori si riconoscono non dal numero di linguaggi conosciuti, ma dal modo di pensare.
Se stai appena iniziando la tua avventura con la programmazione, questa serie ti aiuterà a evitare molti errori.
Se lavori già nel settore, probabilmente ritroverai molte situazioni che ricordi bene.
Ogni Senior è stato una volta quel Junior smarrito
A volte è difficile crederci. Guardi un Senior Developer che in pochi minuti trova un bug su cui tu stavi arrovellandoti da due giorni. Scrive codice come se non dovesse pensarci. Conosce scorciatoie di cui neanche sospettavi l'esistenza. Parla di architettura, pattern e containerizzazione con la stessa leggerezza con cui si parla del tempo.
È facile pensare allora: "È semplicemente un genio."
La verità, però, è spesso molto diversa...
Ogni Senior una volta:
- ha dimenticato il punto e virgola,
- ha cancellato accidentalmente una parte del database,
- ha lottato con un bug per mezza giornata per scoprire un refuso,
- ha causato il primo conflitto in Git,
- ha pubblicato una patch che... ha rotto qualcosa di completamente diverso.
Non è il talento a distinguere la maggior parte dei Senior dai Junior. È l'esperienza. E l'esperienza si acquisisce solo con la pratica.
L'università insegna a programmare. Il lavoro insegna a essere sviluppatori.
Questa affermazione può sembrare provocatoria, ma descrive molto bene la realtà.
L'università è un ottimo posto per comprendere le basi. Conoscere gli algoritmi. Le strutture dati. La matematica. L'architettura dei computer. I modelli di funzionamento dei sistemi operativi. È un enorme valore. Tuttavia, il lavoro quotidiano è molto diverso.
All'improvviso ti rendi conto che oltre al codice devi anche:
- capire le esigenze del cliente,
- collaborare con i designer UX,
- consultare soluzioni con il Project Manager,
- integrarsi con sistemi esterni,
- leggere la documentazione,
- scrivere documentazione,
- analizzare gli errori segnalati dagli utenti,
- partecipare al Code Review,
- pianificare il proprio lavoro,
- stimare i tempi di completamento dei task.
Ed è proprio questo che solitamente nessuna università insegna.
La sorpresa più grande? Programmare è solo una parte del lavoro.
Questo è un momento che sorprende quasi ogni Junior.
L'idea?
Arrivi al lavoro. Ricevi un task. Scrivi codice. Consegni. Torni a casa.
La realtà è diversa...
Gran parte della giornata è fatta di conversazioni. Pianificazione. Analisi. Riunioni. Lettura di codice esistente. Debugging. Ricerca delle cause dei problemi.
Scrivere codice spesso è solo una delle fasi dell'intero processo.
Un buon programmatore non è chi scrive codice più velocemente. Un buon programmatore è chi sa trovare il modo migliore per risolvere un problema.
A volte la soluzione migliore è... non scrivere nemmeno una riga di codice nuova.
Una storia dal nostro team
Qualche anno fa uno studente è arrivato nel nostro team per uno stage. Ricordiamo quel giorno molto bene.
Enorme entusiasmo. Ancora più grande curiosità. E migliaia di domande: Perché facciamo così? A cosa serve questo design pattern? Perché non si può fare più semplice? Davvero bisogna scrivere i test? Come funziona Git?
Ognuno di noi si è posto domande simili quando ha iniziato.
Quindi, invece di aspettarci che dal primo giorno sviluppasse funzionalità complesse, abbiamo puntato su qualcosa di completamente diverso: l'insegnamento del modo di pensare.
Non mostravamo solo come fare qualcosa.
Spiegavamo soprattutto perché lo facciamo in quel modo.
Dopo le prime pratiche è tornato da noi. Ha ricevuto incarichi sempre più responsabilizzanti. Ha partecipato ai Code Review. Ha conosciuto nuove tecnologie. Ha osservato come si gestiscono i progetti per i clienti. Ha imparato a collaborare con tutto il team.
Oggi è un membro a pieno titolo del nostro software house.
Ora gestisce task complessi. Progetta soluzioni. Risolve problemi che solo qualche anno fa gli sembravano impossibili.
È successo perché ha imparato un altro framework? — No.
La trasformazione più grande è stata imparare un modo di pensare. Perché un buon programmatore non conosce la risposta a tutte le domande. Un buon programmatore sa come cercare efficacemente quelle risposte.
"Da me funziona..."
Non potevamo concludere la prima parte senza uno dei testi più iconici nel mondo dei programmatori.
Chiunque lavori in IT da un po' conosce questa frase. - Da me funziona.
Questa frase è allo stesso tempo divertente...
...e molto pericolosa.
Perché all'utente non interessa che funzioni sul tuo computer.
Al cliente non interessa che abbia funzionato nell'ambiente di test.
Il server di produzione non leggerà nemmeno il commento: // da me funzionava :)
Un vero programmatore non si ferma all'analisi che “da me funziona”.
Si pone la domanda successiva: Perché qui funziona e dal cliente no?
Ed è proprio da quel momento che inizia il vero apprendimento.
Glossario
Junior Developer
Sviluppatore che inizia la carriera professionale. Si concentra sull'acquisizione di esperienza, sull'apprendimento delle buone pratiche e sullo sviluppo di competenze tecniche e di lavoro di squadra.
Code Review
Processo di revisione del codice da parte di un altro sviluppatore. L'obiettivo è migliorare la qualità del codice, individuare potenziali bug e trasferire conoscenza nel team.
Framework
Insieme di librerie e strumenti pronti che facilitano la creazione di applicazioni. Il framework impone una certa struttura al progetto e accelera lo sviluppo del software.
Git
Il sistema di controllo versione più diffuso, che permette di tracciare le modifiche al codice e di far collaborare più sviluppatori su uno stesso progetto.
Debugging (Debuggare)
Processo di ricerca, analisi e rimozione di bug in un'applicazione.
Riepilogo
Se dopo aver letto questa parte ricorderai una sola cosa, che sia questa.
Programmare si può imparare con corsi, libri e video.
Essere sviluppatore lo impari solo quando inizi a risolvere problemi veri insieme ad altre persone.
È lì che nascono esperienza, responsabilità e il modo di pensare che, col tempo, distinguono un buon sviluppatore da chi conosce solo la sintassi di un linguaggio.
Nella prossima parte entreremo nel concreto.
Mostreremo cosa vale davvero la pena imparare, quali tecnologie costituiscono solide basi per la carriera, quale hardware e software scegliere e perché conoscere bene un linguaggio spesso vale più di una conoscenza superficiale di cinque.



