Professionalità a confronto: front end e back end

Che cosa fa uno sviluppatore web? Lo ha spiegato un professionista del settore in una delle nostre precedenti interviste, affermando che questa figura si occupa del front end o del back end di un sito (o anche di tutti e due).

Ma che cosa significa, nel dettaglio, essere uno sviluppatore front end o back end? La domanda è importante per chi vuole lavorare in questo campo, non solo per capire quali sono i requisiti necessari, ma anche per comprendere gli annunci e le richieste delle aziende.

La definizione dei ruoli del front end e back end developer

Un sito – ma anche un’applicazione web –  è composto essenzialmente da due parti:

– una visibile, quella con cui interagisce l’utente,

– una “invisibile” all’esterno, “motore” di tutto il resto, senza la quale il sito non funzionerebbe.

Ecco dunque le definizioni:

– lo sviluppatore front end è colui che realizza la parte visibile del sito, l’interfaccia attraverso la quale navighiamo, vediamo foto e video, leggiamo testi o svolgiamo altre attività;

– lo sviluppatore back end si occupa del “dietro le quinte” del sito e crea quindi tutto quello che fa funzionare l’interfaccia, ma che l’utente non vede.

C’è poi un terzo ruolo: lo sviluppatore full stack, che sa realizzare sia il front end, sia il back end. Spesso lavora con altre figure specializzate, ma è comunque in grado di intervenire nello sviluppo di entrambe le parti di un sito o di un’app.

Sulla base delle differenze tra front end e back end, diverse sono anche le competenze richieste alle tre categorie di sviluppatori. Vediamo dunque le conoscenze specifiche che devono avere i programmatori front end, back end e full stack.

I linguaggi per lo sviluppatore front end: HTML, CSS, Javascript

Il programmatore front end sviluppa l’interfaccia del sito, ma è importante sottolineare che non si tratta solo di grafica (che è di competenza del web designer), ma di user experience, cioè di rendere piacevole e funzionale l’esperienza di chi deve navigare sul sito (o utilizzare l’applicazione).

Questo significa che l’utente deve poter usare il sito o l’app nel modo più semplice e veloce possibile, su ogni piattaforma e con ogni dispositivo: pc, tablet, smartphone.

Sono 3 i linguaggi che uno sviluppatore front end deve padroneggiare:

1. HTML (HyperText Markup Language, in italiano “linguaggio a marcatori per ipertesti”): è il linguaggio che definisce e organizza la struttura del contenuto del sito, il che cosa si vede, in modo che i browser possano “leggerla”. Tutti i siti sono costruiti con l’HTML.

2. CSS (Cascading Style Sheets, in italiano ‘fogli di stile a cascata’) definisce invece come si vede il sito, cioè l’aspetto che hanno le pagine web: colori, font, sfondi.

3. JavaScript: è il linguaggio che ha segnato la svolta nella costruzione dei siti web, perché permette di aggiungere alle pagine elementi interattivi e dinamici come pop-up e animazioni. Da non confondere con Java, impiegato per lo sviluppo di applicazioni e che fa invece parte degli “attrezzi del mestiere” di chi si occupa di back end.

JavaScript dispone di una serie di strumenti che facilitano il lavoro del programmatore:

– le librerie, insiemi di funzioni precompilate e specializzate che velocizzano l’attività di sviluppo: sono affidabili, perché testate continuamente dai programmatori JavaScript, e molte sono anche gratuite;

– i framework, infrastrutture logiche già predisposte per sviluppare un’applicazione: anche in questo caso il vantaggio è il risparmio di tempo, unito alla sicurezza di queste architetture. I framework JavaScript più usati sono Angular2, AngularJS, Backbone, Ember e Meteor.

Le competenze del programmatore back end: PHP, Java, Python e database

Lo sviluppatore back end opera “dietro le quinte”: il suo lavoro, dunque, deve essere funzionale a ciò che dovrà fare il suo collega che si occupa del front end. I due ruoli sono complementari e lavorano a stretto contatto per far sì che il sito sia efficiente, affidabile e anche gradevole.

Lo sviluppatore back end deve avere due competenze principali: i linguaggi di programmazione e la conoscenza dei database.

Tra i linguaggi di programmazione più richiesti per il back end ci sono:

Java, il linguaggio must have, perché, essendo indipendente dai sistemi operativi, è quello più usato per sviluppare le applicazioni web ed è quindi indispensabile per un programmatore;

PHP, nato per creare pagine web dinamiche (originariamente l’acronimo derivava da Personal Home Page) e utilizzato per sviluppare applicazioni web lato server, cioè di back end;

C#, il linguaggio derivato da C e C++ per la piattaforma .NET, usato per sviluppare le applicazioni Microsoft, ma anche per smartphone e videogames;

Python, considerato il “rivale” di Java, usato non solo per le applicazioni, ma anche per l’analisi dei dati;

Ruby, anch’esso per applicazioni, che dispone di diversi framework, il più noto dei quali è Ruby on Rails.

La conoscenza dei database è importante per uno sviluppatore back end, perché spesso i siti devono gestire dei dati (come per esempio nell’e-commerce). Tra le competenze per creare e far funzionare un database citiamo SQL, Oracle MySQL, Microsoft SQL Server, MongoDB.

Il full stack developer: la somma di front end e back end

Infine, lo sviluppatore full stack è la figura “completa”, che sa creare entrambe le parti di un sito e unisce quindi le competenze dei due colleghi che abbiamo appena esaminato.

Di conseguenza, il full stack developer dovrà conoscere:

– HTML, CSS e JavaScript (con librerie e framework) per lo sviluppo del front end

– Java (ma possibilmente anche un altro linguaggio) per lo sviluppo delle applicazioni di back end

– almeno un linguaggio per la creazione e la gestione dei database