Front End, Back End, Full Stack Engineer
Una Guida (Per Capire Di Chi Hai Bisogno)
Il tuo cliente ti dice di cercare uno sviluppatore perché ne vuole uno forte che gli rifaccia il sito internet.
Peccato che il mondo del lavoro parli di full stack engineer, front end developer e programmatore back end, frameworks e MySQL, JavaScript e C++.
Come tradurre le richieste del tuo cliente in un annuncio di lavoro? Come capire quali sono le sue esigenze e cercare il giusto professionista che le sappia risolvere?
Quello che ti serve è una mappa che possa guidarti nel lessico della programmazione di un sito web: ci abbiamo pensato noi.
Sei pronto per iniziare?
Frontend
Lo sviluppatore frontend lavora al frontend di un sito, e questo è ovvio. Ma cos’è il frontend?
Sostanzialmente il frontend è la parte visibile all’utente di un sito internet, quella con cui interagisce. È l’interfaccia utente.
Se quando navighi un sito web è bello, funziona come ti aspetti, capisci dove devi andare per cercare le informazioni che vuoi, allora devi ringraziare chi ha programmato il frontend.
Ma quali sono le competenze che devi cercare in uno sviluppatore frontend?
La costruzione del frontend è basata su tre pilastri: HTML, CSS e JavaScript.
Vediamoli!
HTML
L’HTML (HyperText Markup Language, in italiano ‘linguaggio a marcatori per ipertesti’) è la struttura di internet. Non esiste sito che ne sia sprovvisto.
HTML è un linguaggio di markup, cioè un insieme di istruzioni e marcatori universali (una sintassi) che ogni browser web riesce a interpretare, a capire. Definisce e organizza la struttura logica del contenuto del sito internet.
Ad oggi è in uso la versione 5.2, secondo lo standard divulgato dal World Wide Web Consortium (W3C).
CSS
Se L’HTML definisce il contenuto della pagina, il che cosa si vede in un sito, il CSS (Cascading Style Sheets, in italiano ‘fogli di stile a cascata’) è ciò che definisce la formattazione, il come si vede.
Il CSS controlla font, colori, impaginazione, immagini di sottofondo. È stato introdotto per poter separare la formattazione di una pagina dal suo contenuto, facilitando così la programmazione e aumentando la possibilità di riutilizzo del codice.
Ad oggi sono in uso le raccomandazioni CSS3: così sono chiamate le linee guida, secondo lo standard del W3C.
Di per sé queste due competenze combinate basterebbero per programmare una pagina internet: un linguaggio per strutturare il contenuto, un altro per controllarne la visualizzazione.
Eppure non bastano, perché il risultato sarebbe…povero. Troppo poco per potersi affermare in un mercato così affollato e competitivo come quello dei siti web del giorno d’oggi.
E allora?
Il pezzo che manca è JavaScript.
JavaScript
JavaScript è un linguaggio di scripting, assolutamente da non confondere con il linguaggio di programmazione Java.
JavaScript (JS per gli amici) viene usato nella programmazione frontend per aumentare l’interattività delle pagine web: animazioni complesse, pop-up, interazioni a vario livello sono programmate usando JS.
Con l’evoluzione di internet la quantità di eventi dinamici programmabili usando JS è cresciuta, e oggi sono possibili soluzioni con JS che fino a poco tempo fa rientravano esclusivamente tra le funzioni backend. Questo fa capire anche quanto il confine tra frontend e backend sia ridefinito di giorno in giorno: è il bello del lavorare nell’avanguardia tecnologica.
La complessità delle operazioni eseguibili con JavaScript viene moltiplicata dalla possibilità di usare set già compilati di interazioni, e pattern standardizzati: librerie e frameworks.
Cosa sono?
Vediamolo subito!
Librerie
Frutto di una traduzione sbagliata — il termine inglese, library, significa biblioteca… -, la libreria è un insieme precompilato di funzioni frequenti e comuni, che possono essere richiamate a comando in qualsiasi momento. Sono estremamente utili nella programmazione quotidiana.
Perché?
Ecco i tre principali vantaggi che si ottengono usando le librerie:
- Rapidità — usando funzioni precompilate anziché ripartire da zero per ogni interazione, i programmatori risparmiano tempo e si possono focalizzare su altre funzioni più importanti
- Affidabilità — le librerie JavaScript sono un “usato garantito”, sono supportati da una comunità estremamente numerosa che ne testa continuamente le funzionalità (è come avere un esercito di tester senza doverlo mantenere)
- Prezzo — molti sono gratuiti (open source), in ogni caso il loro utilizzo rende molto più veloce il lavoro di un programmatore, e, come si sa, il tempo è denaro.
Esistono molte librerie JavaScript: due tra le più usate sono jQuery e React.js.
Framework
Un framework è una struttura logica di supporto alla programmazione. È un pattern, un’architettura già impostata su cui il programmatore costruisce la propria specifica applicazione web.
Anche in questo caso, il vantaggio di usare un framework JavaScript risiede nella velocità aumentata con cui il programmatore può codificare e nella sicurezza di queste strutture.
Molto numerosi anche i frameworks JS, alcuni dei più usati sono Angular2, AngularJS, Backbone, Ember e Meteor.
Così, abbiamo preso in esame il frontend di un sito internet:
- HTML
- CSS
- JavaScript — con librerie e framework
Tutto chiaro?
Allora è tempo di passare al lato oscuro del sito internet, di vedere quello che si nasconde nell'ombra del codice sorgente…è tempo di backend!
Backend
Se il frontend indica quello che l’utente vede e con cui interagisce, è logico intuire che il backend è tutto il resto, quello che resta dietro le quinte.
E in effetti è proprio così, la parte backend di un sito internet indica tutta quella parte di codice necessaria al funzionamento corretto della pagina web che però l’utente non vede — e con cui non si relaziona.
Per restare su termini generici, tutto ciò che non implica la programmazione di un’interfaccia utente è considerato backend.
Il form con cui ti puoi iscrivere a GeekandJob — non ti scordare di farlo ;) — è opera di un programmatore frontend, ma il sistema che gestisce i dati che hai inserito, che li rende sicuri, che controlla l’invio del messaggio di conferma e benvenuto, sono opera di uno sviluppatore backend.
Da questo esempio pratico emergono due caratteristiche importanti del programmatore backend:
- Deve coordinarsi con un frontend developer: un sito che non abbia un’interfaccia utente non avrebbe senso, è quindi obbligatorio che uno sviluppatore backend lavori a stretto contatto con chi progetta e codifica l’interfaccia con cui l’utente si relaziona alla pagina web
- Deve conoscere i database e i loro sistemi di gestione (DBMS, DataBase Management Systems): infatti una delle funzioni più frequenti che un backend developer codifica è come il sito internet si relaziona con un database.
Alcuni dei linguaggi di programmazione più usati nel backend sono PHP, Python, Java, .Net, C#, C++, Ruby.
Esistono frameworks anche per questi programmi: un esempio popolare è Ruby on Rails, o più comunemente Rails, framework ovviamente scritto con e per il linguaggio di programmazione Ruby.
Per quanto riguarda invece i database e i DBMS, sono da citare almeno SQL, MySQL, Oracle, Microsoft SQL Server, MongoDB.
Adesso è chiaro cos’è il frontend e il backend di un sito, e chi sono i programmatori frontend e backend. Ne manca solo uno…
Full Stack Developer
A questo punto, capire cos’è un full stack developer è un gioco da ragazzi: metti insieme le capacità di un frontend engineer con quelle di un programmatore backend e sai chi è il full stack developer e cosa fa.
Infatti il programmatore full stack deve essere in grado di programmare entrambi i lati di una pagina web, sia l’interfaccia utente che la parte di backend.
Tra le competenze di un full stack devono esserci quindi:
- HTML
- CSS
- JavaScript
- Uno o più linguaggi di programmazione backend
Il full stack developer è insomma quella figura professionale che sa programmare un sito internet nel suo insieme.
Questo non significa che debba per forza lavorare da solo ad un intero sito, senza alcun apporto di altri professionisti. Ma significa che saprebbe e potrebbe farlo, e sicuramente sa come affrontare un problema là dove si verifica, senza fare distinzioni tra frontend e backend.
Pronto per cominciare?
Adesso, quando il tuo cliente ti dirà “voglio un programmatore”, saprai subito che domande fargli per capire che cosa vuole davvero.
Vuole cambiare la visualizzazione del sito? Allora cerca uno sviluppatore front-end.
Vuole cambiare le funzionalità della pagina web? Allora cerca uno sviluppatore backend.
Vuole un sito nuovo, costruito da zero? Allora cerca un full stack developer.
Qualsiasi sia la scelta, i migliori profili tech sono a soli 3 click da te: