frontend developer

Il Frontend Developer, per gli amici “frontendista“, è una figura fortemente richesta dal mercato del lavoro. Di conseguenza, anche l’offerta formativa da parte di istituti professionali o corsi di formazione privati è in progressivo aumento.

Per gli addetti ai lavori, il Frontend Developer ha competenze specifiche nei tre linguaggi di programmazione che stanno alla base di qualsiasi pagina web, ossia la celeberrima triade HTML, CSS e Javascript. Purtroppo, l’argomento frontend developing a volte non è preso seriamente in considerazione da chi ha una formazione prettamente informatica o ha una notevole confidenza con altri linguaggi di programmazione più complessi. In alcuni casi, il tutto si riduce erroneamente alla sola conoscenza del linguaggio HTML e a un po’ di CSS e Javascript, giusto per aggiungere qualche animazione più elaborata, magari con l’ausilio di un framework come jQuery.

Vediamo quindi dove si colloca la figura professionale del Frontend Developer e quali competenze deve avere.

Panoramica e competenze di un Frontend Developer

Un frontendista di tutto rispetto deve conoscere i linguaggi di programmazione HTML, CSS e Javascript a menadito. E nel caso in cui qualcosa gli sfugga, deve assolutamente sapere come ricavare le informazioni di cui ha bisogno.

Se per i linguaggi HTML e CSS è piuttosto semplice imparare i termini chiave quali Tag, Attributi, Classi, Id, Eventi e il loro significato, per quanto riguarda invece Javascript il discorso è un po’ più complesso. Infatti, in questo caso il bagaglio di conoscenze si espande su più livelli di competenze. Dalle quelle banali, come l’utilizzo delle funzioni connesse a specifici eventi lanciati dal corpo HTML della pagina, fino all’utilizzo di Javascript come vero e proprio linguaggio Object Oriented ( e non come semplice linguaggio di script). Infine, si può arrivare a padroneggiare strumenti più evoluti e ormai consolidati nel mondo del web come i reactive framework. Essi offrono funzionalità già pronte all’uso, come il two-way-data-binding in grado di ridurre enormemente i tempi di sviluppo di applicazioni web anche complesse.

Saper ricercare informazioni online in modo efficiente è una caratteristica importante per qualsiasi lavoro, ma è determinante per il Frontend Developer e dovrebbe rientrare nella lista delle sue soft skills.

Andando oltre le competenze basilari, cerchiamo di introdurre alcuni termini ormai noti, ma da non sottovalutare, come i reactive frameworks.

Oltre la triade HTML, CSS, JS

Reactive Frameworks

Per i neo frontendisti, la vita può sembrare una pacchia. Un pò di codice quà e là e già l’applicazione prende vita da sè. Funzionalità come il two-way-data-binding da sola riduce drasticamente sia la quantità di codice, che il tempo di sviluppo di qualsiasi web app più o meno complessa.

I framework più utilizzati in questo momento sono Angular, React e Vue. Tuttavia, prima di loro aveva cercato la strada del successo anche Backbone.

Nonostante la vita del Frontend Developer sia stata molto facilitata da questi strumenti, la conoscenza e l’approfondimento di tutto ciò che vi gravita intorno non può essere assolutamente trascurata. Per applicazioni banali o semplici pagine web possiamo anche chiudere un occhio, ma se le applicazioni si fanno via via più complesse, la parola d’ordine è “approfondire”. Approfondire per capire limiti e pregi di ciò che stiamo utilizzando ed imparare dagli errori per realizzare web app sempre più ottimizzate e performanti.

Module Bundler

Sicuramente, in molti utilizzano degli strumenti senza conoscere nemmeno il termine module bundler. Anzi, se sviluppate web app con Angular, React e Vue quasi sicuramente state utilizzando un module bundler.

I module bundler più famosi e utilizzati sono Webpack, Browserify e Parcel. In merito a duttilità e risparmio di risorse, vale la pena citare anche Gulp.

Per un Frontend Developer saper utilizzare questi strumenti per sviluppare applicazioni complesse è fondamentale. Allo stesso modo, è necessario conoscere la differenza tra il codice che scriviamo e “diamo in pasto” al nostro module bundler e quello che succede nella nostra finestra di sviluppo nel browser.

Se i termini render process, entry point e Ecmascript 6 non vi dicono nulla, correte subito ai ripari!

Preprocessori CSS

Per i Frontend Developer che si vogliono far valere come sviluppatori duri e puri, fate un profondo respiro, rallentate e ammorbiditevi.

Avere un minimo di competenze sullo stile di una pagina, condire con qualche animazione e saper disporre i contenuti in modo pulito riconoscendo almeno che cosa significhi il termine F-pattern, non solo rientra tra le competenze di un vero frontendista, ma ci aiuta ad avvicinarci a coloro che utilizzeranno e giudicheranno davvero il risultato finale del nostro lavoro: gli utenti.

I preprocessori sono strumenti comodi ed efficaci quando lo stile della nostra web app, o di un sito, richiede qualcosa di più strutturato rispetto a degli interventi una tantum. Questo significa dover definire dei set di colori per il testo, per la header ed il footer della pagina e così via.

Alcuni esempi di preprocessori sono SASS, LESS e Stylus. Questi permettono di risparmiare enormi quantità di codice dando la possibilità di utilizzare tecniche di programmazione ordinaria quali: creazione di funzioni, cicli e stati condizionali.

Per il professionista scrupoloso, l’ulilizzo dei preprocessori per definire lo stile di una web app può risultare addirittura rilassante. Ne è fortemente consigliato l’utilizzo nelle ultime ore di una settimana lavorativa intensa ed estenuante.

I rischi del mestiere

Come anticipato, ad una crescita della domanda aumenta anche l’offerta, in questo caso quella formativa.

Se vi sentite attratti da questo lavoro, ma avete avuto un percorso formativo completamente differente, prima di fare qualsiasi scelta cercate di iniziare a formarvi da solo. Meglio ancora se conoscete qualcuno che lavora come Fronted Developer e vi può dare qualche consiglio. Informatevi, leggete, provate i linguaggi necessari e quelli che vorreste imparare. Datevi un obiettivo.

Quando si intende intraprendere un nuovo percorso, giustificate questa volontà andando oltre il vostro istinto. Date una prospettiva a ciò che vi piacerebbe fare e cercate di immaginare dove potreste essere a distanza di anni.

I corsi di formazione che trovate online e presso gli enti di formazione insegnano l’utilizzo di alcuni strumenti, compresi quelli già citati nel corso di questo articolo, ma il loro utilizzo viene applicato in modo del tutto superficiale. Sta all’individuo dare un senso a tutto ciò, aggiungendo alle ore in classe o in webinar molte ore personali di studio, programmazione e ricerca.

Non basate tutta la vostra professione su ciò che vi viene insegnato.

Continuate ad imparare. Questa professione è una di quelle dove lo studio extralavorativo è d’obbligo.

Di fondamentale importanza è anche capire che il ruolo del Frontend Developer non è lo stesso del web designer. Anche se può sembrare banale, è bene non confondere le due figure, anche se in alcuni casi hanno dei tratti in comune.

Senza entrare nel dettaglio di chi fa di mestiere il web designer, sappiate che è una mansione nella quale è richiesta grande creatività. Una caratteristica che molto il più delle volte non va a braccetto con chi scrive righe di codice.

Se siete stati così in gamba da essere diventati dei frontendisti (senza una formazione informatica s’intende) e siete stato altrettanto bravi da aver trovato un posto di lavoro all’altezza delle vostre abilità, non adagiatevi sugli allori. Se non sviluppate le vostre conoscenze con costanza e rigore, rischierete col tempo di essere confusi con dei designer del web. A meno che non siate delle persone con una spiccata creatività, rischierete di deludere le aspettative del team con cui collaborate, dei vostri superiori o, nella peggiore delle ipotesi, dei vostri clienti.

Frontend Developer: tuttofare o specializzazione estrema?

Ormai ho capito che per essere un buon frontendista mi devo fare il mazzo. Ma una volta imparato ad usare i linguaggi di programmazione e gli strumenti minimi, come posso migliorare?“.

Il pregio e il difetto dell’informatica è che per ogni cosa imparata se ne scoprono decine di cui si ignorava l’esistenza.

Per prima cosa cerchiamo sempre di conoscere noi stessi. Se sono una persona introversa e taciturna, probabilmente sarò più portato ad imparare concetti specifici o ad utilizzare in modo eccelso pochi strumenti. D’altro canto, se sono spigliato, gioviale e magari intrattengo anche rapporti con alcuni clienti, probabilmente mi conviene di più ampliare le mie competenze, in modo da tenermi sempre aggiornato e capire che direzione prendere laddove vi si presenti l’occasione.

Se siete a corto di idee, potete sempre spulciare online cosa si insegna nei corsi di scienze informatiche direttamente dai siti delle università. Meglio ancora se avete un collega o amico che questi studi li ha intrapresi e vi può dare qualche suggerimento.

Alcuni argomenti di spunto sono:

  • architettura di un software
  • programmazione ad oggetti
  • strutture dati
  • design patterns

In genere questi argomenti vengono trattati approfonditamente nei corsi universitari e non sono affatto banali per chi si cimenta nello studio da autodidatta. Tuttavia, questo non significa che studiarne i concetti fondamentali sia un’impresa titanica.

Mantenetevi curiosi, siate propensi al cambiamento e vedrete che questo lavoro vi regalerà grandi soddisfazioni. Dopotutto, siete voi gli architetti delle web applications!