Nishu Goel è un rinomato web engineer dall'India, Google Developer Expert per Angular e tecnologie web. Ci ha raccontato del suo coinvolgimento con la comunità, dei piani di carriera e dei modi migliori per imparare a sviluppare il web.
Nishu Goel è un rinomato web engineer dall'India, Google Developer Expert per le tecnologie Angular e web, Microsoft Most Valuable Professional. È autrice di Step by Step Angular Routing (BPB, 2019) e A Hands-on Guide to Angular (Educative, 2021), nonché autrice del capitolo JavaScript di Web Almanac 2021. Attualmente Nishu lavora per epilot GmbH come tecnico full stack. Ci ha raccontato del suo coinvolgimento con la comunità, dei piani di carriera e dei modi migliori per imparare a sviluppare il web.
Monika: Iniziamo con la tua storia. Cosa ti ha spinto a diventare uno sviluppatore e ad assumere un ruolo attivo nelle community di sviluppatori?
Nishu: Ho conseguito la laurea in informatica, abbiamo studiato le strutture dei dati ed è qui che è iniziato l'interesse per la programmazione. Durante il terzo anno di progettazione, è stato stabilito un legame con la community di sviluppatori grazie alla mia partecipazione al concorso Microsoft Imagine Cup Nationals in cui abbiamo presentato le soluzioni tramite codice. L'idea dell'applicazione che abbiamo creato era offrire opportunità didattiche agli studenti locali, in particolare alle ragazze. Ho incontrato persone molto stimolanti, sia partecipanti che organizzatori in questo viaggio.
Nel 2018 la mia carriera professionale è decollata e ho iniziato a lavorare con Angular. Angular è diventata la tecnologia principale che mi ha collegato al programma GDE. Più o meno contemporaneamente, ho iniziato a scrivere post di blog e a creare contenuti sull'argomento su cui stavo lavorando e su cui stavo imparando . Dhananjay Kumar mi ha aiutato a iniziare questo viaggio e si è assicurato di mantenermi sulla buona strada. I miei primi articoli riguardavano le nozioni di base di Angular. Poco dopo che ho iniziato a parlare a determinati eventi, il primo è stato ngNepal, la Conferenza Angular del Nepal. Ciò ha portato a un numero maggiore di inviti a parlare delle tecnologie Angular e web.
Monika: Qual è la tua esperienza professionale dal punto di vista tecnologico?
Nishu: i primi due anni sono stati incentrati sui componenti di Angular e web. Stavo usando Angular per creare il web, ma ben presto ho deciso di andare oltre ed esplorare altri campi. Non volevo limitarmi nel caso in cui dovessi cambiare progetto. È così che ho iniziato a creare componenti web in Angular da usare in altri framework.
La prima cosa che ho fatto è stato creare componenti web utilizzando Angular. L'ho pubblicata su npm e l'ho usata come demo in un progetto React. Ne ho già parlato durante alcuni interventi e presentazioni in seguito. Il mio prossimo job era quello di utilizzare React e Typescript. Dato che lavoravo con React, non utilizzavo più solo un framework, ma il web in generale. In quel momento ho imparato molto sul web, in particolare sul rendimento sul web. È stato allora che ho iniziato a pensare alla Largest Contenful Paint (LCP) o alla First Contentful Paint (FCP), che indicano il tempo necessario per il caricamento dell'applicazione o il tempo massimo per il rendering della pagina. Ho lavorato per scegliere le best practice e migliorare le prestazioni delle applicazioni.
Dato l'interesse dimostrato per il rendimento sul web, mi sono iscritto al Web Almanac e ho scritto il capitolo su JavaScript. Web Almanac è un report annuale sullo stato del web in generale: ci dice come le persone utilizzano funzionalità diverse. L’anno scorso sono stati esaminati 8,6 milioni di siti web, i dati sono stati analizzati e presentati nel report. Il report include statistiche come l'utilizzo degli attributi async
e defer
in un elemento <script>
. Quanti siti web li utilizzano correttamente, quanti non li usano affatto e quanti ne hanno migliorati rispetto al 2020. L'ultimo report di Web Almanac citava che circa il 35% dei siti web utilizzava due attributi per lo stesso script, che era un anti-pattern, diminuendo le prestazioni. Questo è stato sottolineato l'anno scorso e quest'anno abbiamo cercato di vedere se la situazione migliorasse. Ho parlato anche al ngConf e al Reliable Dev Summit, dove mi sono concentrato sulle prestazioni del web.
Monika: Stai anche impegnando molto il tuo contributo alla comunità. Di recente hai fatto volontariato con una ONG ugandese YIYA. Come è iniziato tutto ciò e qual è stato il punto principale di questa collaborazione?
Nishu: tutto è iniziato con il team GDE che ci informava dell'opportunità di volontariato con YIYA. La ONG ugandese cercava tecnici che la aiutassero per la preparazione dei contenuti o le funzionalità tecniche. Il programma mira a supportare i bambini in età scolare in Uganda e a offrire loro opportunità di istruzione utilizzando le tecnologie disponibili a livello locale: non i computer o i libri di testo, ma piuttosto le basi di radio e telefoni con tastierino. Possono comporre un determinato numero e ricevere una serie di informazioni, comporre un altro numero per ottenere ulteriori informazioni e così via. È diventato ancora più utile durante la pandemia.
Dal momento che mi occupo da sempre degli obiettivi di sviluppo sostenibile e della comunità, ho deciso di contattarti. Dopo un incontro con il team YIYA, ho offerto il mio aiuto con gli script Python o con gli eventuali bug riscontrati e gli eventuali problemi del portale. Abbiamo lavorato insieme per un breve periodo di tempo.
Monika: Che piani hai per il 2022? C'è qualcosa su cui ti stai concentrando in particolare?
Nishu: Sto cambiando lavoro e mi trasferisco in un altro paese. Lavorerò sul web in generale, migliorando le prestazioni del sito, nonché sul backend, utilizzando Golang. Continuerò a concentrarmi sull'area del rendimento web, poiché è molto interessante e complesso e c'è molto da capire e ottimizzare. Anche ora, dopo aver dedicato molto tempo a questo progetto, c'è ancora molto da imparare. Ad esempio, vorrei capire come l'utilizzo di una CDN per le mie risorse di immagini mi aiuterebbe a rendere la mia app ancora più veloce. Voglio diventare l'esperto del rendimento sul web: ci sto arrivando gradualmente, mi piace credere :)
Monika: Hai detto di aver iniziato a scrivere in un momento in cui non eri un'esperta, ma solo quello che stavi imparando. Cosa consiglieresti ai nuovi sviluppatori che si avvicinano e si sentono di non avere nulla da condividere?
Nishu: È esattamente quello che mi sono sentito quando ho iniziato a scrivere. Pensavo che forse non avrei dovuto metterlo fuori? Forse è solo sbagliato? Temevo che i miei scritti non avrebbero aiutato i lettori. Ma la cosa importante era che le mie scritture mi aiutavano. Dopo un po' di tempo mi dimenticherei qualcosa e poi tornerei su qualcosa che ho scritto prima. Scrivere qualcosa è un'ottima idea.
Quindi suggerirei a tutti di scrivere, in qualunque fase. Anche se hai completato solo una parte del corso che stai seguendo, stai imparando a scrivere. Un'informazione che hai avuto modo di conoscere a un certo punto può essere utile ad altre persone che ancora non lo sanno. Non devi essere un esperto. Scrivere ti aiuterà. e per tutti, in qualsiasi fase della loro carriera.
Monika: È meglio seguire le persone che hanno appena imparato qualcosa perché sanno tutte le cose che devono capire. Una volta diventato un esperto, è difficile ricordare com'era quando non eri nuovo. E qualche consiglio per qualcuno che sta muovendo i primi passi nello sviluppo web?
Nishu: molte persone chiedono quale framework scegliere all'inizio, ma penso che non sia la domanda giusta. Qualunque cosa stiamo imparando in un momento qualsiasi dovrebbe essere utile anche in una fase successiva. Consiglierei a chiunque di eliminare i limiti e di iniziare con HTML o JavaScript, un approccio redditizio in futuro.
E cogli ogni occasione che ti viene in mente. Questo è successo quando mi sono imbattuto in informazioni sulla ricerca di autori dal Web Almanac. Ho pensato: "Oh, questo è interessante, può aiutare tutti dal lato delle prestazioni". È così che sono diventato un lead per i contenuti del capitolo su JavaScript e ho trascorso sei mesi a scriverlo. Penso che si tratti solo di cogliere le opportunità e lavorare sodo.
Monika: Hai previsioni o idee sul futuro della tecnologia web in generale? Quale sarà il prossimo argomento caldo? Cosa crescerà rapidamente?
Nishu: Adoro il fatto che ora siamo in grado di eseguire i server all'interno dei browser, si tratta di un grande passo avanti. Ad esempio, di recente abbiamo introdotto l'esecuzione di Node.js dal browser, mentre in passato non era possibile eseguire nulla senza che Node.js fosse installato nei nostri sistemi. Ora possiamo fare qualsiasi cosa dal browser. Si tratta di un enorme passo avanti nell'ecosistema web. E l'OMT, fuori dal thread principale. Anche lavorare sui thread sarà molto migliorato. Web Assembly si sta evolvendo e consente agli sviluppatori di farlo, e penso che questo sia il futuro dell'ecosistema web.