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