
Cosa ti ha spinto ad intraprendere il percorso di studi in Boolean Careers? C’è stato un momento specifico in cui hai capito che volevi diventare Developer?
Futuro di MAUIHo iniziato il percorso con boolean con la voglia di volermi reinventare in un percorso di carriera che rispecchiava meglio le mie necessita e le mie passioni ed interessi.
Mi è sembrata la via piu interessante e promettente basandomi anche su conversazioni fatte con ex-studenti che ho contattato su linkedin.
L’introduzione di MAUI nel mondo dello sviluppo ha aperto nuove possibilità per le app multiplatform. Come vedi il futuro di questa tecnologia?
DockerLa tecnologia di maui porta avanti quella che era l’eredità del vecchio Xamarin, permettendo di scrivere del codice che può essere eseguito su più piattaforme. E’ sicuramente una tecnologia interessante che permette uno sviluppo più rapido e comodo di applicazioni. Credo che mi accompagnerà per molto tempo, vista la sua utilità e la sua giovinezza nel mondo dello sviluppo.
Che ruolo giocano i container come Docker nel tuo lavoro quotidiano, e come pensi che abbiano rivoluzionato il processo di sviluppo e deployment?
Limiti dell’AII container come Docker giocano un ruolo chiave nel rendere il lavoro di sviluppo e deployment più semplice ed efficiente. Permettono di creare ambienti di lavoro isolati e consistenti, eliminando il classico problema del “funziona sul mio computer ma non sul server”. Con Docker, possiamo pacchettizzare un’applicazione con tutte le sue dipendenze in un’immagine, garantendo che funzioni allo stesso modo ovunque venga eseguita.
Quali sono i limiti attuali dell’AI nello sviluppo software, considerando l’uso di chatbot per il coding e il debugging?
Nuovi Ruoli e SkillL’uso dell’AI per lo sviluppo è ormai una pratica molto usata. Permette di debuggare del codice in maniera semplice e veloce dando magari anche alternative al codice inizialmente fornito.
Non è però una tecnologia perfetta: serve sempre dello spirito critico e la capacità di comprendere cosa ci viene proposto dal chatbot per capire quando quanto presentato come risposta sia valida oppure sia un’errata interpretazione da parte del chatbot per mancanza di conoscenza di dominio.
Tutto sommato si tratta comunque di una tecnologia in rapida crescita che migliorera di anno in anno. Non bisogna però abusarne e cercare sempre di ragionare con la propria testa invece di far fare tutto alla macchina senza nemmeno provarci.
Quali sono i limiti attuali dell’AI nello sviluppo software, considerando l’uso di chatbot per il coding e il debugging?
Il tuo approccioCome già citato, il ruolo del prompt engineer sarà sicuramente una posizione molto ricercata, come altri ruoli che ruotano intorno all’intelligenza artificiale. Linguaggi come Python saranno sempre più richiesti, il che suggerisce quindi a chi si sta approcciando adesso alla programmazione, ad investirci tempo e risorse per riuscire ad impararlo al meglio e in profondità.
Quali principi segui per scrivere codice leggibile e manutenibile, e come bilanci queste pratiche con l’efficienza e le prestazioni?
Quando si scrive codice è sempre preferibile cercare di essere il piu chiari e puliti possibile, dal nome delle variabili al nome delle funzioni. Sarebbe anche ottimale scrivere un minimo di documentazione sulle funzionalità che vengono sviluppate nel corso del tempo, in modo da poter capire tramite un rapido commento, cosa fa e a cosa serve un determinato metodo.
In ogni caso vale sempre il concetto di “anche se ora capisci cosa fa il tuo codice, tra una settimana te ne sarai già dimenticato”.
Commenta sempre il tuo codice.
Lavorare in team è una parte fondamentale dello sviluppo software. Quali lezioni hai imparato collaborando con altri sviluppatori, e come queste influenzano il tuo approccio al lavoro?
Il lavoro in team, come già detto, è una parte fondamentale. C’è sempre un’altra persona con la quale dobbiamo interfacciarci, che sia un project manager o il cliente.
Lavorare con un team ti permette di apprendere conoscenze da chi ha una seniority più alta della tua, sia per trapasso di nozioni sia attraverso le cosiddette Code Reviews, durante le quali vai a rivedere e a spiegare il codice che scrivi ad altri dev, a volte anche non facenti parte del tuo team, in modo da ricevere commenti costruttivi e magari suggerimenti su approcci alternativi per risolvere le problematiche che hai dovuto affrontare.
Inoltre, lavorare in team ti permette di entrare in contatto con persone che sono in grado di consigliarti al meglio su possibili percorsi di crescita.
Qual è la tua idea di Team ideale e come dovrebbe lavorare per ottenere i migliori risultati?
Sfide ScalabilitàIl mio team ideale è un team affiatato e amichevole, che crea un ambiente in cui ci si può sentire liberi di dare voce a dubbi o perplessità senza essere giudicati.
Il mio team ideale lavora con metodologie Agile, che permette di avere un flusso costante di task ben definiti e suddivisi, in modo da poter cominciare un compito fin da subito e avere sempre attività da svolgere.
Quali sono le principali sfide nello sviluppo di applicazioni scalabili e ad alte prestazioni? Puoi condividere un esempio pratico di come hai affrontato e risolto un problema?
Consiglio per i JrLe principali sfide nello sviluppo sono la capacità di rimanere resiliente tra un problema e l’altro, il non farsi abbattere dalla sensazione di inadeguatezza che si può provare e il non aver paura di chiedere aiuto ad un membro del team quando si rimane bloccati. Siamo tutti costanti studenti, alcuni più avanti di altri e non c’è niente di male nel chiedere aiuto.
Quando incappo in un problema cerco di capire inizialmente se si tratta di una problematica dovuta ad un errore di battitura. Una volta appurato che non è quello il problema comincia la ricerca sul messaggio di errore che incontriamo. 9 volte su 10, gli errori che potremmo incontrare sono già capitati a qualcuno e sicuramente se ne trova traccia online, che sia attraverso forum come StackOverflow oppure sulle documentazioni della tecnologia che stiamo utilizzando.
Da lì si trovano una pletora di soluzioni che possiamo provare per risolvere il nostro problema.
E se proprio non riusciamo a trovare una soluzione nei primi 30-40 minuti allora è giunto il momento di chiedere un consiglio ad un nostro collega più esperto.
Qual è il consiglio più importante che daresti a un aspirante sviluppatore che vuole iniziare una carriera nell’IT?
ProgettiConsiglio a chi comincia ad approcciarsi allo sviluppo di non farsi scoraggiare dalla quantità di materiale da studiare. Nessuno sa tutto, e se anche impari una tecnologia, se non la usi spesso, finirai col dimenticare come si usa. E va bene così.
Inoltre, consiglio di utilizzare mezzi che ti permettono di mettere subito in pratica quello che impari, così da capire al meglio quello che stai studiando e anche rendere il processo più piacevole e soddisfacente.
Cerca coding challenges, idee per progetti da mettere nel tuo portfolio e unisciti a forum e gruppi che condividono il tuo interesse per lo sviluppo in generale o per un linguaggio/framework preciso, in modo da entrare in contatto con tante persone con esperienze differenti. Se puoi, consiglio anche di frequentare eventi di persona: sono un’ottima occasione per conoscere sviluppatori di altri paesi o personaggi che giocano ruoli fondamentali nello sviluppo delle tecnologie stesse che usiamo ogni giorno.
Per concludere, c’è un progetto personale o professionale che vorresti condividere con i nostri lettori? Dove possono seguirti per conoscere meglio il tuo lavoro?
Per chi avesse qualche altra domanda o curiosità da chiedere può contattarmi sul mio profilo LinkedIn.
E se qualcuno vuole esplorare un po’ di progetti che ho fatto nel corso degli studi può vedere il mio profilo GitHub