Voglio diventare un... Java Developer

  • Di
  • 2022-04-26 - 7 minuti
banner

Claudio è un grande formatore ed esperto italiano nell’ambito Java, per cui quando ho pensato ad un’intervista a tema Java Developer, non potevo che scegliere lui!

Che poi, di mestiere voleva fare lo scrittore, e in parte ci è anche riuscito…

Claudio De Sio Cesari oggi ci racconta come fare per diventare un Java Developer!

Descriviti in 100 parole

Non mi piacciono le etichette, quindi ti racconto giusto qualcosa su di me.

Leggo almeno mezz’ora ogni giorno, ho una pessima memoria, senza silenzio assoluto non riesco a concentrarmi, non mi arrabbio mai tranne che per le ingiustizie, non ho rispetto per chi non rispetta il prossimo, ho diverse abitudini decisamente ossessive.

33 anni fa mi sono imposto di imparare qualcosa di nuovo ogni giorno e di raggiungere un obiettivo importante ogni anno. Lavoro senza orari perché faccio solo quello che mi piace.

Non è mai tardi, ma se avessi potuto avrei voluto fare il musicista e/o lo scrittore.

In cosa consiste il ruolo di Java Developer?

Risposta breve: un Java Developer riesce ad interpretare delle specifiche tecniche correttamente e a tramutarle in codice Java.

In realtà un qualsiasi teenager con un minimo di passione, un po’ di talento e una conoscenza basilare dei principali costrutti di programmazione, può interpretare delle specifiche tecniche correttamente e a tramutarle in codice Java.

Il lavoro di Java Developer quindi non si può limitare a questo, bisogna fare molto di più.

Prima cosa so utilizzare diversi processi di sviluppo per ottenere risultati di qualità: all’occorrenza posso farmi guidare dalla analisi e dalla progettazione, da una ben definita architettura, dai test, dall’esperienza, etc., ma mi risulta difficile sintetizzare tali processi in poche battute (erogo dei corsi appositamente su questi argomenti).

In qualsiasi caso, quando creo del codice, curo scrupolosamente i test, la comunicazione con il team, la documentazione, il bug fixing, seguo i principi dell’object orientation, sfrutto soluzioni standard (pattern), cerco di misurare e migliorare le prestazioni nelle parti architetturalmente significative, dedico del tempo a rendere il mio codice sicuro e faccio il possibile per renderlo leggibile per me e per gli altri.

Insomma, il codice non deve solo funzionare, deve anche essere efficiente, manutenibile, scalabile, robusto, testabile, evolvibile e riutilizzabile. Ovviamente questi sono gli obiettivi, la perfezione non esiste, ma almeno ci si deve provare!

Qual è la soft skill più importante che deve possedere un Java Developer?

Per la mia esperienza, le soft skill più importanti sono la capacità di analisi di un problema all’interno di un contesto, e la capacità di implementare soluzioni semplici per risolvere problemi complessi.

La complessità è nemica del nostro lavoro, e buttarsi a capofitto sul codice può essere divertente, ma di solito non garantisce grandi risultati in termini di qualità.

La maggior parte di noi utilizza i social per parlare dei propri successi, ma la realtà è che siamo quel che siamo grazie al 90% dei nostri errori. Racconta il tuo più grande fallimento da quando lavori nel settore, che però ti ha reso ciò che sei.

È vero, i fallimenti sono fondamentali perché ci fanno crescere, è così che si fa esperienza.

Ogni fallimento è una pietra miliare per la mia crescita, e ho fallito tante di quelle volte che ora ci sono meno probabilità che ripeta gli stessi errori del passato.

È difficile scegliere il mio più grande fallimento, alla fine si tratta di situazioni che fortunatamente si sono sempre risolte in qualche modo.

Potrei raccontarti di quando ho lanciato lo script sbagliato che ha causato l’installazione dell’applicazione del cliente B nell’ambiente di produzione del cliente A.

Oppure di quando sviluppai un’applicazione con tutte le nuove caratteristiche introdotte da Java 5 (generics, varargs, annotazioni, foreach, etc…) ma che poi ho dovuto riscrivere da capo perché doveva essere installato su un ambiente di produzione che girava con una versione precedente.

Oppure di quando ho dato un consiglio per risolvere un problema ad un programmatore junior senza seguirlo che poi ha causato un blocco in produzione. O anche di quando dovendo ricreare il mio personale ambiente di test, chiesi in prestito l’accesso all’ambiente di test di un mio collega, ed alla fine cancellai il suo ambiente di test!

A parte quest’ultimo caso che mi ha fatto diventare una leggenda (Claudio, il divoratore di database), fallire solitamente è poco piacevole, ma non bisogna abbattersi.

A volte sbagliare è qualcosa di prezioso!

Come fare per diventare un Java Developer?

Ovviamente bisogna studiare molto, ma se c’è la passione questo non è affatto un problema, anzi è un piacere! Java non è solo il nome del linguaggio, ma anche di un immenso ecosistema composto da tool, architetture e tecnologie, aperto ad interfacciarsi con hardware e software di qualsiasi tipo. Non si finisce mai di studiare, io lo faccio da oltre 20 anni ogni giorno!

Se dovessi consigliare che passi intraprendere per diventare Java Developer, consiglio di:

  • Imparare molto bene il linguaggio e le principali librerie. Secondo me un libro di riferimento affidabile e aggiornato è fondamentale per avere la possibilità di approfondire. Un videocorso ti aiuta, ma un buon libro è tutta un’altra cosa. Oggi Java è un linguaggio molto più complesso di una volta e talmente rinnovato che i programmatori che l’hanno studiato anni fa, non sono neanche in grado di interpretare il codice Java scritto oggigiorno.
  • Imparare le basi delle tecnologie più richieste come Spring, JPA e Java EE. Inoltre do per scontato che bisogna conoscere anche le basi di SQL, XML, JSON, e spesso di tecnologie front end quali JavaScript, HTML 5 e CSS.
  • Lo studio è fondamentale ma non basta fare esercizi. All’inizio della mia carriera ho trovato molto utile creare da zero un progetto open source personale e pubblicarlo su una piattaforma come GitHub o SourceForge. Magari creando un clone di qualcosa che esiste già (un blocco note, una calcolatrice, una sveglia, un motore di ricerca, etc.) o qualcosa che ci potrebbe essere utile (un gestionale, una utility per organizzare il nostro lavoro, etc.). Non è facile, ma se non lo si riesce a fare da soli ci si può organizzare con altre persone, il confronto arricchisce moltissimo.
  • Credo che un altro passo davvero importante sia quello di certificarsi. Le certificazioni Oracle richiedono molto studio, ma nel momento in cui ti certifichi hai oramai acquisito un grado di conoscenza del linguaggio molto elevato che ti porterà ad avere grande sicurezza quando programmi, ed è questo che fa la differenza.

Un candidato alla prima esperienza che si presenta ad un colloquio con una certificazione ed un progetto open source da mostrare, avrà importanti possibilità di iniziare una carriera nel migliore dei modi.

Parlando di successi, qual è il tuo prossimo obiettivo? Quale ruolo vorresti ricoprire entro i prossimi 3 anni?

Io sono stato sempre un consulente e mi reputo fortunato perché posso scegliere i miei obiettivi e ruoli senza grossi vincoli. Per i prossimi anni a venire, vorrei solo rimanere libero di scegliere di fare quello che mi va di fare.

All’inizio della pandemia ho preso un anno sabbatico ed ho rifiutato quelle poche attività che mi hanno proposto per poter curare il mio ultimo libro (senza lavorare di notte come ho fatto per i libri precedenti) e dedicarmi alla divulgazione.

Ho riaperto il mio blog dopo 15 anni ed erogato gratuitamente un corso di formazione di quindici lezioni ad una ventina di persone che in quel momento vivevano difficoltà economiche. Mi piacerebbe ripetere più spesso quella bellissima esperienza, magari anche con persone di altri paesi meno fortunati del nostro.

Conosci il tema gender gap in ambito STEM? Se sì, come fare per superarlo?

Certo, purtroppo conosco bene il problema. Sul luogo di lavoro ho assistito spesso ad insopportabili mansplaining, decisioni sessiste, squallide allusioni e ad abusi verbali.

Sono molto sensibile a questi eventi perché come ti ho detto all’inizio, l’unica cosa che mi fa arrabbiare sono le ingiustizie! Purtroppo si tratta di un problema culturale e ci vorrà tempo per superarlo.

In Italia e in tutto il mondo comunque, gli esempi di figure femminili che eccellono nei loro ruoli sono ormai tantissime, e piano piano il vento cambierà.

Io e tantissime persone seguono sui social grandi informatiche come Angie Jones, Thrisha Gee e soprattutto Rebecca Wirfs-Brock, che rappresenta una delle mie più grandi ispirazioni.

Tu sai cosa intendo, visto che proprio tu Serena, in Italia sei un riferimento femminile molto importante per il mondo informatico, e un esempio da seguire!

Un grazie enorme a Claudio per aver partecipato e dedicato il suo tempo a raccontare questa professione!

Contatti

Post correlati

Partners

Community, aziende e persone che supportano attivamente il blog

Logo di Codemotion
Logo di GrUSP
Logo di Python Milano
Logo di Schrodinger Hat
Logo di Python Biella Group
Logo di Fuzzy Brains
Logo di Django Girls
Logo di Improove
Logo del libro open source

Iscriviti alla newsletter

Per non perderti gli ultimi articoli e per vincere biglietti e gadget TheRedCode

Riceverai una volta al mese (o anche meno) gli articoli più interessanti pubblicati sul blog, e potrai provare a vincere un biglietto per uno dei prossimi eventi!

Andiamo!