Nel mare dello sviluppo: la mia mappa del tesoro

Esplora la mia roadmap per diventare uno sviluppatore web full stack. Scopri le tappe fondamentali e le risorse che mi hanno aiutato lungo il cammino di crescita nel mondo dello sviluppo web.

7/3/20235 min read

Benvenuti sul mio blog! Mi chiamo Davide e, se siete atterrati qui, è perché siete probabilmente curiosi di sapere come sono diventato uno sviluppatore web full stack, o magari siete interessati a intraprendere lo stesso percorso. Oggi, condividerò con voi la mia "roadmap", il mio percorso, le decisioni che ho preso, i successi, le difficoltà e le lezioni che ho imparato lungo la strada.

Tutto ha avuto inizio nel 2021, un anno che ricorderò per sempre. Da diplomato, stavo lavorando come graphic designer, ma l'arrivo del lockdown ha cambiato la mia prospettiva. Durante quei mesi di riflessione e isolamento, ho cercato una nuova direzione e ho trovato il mondo dello sviluppo web.

Ho iniziato a studiare con Boolean Careers, un corso che ha svolto un ruolo cruciale nel mio percorso. Ma parlerò della mia esperienza con Boolean in un prossimo articolo, dato che è stata una svolta tale da meritare un post tutto suo. Oggi, invece, vorrei concentrarmi sulle competenze che ho acquisito e su quelle che, a mio parere, sono fondamentali per chiunque voglia diventare uno sviluppatore web.

HTML e CSS: la base di ogni pagina web

Il mio viaggio nel mondo dello sviluppo web è iniziato con l'HTML, il linguaggio di base per la creazione di pagine web. HTML, o HyperText Markup Language, è un linguaggio di markup che permette di definire la struttura di una pagina web. È come costruire lo scheletro di un edificio: definisce le sezioni, gli elementi e la loro disposizione.

Dopo aver acquisito dimestichezza con HTML, il passo successivo è stato l'apprendimento del CSS. Il CSS, o Cascading Style Sheets, è un linguaggio di fogli di stile che permette di personalizzare l'aspetto di una pagina web. Pensate al CSS come al decoratore d'interni che prende lo scheletro dell'edificio e lo trasforma in un luogo accogliente e attraente.

Per apprendere HTML e CSS, ho trovato estremamente utile questo libro: HTML e CSS: Guida Completa. Mi ha aiutato a comprendere i concetti fondamentali e a iniziare a costruire pagine web.

Bootstrap: il passo successivo nella personalizzazione del web

Bootstrap è un framework CSS che permette di creare siti web responsivi in modo efficiente. Può essere considerato come una libreria di componenti CSS predefiniti, come moduli di navigazione, form, bottoni e altro ancora, che possono essere facilmente implementati per creare un design coerente e professionale.

JavaScript: dando vita alle pagine web

Una volta acquisite le competenze di base di HTML e CSS, è il momento di passare a JavaScript. JavaScript (JS) è un linguaggio di programmazione che aggiunge interattività alle pagine web. Che si tratti di una galleria di immagini dinamica, di un modulo di contatto interattivo o di un gioco browser-based, JS è quello che rende possibile l'interazione con gli utenti.

Un libro che mi ha aiutato immensamente nell'apprendimento di JavaScript e JQuery è JS e JQuery: La Guida Definitiva.

GitHub: lavorare in modo efficiente come sviluppatore

Durante la mia formazione in JavaScript, ho anche iniziato a familiarizzare con GitHub. GitHub è una piattaforma di hosting di codice che facilita la collaborazione tra sviluppatori. Con GitHub, è possibile tenere traccia delle modifiche apportate al codice, collaborare con altri sviluppatore e molto altro ancora. È uno strumento indispensabile per qualsiasi sviluppatore.

Vue.js: un salto nel mondo dei framework JavaScript

Il mio percorso di apprendimento mi ha poi portato a Vue.js, un framework JavaScript per la creazione di interfacce utente. Vue.js mi ha permesso di creare applicazioni web più complesse e strutturate, aprendo una nuova gamma di possibilità.

MySQL, PHP e Laravel: entrando nel back-end

Dopo aver acquisito una solida comprensione del front-end, ho iniziato a esplorare il back-end con MySQL e PHP. MySQL è un sistema di gestione di database relazionali, mentre PHP è un linguaggio di scripting lato server. Queste competenze mi hanno permesso di creare siti web dinamici, dove i contenuti possono cambiare in base alle interazioni dell'utente.

Ho poi approfondito la mia conoscenza di PHP attraverso Laravel, un framework che fornisce una struttura e degli strumenti per semplificare la creazione di applicazioni web con PHP.

Ho trovato il libro PHP e MySQL: Manuale del Programmatore particolarmente utile per imparare come utilizzare efficacemente questi strumenti nel mio sviluppo web.

Le competenze che consiglio di acquisire

Sebbene le tecnologie che ho appreso rimangano le mie preferite e se tornassi indietro le sceglierei ancora, l'esperienza mi ha permesso di scoprire ulteriori competenze e strumenti indispensabili per chi aspira a diventare uno sviluppatore web full stack.

Attualmente, sto approfondendo queste tecnologie:

Tailwind: un framework CSS utility-first che si sta rapidamente affermando come un'alternativa popolare a Bootstrap. A differenza di Bootstrap, che fornisce una serie di stili predefiniti che possono essere personalizzati, Tailwind consente agli sviluppatori di costruire design personalizzati componendo classi di utility. Questo permette di avere un controllo molto più granulare sul design finale, rendendo Tailwind uno strumento potente per chi vuole creare interfacce uniche e sofisticate.

React: sebbene il mio percorso di apprendimento mi abbia portato a Vue.js, ho notato che molte offerte di lavoro chiedono esperienza con React, un altro framework JavaScript sviluppato da Facebook. React si distingue per la sua efficiente gestione degli aggiornamenti e renderizzazioni grazie al suo algoritmo di "reconciliation", e per la sua architettura basata su componenti. React è anche il cuore di React Native, un framework per lo sviluppo di app mobile, quindi apprendere React può aprire anche a queste opportunità.

PostgreSQL e Node.js: per quanto riguarda lo sviluppo back-end, ho iniziato con MySQL e PHP, ma ho notato che molte offerte di lavoro richiedono la conoscenza di PostgreSQL e Node.js. PostgreSQL è un potente sistema di gestione dei database open source, con molte funzionalità avanzate. Node.js, d'altra parte, è un ambiente di runtime JavaScript che consente di eseguire JS lato server. L'uso di JS sia per il front-end che per il back-end (utilizzando ad esempio una configurazione nota come stack MERN, con MongoDB, Express.js, React e Node.js) può portare a una maggiore coerenza ed efficienza nello sviluppo.

Strumenti utili per l'apprendimento

Un percorso di apprendimento non sarebbe completo senza gli strumenti giusti. Durante il mio percorso, ho scoperto roadmap.sh, un sito web che fornisce roadmap dettagliate per una vasta gamma di carriere nel mondo dell'IT.

In un certo senso, roadmap.sh può essere considerato come una bussola per lo sviluppatore in erba: fornisce una visione d'insieme dei diversi percorsi di apprendimento disponibili, elenca le competenze e le tecnologie chiave da acquisire e fornisce risorse utili per l'apprendimento.

Se dovessi dare un consiglio a chi è alle prime armi nello sviluppo web, direi di iniziare da qui. Non solo aiuta a capire meglio cosa si vuole fare, ma può anche aiutare a individuare lacune nelle proprie competenze e a pianificare i prossimi passi.

In conclusione, il viaggio per diventare uno sviluppatore è ricco di scoperte e sfide. Non c'è un "percorso giusto", ogni sviluppatore trova la propria strada, sperimentando, imparando e adattandosi. Le competenze che ho menzionato rappresentano solo la punta dell'iceberg, e nuove tecnologie emergono continuamente.

È importante mantenere un atteggiamento aperto e curioso e cercare sempre opportunità per imparare e migliorare. Continuerò a condividere i miei pensieri, esperienze e risorse utili su questo blog, e sono entusiasta di interagire con voi, lettori. Rimanete sintonizzati per i futuri post, dove esploreremo insieme il mondo affascinante dello sviluppo web. Grazie per avermi letto e a presto!

I link ai prodotti in questo articolo sono link di affiliazione. Ciò significa che riceverò una piccola commissione se decidi di acquistare attraverso questi link, senza alcun costo aggiuntivo per te. Il tuo supporto contribuisce a mantenere attivo il mio impegno nello sviluppo web e nella condivisione di risorse e informazioni preziose con la comunità. Grazie per il tuo supporto!