Come diventare un programmatore freelance

intervista a Danilo Nicolardi, programmatore freelance in BitBoss

Quella del programmatore è una professione che richiede costanza, dedizione e molta passione. Per diventare programmatore freelance poi, il passo è ancora più lungo, non solo perché devi fronteggiare l’incertezza economica, almeno nel primo periodo, ma soprattutto perché devi trovare da solo nuovi clienti e rischiare di affrontare progetti troppo grossi per una sola persona. Se approcciata con i giusti mezzi però, quella dello sviluppatore è una professione che può portare grandi risultati, sia in termini economici che di soddisfazione personale. In questa intervista Danilo Nicolardi, programmatore freelance in BitBoss, ci spiega qual è stato il suo percorso professionale e quali sono, secondo lui, le caratteristiche che portano a diventare un bravo programmatore.

Raccontaci un po’ di te: come hai iniziato a fare lo sviluppatore?

Fin da ragazzino mi è sempre piaciuto sperimentare con il computer. All’epoca avevamo solo quello fisso, il che per me era davvero limitante perché in casa mia c’era la fila per utilizzarlo. Quando mio fratello comprò un pc per motivi di studio inerenti al mondo dell’informatica, mi misi ad osservarlo e a replicare ogni cosa che faceva. Durante quel periodo frequentavo la scuola di ragioneria con indirizzo programmazione, il che mi ha aiutato ancora di più ad addentrarmi nella professione. Una volta finiti gli studi entrai in una Web Agency di Verona, dove ho iniziato a lavorare come dipendente. Negli anni ho iniziato a crearmi una rete di contatti e ad ottenere i miei primi clienti. Dopo qualche anno di esperienza, decisi di aprire partita IVA e diventare un programmatore libero professionista.

Qual è secondo te lo svantaggio di lavorare da libero professionista?

Senza dubbio l’incertezza economica: quando sei dipende sei comunque più tutelato economicamente, mentre se sei un freelance non solo hai una pressione fiscale diversa, ma hai meno vantaggi rispetto a chi lavora come subordinato.

Come trovi nuovi clienti?

Quando avevo bisogno cercavo su annunci online oppure sfruttavo la mia rete personale. Da quando si è diffuso LinkedIn, rispondo spesso agli annunci che vengono pubblicati, soprattutto se si usano delle tecnologie che ancora non conosco alla perfezione. L’obiettivo è quello di migliorarmi sempre e mettermi costantemente alla prova.

Hai mai trovato dei lavori a cui hai rinunciato perché non hai un team costituito con cui lavorare?

Sì, è capitato. In alcuni casi mi è successo o di richiedere al committente più tempo per portare a termine lo sviluppo, oppure di coinvolgere un altro sviluppatore di cui mi fido e con cui ho già collaborato. Mi è stato anche chiesto di coordinare una squadra che non conoscevo, ma ho preferito non prendermi la responsabilità del lavoro. Non conoscendo le persone e le tempistiche, non me la sono sentita. Se invece devo essere coordinato da qualcun altro e lavorare insieme ad altre persone che non conosco, allora accetto volentieri.

Essendo che lavori con più committenti e più progetti, come gestisci le tue attività? Lavori per task prestabiliti oppure dai priorità alle urgenze?

Nei progetti in cui il mio ruolo è quello di essere il project manager, trovo che la soluzione ottimale sia assegnare dei task specifici per ogni membro del team. Lato mio invece, quando mi viene richiesto qualcosa mi faccio una scaletta, mi assegno dei task e mi do delle scadenze.

Per farlo usi dei tool?

Al momento sto usando ClickUp e devo dire che mi trovo molto bene. In precedenza ho utilizzato Trello, anche solo per coordinare le mie attività.

Cosa diresti ad un ragazzino che sogna di diventare programmatore e non sa come fare?

Di avere tanta tanta voglia di imparare e di non avere la presunzione di avere sempre una risposta. Anche se si conosce un linguaggio, non bisogna mai smettere di aggiornarsi, ma è necessario imparare e migliorare di continuo. L’altro ingrediente che non può mancare è la passione: se non c’è quella, non si va da nessuna parte. Spesso mi capita di lavorare fino alle 18/18:30 e riprendere alle 22:30 (solitamente quando i bimbi vanno a dormire) e continuare fino alle 2/3 di notte. Non lo faccio perché qualcuno mi obbliga, ma perché mi piace quello che faccio. Per non parlare di quando ho una consegna urgente: in quei casi mi capita di lavorare tutta la notte e di andare a dormire alle 9 di mattina. Ma, sono sincero, non mi pesa. É un po’ come quando dici ad un pilota di moto gp di smetterla di andare in moto perché non ha bisogno di soldi e oltretutto è pericoloso…continuerà ad andarci perché non riesci a privarlo di quella passione.

É un po’ come quando dici ad un pilota di moto gp di smetterla di andare in moto perché non ha bisogno di soldi e oltretutto è pericoloso…continuerà ad andarci perché non riesci a privarlo di quella passione.

Qual è il processo con cui impari qualcosa di nuovo?

Quando mi si presentano davanti dei problemi che non conosco, cerco ovunque finché non trovo la risposta, non importa se ci perdo 4 o 5 ore. Se invece devo imparare un linguaggio o un programma nuovo, seguo un corso su quello che mi serve imparare. Finito un corso, prendo un’applicazione e la analizzo da zero. Dopodiché inizio a sviluppare la stessa applicazione da capo. A volte mi è capitato di prendere progetti che dovevano essere sviluppati con tecnologie che non conoscevo: in questo caso ho dovuto imparare da zero un nuovo linguaggio. Guardando video su YouTube, appoggiandomi ad una figura Senior e mettendomi nella posizione di imparare man mano che il progetto andava avanti.

Come cambierà secondo te il lavoro dello sviluppatore tra 5 anni?

Secondo me lo sviluppatore non sarà più presente in azienda, ci sarà solo il project manager. Si lavorerà esclusivamente ad obiettivi e bisognerà alternare tecnologie e progetti. Mi spiego meglio: non si potrà lavorare per settimane solo su un progetto, ma bisognerà alternare progetti diversi ogni due o tre giorni. Questo per tenere sempre il cervello in movimento. Io penso che lo sviluppatore Php puro non esisterà più: esistono delle tecnologie che permettono di ottenere lo stesso risultato in molto meno tempo, quindi pagare ad ore uno sviluppatore Php sarà inutile. Tra 5 anni bisognerà dare molto più importanza a come vengono sfruttate le risorse: i costi si sposteranno sul cloud e la struttura del progetto diventerà la cosa più importante. Le figure più importanti saranno i coordinatori, quindi i project manager. Lo sviluppatore del futuro per me è una figura in grado di diversificare i progetti, che conosce diverse tecnologie e ha la voglia continua di migliorarsi e apprendere. Se si rimane fossilizzati su un solo linguaggio, si è destinati ad essere soppiantati da qualcuno più bravo o dal processo tecnologico stesso. Tra 10 anni vedo macchine che scriveranno codice: se non pensi meglio della macchina, non lavori.

Il programmatore deve seguire le tendenze, rimanere attento, avere fame.

E per quanto riguarda l’intelligenza artificiale? Soppianterà il lavoro dello sviluppatore?

Sì, ma dello sviluppatore specialista, cioè colui che conosce solo un determinato linguaggio di programmazione. Lo sviluppatore per rimanere al passo coi tempi e non farsi sostituire da una macchina si deve diversificare e capire dove sta andando il lavoro. Il programmatore deve seguire le tendenze, rimanere attento, avere fame. Già oggi i framework fanno tanto rispetto al programmatore php puro. Tra 10 anni con l’inserimento dell’intelligenza artificiale molto probabilmente si farà un back end scrivendo solo il database: è un processo tecnologico che si prospetta essere incredibile! Il programmatore e project manager del futuro, dovrà saper coordinare la macchina e saper far spendere meno soldi ai clienti, conoscendo i servizi che il mercato mette a disposizione.