Chi, come me, passa molte ore online, non può non aver mai visto questo titolo associato alla vendita di corsi di programmazione.
Si tratta di un titolo al limite del clickbait, che cerca di convincere le persone che, anche dopo i quarantanni si può diventare facilmente dei programmatori.
Lo scopo è chiaro: visto che la carriera di un programmatore inizia normalmente molto presto, si vuole alzare l’asticella prendendo un bacino di persone che ormai credevano di non potercela più fare o che magari sono nella condizione di non avere un lavoro che li soddisfa e vogliono fare altro: cercano la classica ricollocazione professionale.
La realtà
La ragione di questa tendenza risiede nella crescente domanda di figure professionali nel settore della programmazione, dove attualmente è difficile trovare individui con le competenze necessarie per soddisfare la richiesta del mercato.
Anche se è lodevole che si cerchi di insegnare la programmazione anche a persone che ne sono a digiuno, non condivido il modo col quale si vuol far passare questo concetto.
Sia chiaro, sono sempre a favore dei corsi di programmazione e vedo con benevolenza chi vuole impegnarsi e cambiare una situazione che non lo soddisfa, ma sono contro ai messaggi che inducono a pensare che qualcosa che richiede tempo e dedizione diventi improvvisamente alla portata di tutti.
Quella frase nella mia testa suona come un “Diventa un chirurgo dopo i 40 anni” o “Diventa un avvocato dopo i 40 anni”. Non è che non sia possibile, ma è difficile, molto più difficile che a venti, soprattutto se nella vita si è fatto tutt’altro.
Ritengo che ogni individuo abbia il diritto di scegliere il proprio percorso nella vita: ci si può svegliare un giorno e decidere che la programmazione è il proprio futuro, così come un programmatore può decidere di diventare un allevatore di mucche.
Proviamo però a portare un po’ di realtà in questa frase e ad immaginare cosa accadrà alla fine del corso che ti trasformerà in un programmatore, indipendentemente dalla qualità dell’insegnamento e dalle capacità personali.
Inevitabilmente, occorrerà cercare un posto di lavoro dato che tentare la fortuna del freelance senza contatti ed esperienza potrebbe essere una prospettiva piuttosto frustrante.
Una volta trovata un’azienda che è disposta ad investire su di te, ci potrebbero essere una serie di bias che potrebbero cambiare il modo in cui i potenziali datori di lavoro si avvicinano a te. Il primo di questi bias è sicuramente l’età.
Bias anagrafici
Proviamo a considerare due scenari per semplificare il ragionamento:
Se hai 20 anni e ti addentri nel mondo della programmazione, dopo aver fatto un corso o un percorso universitario, le aspettative su di te saranno indulgenti. La mancanza di esperienza viene normalmente perdonata e ci si aspetta una grande voglia di apprendere. Se l’azienda crede veramente nella formazione, non è inusuale avere anche un mentore disposto ad aiutarti nel tuo percorso di crescita professionale.
D’altra parte, se hai 40 anni, le aspettative nei tuoi confronti sono maggiori e ci potrebbero essere molti bias che vengono messi prima della tua preparazione. Bias anagrafici, bias legati alla tua situazione famigliare, bias sui tuoi limiti di apprendimento rispetto ai ragazzi di vent’anni: veloci a programmare e con molto più tempo a disposizione.
Queste discrepanze di aspettative rappresentano un aspetto cruciale da considerare e per il quale è necessario prepararsi mentalmente.
Occorre essere molto motivati se si vuole percorrere questa strada che, non è impossibile, ma all’inizio può essere veramente dura e potrebbe sviluppare una profonda frustrazione. È importante tenere presente questi aspetti e non farsi scoraggiare dalle difficoltà iniziali, perché solo col tempo si riusciranno a dimostrare le proprie capacità e a far valere la propria esperienza.
In definitiva, non esiste una regola fissa, ma è fondamentale essere consapevoli di queste dinamiche per evitare di sottovalutare le sfide che potrebbero presentarsi dopo il completamento del corso e durante la ricerca di un impiego nel settore della programmazione.
Sicuramente uno dei fattori mitiganti, che può abbattere o comunque mitigare qualsiasi preconcetto è quello di dimostrare di essere fortemente motivati, non solo a parole, ma anche con azioni tangibili. Mostrarsi attivi su piattaforme come GitHub, partecipare ad eventi del settore e collaborare a progetti open-source sono tutti elementi che dimostrano un impegno concreto e una passione per la programmazione.
Questi “piccoli tasselli” non solo testimoniano la volontà di apprendere e di mettersi in gioco, ma possono anche rivelare un talento sopito che inizia ad esplodere in quel momento, contribuendo a rafforzare la credibilità e l’attrattiva agli occhi dei potenziali datori di lavoro.
La proposta formativa
Vorrei ora soffermarmi anche su un altro aspetto che emerge leggendo con più attenzione alcune proposte formative, ho trovato qualcosa che mi ha lasciato perplesso e che mi ha spinto a scrivere questo articolo.
Un commento ricorrente, che si riscontra in varie forme sotto questo tipo di percorsi e che vorrei riportare come esempio, è il seguente:
“Noi insegniamo come diventare un architetto software, in modo costante … per non dovere fare la gavetta”.
La partenza di questi corsi è spesso focalizzata su “programmatori quarantenni” e altrettanto spesso prova a vendere il concetto che le persone diventeranno “architetti software senza gavetta”.
Posso comprendere il desiderio di offrire corsi a persone che aspirano a diventare programmatori, e riconosco l’esistenza di un mercato in cui cercare potenziali talenti. Tuttavia, rimango perplesso di fronte al messaggio che si vuole trasmettere, secondo cui diventare architetti software dopo un corso non richiederebbe “gavetta”.
È importante sottolineare che l’esperienza, o “gavetta”, è fondamentale per sviluppare una comprensione accurata della progettazione di software funzionale, in grado di soddisfare le esigenze dei clienti e degli utenti.
La “gavetta” implica commettere errori, imparare da essi e affrontare sfide pratiche in diversi progetti. Significa prendere decisioni difficili, talvolta in contrasto con le best practice, perché il contesto o le esigenze del progetto lo richiedono.
Tagliare corto sulla “gavetta” rischia di produrre progetti che, sebbene possano sembrare ben realizzati, non riescono a tradursi in soluzioni praticabili a causa di problemi quali costi, prestazioni, tempi o semplice mancanza di esperienza.
Se dopo aver completato un corso e ottenuto il titolo di “architetto software”, ci si chiede perché non si riesce a trovare lavoro, la risposta è semplicemente la mancanza di “gavetta”. Nessun corso può sostituire l’esperienza pratica e l’apprendimento che essa comporta: la sola partecipazione ad un corso non fa di voi un programmatore professionista o un architetto software.
Come affermato da chi ha pestato la tastiera più volte di me: “Non esiste una scorciatoia per diventare un programmatore professionista. È necessario affrontare sfide reali e imparare dagli errori lungo il percorso.” (“The Pragmatic Programmer: Your Journey to Mastery”). Questa frase cattura in modo eccellente il concetto che la programmazione è un’abilità che può essere insegnata, ma è solo attraverso la pratica che si può aspirare a diventare dei veri professionisti.
Per alzare il livello, quando si parla della figura dell’architetto software, ci troviamo di fronte a un discorso diverso.
Essere un architetto software non è qualcosa che si improvvisa; richiede anni di esperienza e pratica. Si tratta di un lavoro che coinvolge l’intera struttura di un azienda e ne può decretare il fallimento o il successo in base al modo col quale viene affrontato il lavoro.
Anche se un corso di formazione può essere utile e approfondito, non può sostituire l’esperienza maturata nel tempo e fornirà sempre una visione parziale del lavoro di un architetto software.
Un altro aspetto importante è quello di non confondere le figure di “programmatore” e “architetto software”: sono due ruoli distinti, ognuno con le proprie competenze e esperienze. Essere un bravo programmatore non implica necessariamente essere un bravo architetto software e viceversa. Tuttavia, è innegabile che un background da programmatore possa essere vantaggioso per aspirare a diventare un buon architetto software.
Possiamo fare un parallelo con il mondo del calcio: molti allenatori di successo hanno avuto una carriera da calciatori e hanno vissuto in prima persona le dinamiche del gioco. Allo stesso tempo, ci sono casi di giocatori che, spinti dalla fretta di diventare allenatori, hanno bruciato le tappe senza avere la giusta esperienza, mettendosi in gioco in squadre importanti e compromettendo la loro credibilità e carriera.
Mentre la pratica è fondamentale per diventare dei bravi programmatori, diventare un architetto software richiede una profonda esperienza e una comprensione del settore che solo il tempo può fornire. Bisogna quindi essere consapevoli dei percorsi e dei tempi necessari per raggiungere gli obiettivi professionali desiderati.
Conclusioni
Chiunque può diventare un programmatore, a qualsiasi età, ma è importante essere consapevoli delle sfide e delle aspettative che si presenteranno lungo il percorso.
Più inizierete tardi, più sarà difficile, ma non impossibile. La passione e la dedizione possono aiutare a superare le difficoltà iniziali e a dimostrare il proprio valore nel settore della programmazione.
Dopo alcuni anni di esperienza professionale, capirete quanto sia fondamentale affrontare la fase di apprendimento pratico e quanto sia illusorio credere che un corso possa sostituire l’importanza della “gavetta” nel settore della programmazione.
La pratica e l’esperienza sul campo sono pilastri irrinunciabili per una carriera di successo nella programmazione. Sebbene i corsi possano fornire una base teorica solida, è solo attraverso il lavoro pratico e la continua ricerca che si può realmente acquisire la competenza e la padronanza necessarie. Pertanto, è essenziale riconoscere l’importanza della “gavetta” e mantenere aspettative realistiche riguardo ai percorsi di formazione e sviluppo professionale nel settore della programmazione.
“Ho fatto il corso, ma se non lo metto in pratica lo dimentico”: diventerà una frase che sentirete spesso e che vi farà riflettere sulle reali competenze acquisite.