←
Da Front-End a Back-End Web Developer
home / miscellaneous /
Lucio Paolo Asciolla
Senior Full Stack Developer
Nel modo dello sviluppo, e nel nostro caso sviluppo web, esistono diversi tipi di sviluppatori:
Front-End, Back-End e Full Stack Web Developer.
Tutte queste figura si occupano di aspetti distinti nell'ambito dello sviluppo web.
Il front end developer è un programmatore specializzato nello sviluppo della parte front end di siti e applicazioni web. Attraverso linguaggi come CSS, HTML e JavaScript, lo sviluppatore front end implementa il design di una pagina web e codifica tutti gli elementi che l'utente vede e con cui interagisce.
I linguaggi di programmazione Font-End come Javascript sono anche detti linguaggi client-side in quanto vengono eseguiti sul pc e nello specifico nel browser del visitatore.
Esempi di sviluppo front-end sono:
Uno Sviluppatore Back-end è un programmatore che crea la logica back-end e computazionale di un sito web, di un software o di un sistema informatico. Lo sviluppatore crea componenti e strumenti che sono accessibili, in maniera indiretta, da un utente attraverso una applicazione o un sistema front-end.
Questo tipo di sviluppatore, programma tutto ciò che l'utente non vede ma che di fatto il sito, l'applicativo, esegue.
I linguaggi di back-end come ad esempio PHP, sono anche detti server-side ovvero sono eseguiti/elaborati sul server; essi dialogano con il server e con vari database come MySQL, MariaDB ecc.
Attraverso la programmazione back-end è possibile memorizzare, recuperare ed elaborare dati e file presenti sul server, il tutto senza che l'utente si accorga di nulla.
Esempi di programmazione back-end sono:
Il Full Stack Developer è uno sviluppatore che ha una formazione tecnica completa che gli permette di progettare, sviluppare, testare e distribuire siti o applicazioni web partendo da una corretta architettura dei dati, sia di navigazione che relativa alla struttura della singola interfaccia. La figura professionale è un tecnico in grado di operare sia lato front end che back end nello sviluppo di un’applicazione o sito web.
Una volta intrapresa la propria strada, gli sviluppatori sono classificabili in micro-categorie che fondamentalmente sono: Junior, Middle e Senior.
In realtà si tratta di titoli auto-attribuiti che rappresentano un mix tra anni di esperienza e livello del talento conseguito.
Un programmatore junior è una persona che è entrato per la prima volta nel mondo del lavoro in ambito informatico oppure che ha pochi anni di esperienza.
Se la formazione è stata adeguata si sarà acquisita, la "forma mentis" ovvero la logica e basi dei linguaggi di programmazione.
Uno studente universitario che consegue la laurea in "Ingegneria Informatica e della programmazione del software" sarà sempre classificato inizialmente sviluppatore Junior.
Possiamo quindi definire uno sviluppatore essere "Junior", supponendo esso abbia avuto un percorso sano e qualitativo di formazione, nel periodo che va dall'inizio della sua carriera a 1/2 anni di esperienza.
| Esperienza | 1/2 anni |
| Stipendio medio | € 1.000-1.200 netti/mese |
E' quindi necessario conseguire il titolo di laurea? No, non è strettamente necessario.
Il mondo dello sviluppo web è un mondo in rapida espansione ed allo stesso tempo accessibile a chiunque grazie a manuali specifici e documentazioni ufficiali presenti online.
Un laura conseguita in "Ingegneria Informatica" rimane sempre un buon biglietto da visita.
I corsi online di 3 mesi full immersion, sono un buon modo di approcciarsi al mondo dello sviluppo-web.
Essi però rimangono sempre un "approccio".
Il più delle volte si concentrano sull'utilizzo di determinati frameworks, escludendo di sana pianta Javascript puro, "utili" allo sviluppo, ma che non vi faranno diventare sviluppatori.
"Middle", intermedio, non è molto utilizzato ma identifica lo step successivo al livello Junior e antecedente al livello Senior.
Possiamo definire Middle uno sviluppatore dai 2 ai 4 anni di esperienza lavorativa continuativa.
| Esperienza | 2/4 anni |
| Stipendio medio | € 1.200-1.500 netti/mese |
Uno sviluppatore "Senior" è uno sviluppatore autosufficiente in media con 4/5+ anni di esperienza.
Senior vuol innanzitutto dire che sei molto bravo.
Il titolo "Senior" va usato con molta attenzione perché se ti dichiari Senior sei sottoposto ad un colloquio molto più selettivo e potresti per molte aziende non essere preso in considerazione perché costi troppo.
| Esperienza | 4/5+ anni |
| Stipendio medio | € 1.500-2.000+ netti/mese |
Le competenze fondamentali per essere un front-end web developer sono senz'altro: HTML5, CSS e JS.
Le proprie skills possono essere incrementate dalla conoscenza di ulteriori librerie e framework.
Seppur ritenuto obsoleto, nell'ambito web, risulta ancora molto utile ed utilizzata la libreria JQuery.
Typescript, invece, è un linguaggio di programmazione tipizzato superset di Javascript; si tratta di un integrazione di Microsoft che aggiunge tipi, classi, interfacce e moduli opzionali al JavaScript tradizionale.
Qualsiasi codice scritto in JavaScript è anche compatibile con la sintassi e la semantica TypeScript; risulta utile se intendiamo avvicinarsi allo sviluppo con Angular.
Sass (Syntactically Awesome StyleSheets) è un'estensione del linguaggio CSS che permette di utilizzare variabili, di creare funzioni e di organizzare il foglio di stile in più file.
Tailwind CSS è un framework CSS di basso livello, molto personalizzabile, che offre tutti gli elementi di costruzione di cui hai bisogno per creare progetti su misura.
JQuery è un libreria javascript che permette ai developer di sviluppare pagine web con funzionalità interattive in maniera semplice tramite una sintassi abbreviata.
Typescript è un linguaggio superset di JavaScript.
GitHub è uno strumento web un tool con cui programmatori possono lavorare in modo coordinato sulla stessa base di codice, pur sviluppando in modo indipendente.
Bootstrap è un framework, di casa Twitter, utilizzato dagli sviluppatori di tutto il mondo come base per la realizzazione di interfacce web per rendere i siti web responsive.
Vue.js è un framework Javascript che astraendo il processo di rendering dei dati e aggiornamento del DOM, consente di realizzare delle interfacce utente attraverso un approccio dichiarativo. Ciò vuol dire che usando una specifica sintassi dovremo solo preoccuparci di indicare cosa deve essere mostrato all'interno di una pagina web.
D3.JS è una libreria per la visualizzazione dei dati, piccole tabelle, diagrammi e statistiche che rappresentazioni grafiche complesse
Angular è un framework JavaScript, di casa Google, per applicazioni web dinamiche, utilizzato in particolare per la creazione di Single-Pag-Application e web app. Consente di utilizzare HTML come linguaggio template e di estenderne la sintassi per esprimere le componenti di un'applicazione in modo chiaro e succinto.
React è una libreria Javascript opensource sviluppata da Facebook per creare UI ( User Interface) interattive.
Node.JS è un framework utilizzato per scrivere applicazioni in Javascript lato server.
Laravel un framework PHP con una sintassi espressiva ed elegante che fornisce una struttura e un punto di partenza per creare applicazioni web.
Una Library è un set di funzioni che possono essere richiamate, il programmatore è quindi libero di scegliere quali parti di questo set usare/richiamare.
Un’esempio di Library utile per il web development è quella di Ajax.
Il Toolkit è formato da una serie di strumenti atti a svolgere delle azioni e può essere formato da più librerie e framework.
Il termine Framework può essere tradotto come intelaiatura, struttura.
Oggi i framework sono ampiamente diffusi anche per la programmazione web. Un framework consente al programmatore di avere già una base su cui andare a lavorare, il progetto dovrà essere sviluppato rispettando le regole e il linguaggio di sviluppo del framework stesso.
Altri termini e componenti per lo sviluppo sono i patterns, i CMS e le API.
Un Pattern è una soluzione generale ad un problema ricorrente.
Più semplicemente rappresentano delle strutture, di blocchi di codice, suggerite, per poter gestire al meglio determinate “situazioni” di sviluppo.
Rappresentano, modelli progettuali di riferimento, schemi logici di risoluzione, offrendo un modello di riferimento per la realizzazione, gestione, di componenti software e/o situazioni di sviluppo.
Il termine CMS è l’acronimo di Content Management System.
Possiamo immaginare un CMS com'è una struttura pre-fabbricata che aiuta gli sviluppatori a creare, gestire e modificare i contenuti di un sito web.
In parole semplici, un CMS è uno strumento che consente di costruire un sito web senza bisogno di scrivere tutto il codice da zero.
La particolarità dei CMS è la possibilità di implementarli grazie alla loro struttura modulare composta di unità distinte, ognuna delle quali assolve in genere un compito specifico ed è capace di interagire con le altre.
Queste estensioni sono comunemente chiamate plug-in (collegamento) o addons (componenti aggiuntivi).
Tra i più comuni CMS abbiamo Wordpress con l'estensione Woocommerce, Prestashop, Joomla, Drupal, Magento ma ne esistono davvero tanti per ogni scopo.
Note: spesso si ritiene che l'utilizzo di questi strumenti serva per colmare la mancanza di competenze; la realtà è che, se utilizzati in maniera avanzata, potrebbe risultare maggiormente difficoltoso modificare codice già scritto,considerando anche le molteplici estensioni di ulteriori sviluppatori esterni, rispetto a scrivere una struttura/progetto da zero.
API è l'acronimo di "Application Programming Interface";
Tradotto, "Interfaccia di programmazione applicazioni", di fatto, interfacciano applicazioni differenti con lo scopo di farle dialogare e consentire la programmazione.
Un API è quindi un applicazione che funge da "ponte/gancio" e che possiede comandi proprietari (come metodi e proprietà) che estendono le funzionalità di un'altra applicazione, nel nostro caso Javascript, consentendone la loro interazione/integrazione.
Le fondamentali API utilizzate nello sviluppo web sono:
Document Object Model API per la manipolazione del DOM e la Browser API per le interazioni con il browser.
Queste API, nativamente integrate nei browser di navigazioni come Chrome, Firefox, Edge, Safari ecc. aggiungono nuovi comandi al linguaggio di programmazione Javascript e consentono di far dialogare quest'ultimo con il browser, applicazione esterna, e le pagine HTML (DOM), documenti dell'applicazione esterna.
Possiamo quindi affermare, quanto meno nell'ambito dello sviluppo-web, che: