Nella mia esperienza, capire se una persona potrebbe essere portata per intraprendere la carriera di sviluppatore software, credo sia abbastanza semplice, e che alla fine dell’articolo lo avrete capito da soli.
Se c’è molta richiesta di sviluppatori ci deve essere un motivo… non è un mestiere semplice, e richiede molto impegno, che solo la passione può non far pesare.
E non è un lavoro che vi potete sforzare di fare solo perchè vi piacerebbe avere quello (diciamo pure, bello alto) stipendio. Purtroppo (o per fortuna) non funziona così.
Se siete in disaccordo anche solo su un punto, io forse ci penserei bene prima di investire tanto tempo in questa direzione.
Purtroppo questo argomento è enorme, quindi cercherò di riassumere generalizzando, ma credo che a chi è veramente interessato, questo non risulterà un problema.
Innanzitutto sono dell’idea che la componente di conoscenze tecniche sia ad oggi la parte meno importante e richiesta (o ricercata).
La caratterista principale di uno sviluppatore dovrebbe essere la capacità di lavorare con gli altri, quello che si chiama in inglese “soft skill”.
Capacità di esprimersi in modo corretto, con gentilezza, disponibilità ad aiutare e condividere le informazioni, onestà ed integrità. Più semplice che a dirsi. Caratteristica abbastanza rara di questi tempi.
Per questo le donne sono molto ricercate negli ultimi anni, sono molto più portate e capaci di molti uomini. Quindi se sei donna, non farti scoraggiare, e – purtroppo – preparati a dover andare all’estero per far valere le tue competenze.
In seguito metterei la passione per l’argomento, che rende un piacere mantenersi aggiornati e al corrente nei tempi.
Uno sviluppatore che non si è aggiornato per un 4/5 anni è quello che si definisce “un dinosauro”, ovvero potrà solo lavorare con vecchie tecnologie, su progetti oramai datati e di cui si fa solo manutenzione, oppure sviluppi “per il cliente”.
Questo comporta un grado di competenza molto “verticale”, ovvero si è padroni di una specifica tecnologia, ma che potrebbe non essere richiesta sul mercato, oppure non proprio vicino dove abitate.
Una conseguenza della passione, è che non sarà un problema informarsi su un argomenti al di fuori dell’orario lavorativo. Se per voi invece il lavoro deve essere solo ed esclusivamente nelle ore contrattuali, direi che avrete molte difficoltà. Ma questo credo sia lo stesso per tutti i mestieri (non “lavori”, ma “mestieri”).
Altro lato importante direi che è essere proattivi.
Questo vuol dire andare oltre al “compitino” che viene affidato, ma essere attivi e chiedersi se si hanno tutte le informazioni necessarie, se si sta affrontando il problema nel modo giusto.
Se dovesse emergere un problema, che si sia in grado di capire l’origine del problema, raccogliere le informazioni necessarie, e pianificare una soluzione.
Questa è una caratteristica che non si impara, ma fa parte della passione e dell’interesse che uno ha nel essere uno sviluppatore, che rientra nella categoria dell’ingegneristica, quindi risolvere problemi, trovare soluzioni.
Dimostrare di essere una persona di cui ci si può fidare è un altro aspetto molto importante.
Ci vogliono mesi o addirittura anni per guadagnare la fiducia di qualcuno, ma pochi istanti per perderla in modo definitivo.
Questo vuol dire che è importante assumersi le proprie responsabilità, non dare la colpa agli altri, ed essere onesti.
Io personalmente apprezzo molto se una persona mi dice che non ha capito un qualcosa, se mi chiede aiuto, se ha bisogno che gli venga spiegata una seconda volta una cosa.
Questo mi fa capire che si sta almeno ponendo il problema di fare una cosa bene, che gli interessa, uno primo step verso la fiducia.
Nell’informatica ci si aspetta che una volta discussa una strategia, un lavoro da fare, una implementazione, in autonomia lo sviluppatore realizza una componente software, che deve aderire alle specifiche.
Uno dei problemi più comuni con gli sviluppatori all’inizio, è che pensano che siano gli altri a dirgli cosa e come fare le cose. E se qualcosa non va come pianificato, la colpa sia degli altri. Con un atteggiamento simile non si va da nessuna parte.
Avere la capacità di acquisire nuove competenze è anche una cosa molto importante. In informatica le competenze non si acquisiscono leggendo libri o vedendo video su youtube. Quello è solo l’inizio.
Per poter dire di sapere una tecnologia, o un argomento, dobbiamo prima averlo messo in pratica, di solito su progetti “hobbistici” nel proprio tempo libero. Se leggete un libro di C#, o PHP, o Java, o HTML , o Figma, non vuol dire che siete in grado di utilizzare quella competenza.
Dopo aver lavorato su un proprio progetto per un po’, vi rendere conto voi stessi di cosa questo significhi.
Ed è il motivo per cui ci sono così tante librerie open-source gratuite, e all’università fanno realizzare piccoli progetti.
E no, durante l’orario di lavoro nessuno ve lo farà fare nè avrà intenzione di pagarvi per farlo.
Per questo apprezzo i corsi pratici, anche solo dalla durata di un anno o due, ma sicuramente non da un mese. Non fatevi ingannare da corsi che poi vi promettono grandi guadagni in poco tempo.
Alla fine, e solo alla fine, si valutano le competenze tecniche. Perchè quelle oggigiorno sono molto semplici da acquisire. E visto la carenza di sviluppatori, si è disposti a supportare il canditato nel suo percorso di crescita, ma i punti precedenti devono essere presenti.
E no, perchè se sapete fare un FOR o avete visto tanti video su Youtube non vuol dire che siate programmatori. Ma che forse un giorno lo potreste diventare.
Il mio consiglio? Realizzate un piccolo progetto sulla tecnologia che vi interessa. Non importa quale sia, ma iniziate. Se state imparando html e css, fate un template per un sito ecommerce “fittizio”. Se volete imparare React o Angular, realizzate una piccola applicazione master-detail (uno a molti, tipo una anagrafica con molti indirizzi).
“Io” oppure “mio figlio” vuole andare all’università e fare informatica. Molto bene, c’è molta richiesta. Ma sappiate che se un ragazzo arriva a 18 anni e non ha mai programmato, a patto che abbia avuto le risorse economiche e sociali, credo che gli manchi la fondamentale passione. A programmare si potrebbe già iniziare a 10 anni. Io personalmente ho iniziato penso a circa 8 anni (forse un po’ prima, forse un o’ dopo). E anche molti altri, più di quanti pensiate. Credo che almeno il 60% abbia iniziato a programmare prima dei 18 anni.
Se ti piace l’informatica non fare il liceo scientifico/classico/ginnasio, ma orientati piuttosto su un percorso formativo con al centro l’informatica, ad esempio un istituto tecnico industriale con orientamento all’informatica. In questo modo avrai tutto il tempo e la calma di farti delle buone basi che ti torneranno utili in futuro.
Io personalmente ho fatto le scuole serali (Istituto tecnico industriale in informatica, pari a un liceo) tra i 19 e i 23 anni, in quanto non avevo le disponibilità economiche famigliari quando ero ragazzo. Ho studiato per un anno intero i diagrammi di flusso al terzo anno, e al quinto anno un anno intero di SQL. All’università ve lo sognereste.
All’università non ti insegneranno praticamente nulla di quello che ti servirà poi nel modo del lavoro reale. Imparerete la teoria, cose dell’antichità, a meno che non troviate qualche bravo insegnate che è appassionato e si è mantenuto aggiornato (cosa rarissima in Italia, ma ve lo auguro). Questa la mia esperienza con i neo-laureati in Italia. Il 95% aveva un livello talmente basso che non mi capacitavo di come fosse possibile, poi ho conosciuto un paio di insegnati, e li ho capito…
Iniziate già alle superiori a programmare per conto vostro. Iniziate semplice, e piano piano aggiungete sempre più cose. Leggete, guardate video, siate curiosi, ma mettete in pratica. Questo è il segrete del successo.
Hai 30 o 40 anni e vorresti provare a entrare nel settore dell’informatica? Ottimo, c’è molta richiesta, non è tardi. Ma sarete disposti a fare i sacrifici che servono? Questo è il grosso problema. Oltre a farsi le basi, ad esempio un diploma in informatica anche alle serali, dovrete investire molto del vostro tempo libero. Se Ll vostra priorità è uscire con gli amici, stare con al famiglia, figli, ecc ecc. la vedo difficile, mi dispiace. Questo perchè avete grandi lacune da colmare, e quindi per circa 6 mesi/1 anno dovrete focalizzarvi su una tecnologia che sapete c’è richiesta sul mercato (basta fare una ricerca degli annunci di lavoro nella vostra zona). Ad esempio se vi piace il frontend, un progetto in React, Angular, Svelte, o Vue. Oppure se siete più interessati al Backend potete implementare delle REST API in C#, PHP, Java, con database Sql Server, ecc. Oppure se vi piace entrambi, un bel progetto Frontend e Backend, tipo un modulo di gestione di anagrafica clienti in React/Angular/Svelte/Vue e backend in C#/PHP/Java ecc.
Lo stipendio anche non dovrebbe essere la priorità. Intanto entrate nel settore, fatevi una esperienza, rubate i segreti, poi vedrete che nel giro di poco (1 anno, o due) lo stipendio non sarà più un problema. Se pensate di meritare uno stipendio alto solo perchè magari avete fatto l’università, sappiate state facendo un grosso errore. Appena usciti dall’università, senza una reale esperienza, il vostro valore per una azienda è pari a zero. Siete un costo più che un valore. Inizierete a essere produttivi dopo circa un anno. Credo quindi che sia un ottimo scambio per entrambi (azienda e collaboratore) trovare un buon equilibrio sullo stipendio. Mi raccomando: non st dicendo di assecondare aziende tossiche o sfruttatori. Ma quando vi propongono uno stipendio che vi permetterebbe di “sopravvivere”, io lo accetterei. O meglio: io l’ho accettato. Non ho guadagnato all’inizio, ma è stato veramente un ottimo investimento (e sottolineo la parola “investimento“, che vuol dire vedere le cose in prospettiva). Dopo pochi anni potreste ritrovarvi a guadagnare molto più di quanto guadagna un operaio non specializzato.
E ricordatevi di chi ha creduto e investito su di voi. Siete sicuri che cambiare lavoro solo per qualche euro in più ne valga la pena? Non è detto che nel prossimo posto di lavoro troviate un ambiente altrettanto positivo. E tornare indietro non sempre è possibilie.
Inoltre poi potrete anche decidere di andare all’estero. In tutto il modo c’è un enorme bisogno di sviluppatori software. Ma di sviluppatori software che siano capaci di fare qualcosa, non che hanno letto tanti libri.
Sappiate che all’estero il livello tecnologico, l’ambiente di lavoro, lo stipendio, il rispetto personale, l’organizzazione, la possibilità di crescita, è molto migliore.
Io sicuramente consiglierei di fare una esperienza all’estero. Purtroppo l’Italia è ferma agli anni 2000.
Lavorare in smart-working, ovvero lavorare da casa, con orari flessibili, senza dover andare in ufficio, non è facile e non è per tutti. Soprattutto se siete all’inizio, io lo sconsiglio fortemente. All’inizio è fondamentale avere un collega vicino che vi può rispondere alle domande, che vi può aiutare. Ma se siete in remoto, tutto questo avviene su una chat, o via video, e credetemi è tutta un’altra cosa, specie su progetti o aziende un po’ più “difficili”.
Spero di esservi stato utile, se avete qualche domanda chiedete pure nei commenti!
In bocca al lupo.