Il web developer può ricoprire due ruoli:
front-end developer e
back-end developer. Il primo si occupa della tecnologia cosiddetta lato-client (linguaggi come HTML, JavaScript e CSS) e il prodotto del suo lavoro viene interpretato dai browser web. Il secondo, invece, utilizza linguaggi lato-server (come Pyhton, Ruby, PHP, Java; ASP, .NET, Node.js) e il risultato del suo lavoro risiede su dei webserver ed è utilizzato principalmente da siti ed applicazioni web. Un Web developer che ha competenze ed esperienza trasversale tra i due ambiti si chiama “
Full Stack developer”. Il developer che si occupa di tecnologie mobile viene chiamato invece
mobile developer o app developer.
Un developer con un certo bagaglio di esperienza può diventare un team leader, con capacità e compito di coordinare un gruppo di developer; un technical architect, che dovrebbe scrivere meno codice, decide le tecnologie da utilizzare, definisce l’architettura a supporto dei progetti di cui è responsabile, prevede eventuali problemi ed ostacoli a cui il progetto potrebbe andare incontro; l’IT manager o Technical Project manager; il CTO di un’azienda.
ATTIVITÀ SVOLTE
Le attività svolte da un developer variano, e non poco, a seconda dell’azienda in cui opera e dalle capacità e specializzazioni del developer.
In generale, possiamo dire che il developer dovrà:
- fornire stime delle tempistiche di lavoro per le parti di cui è responsabile di un progetto;
- contribuire alla scrittura di documenti (specifiche tecniche, istruzioni, presentazioni, etc.);
- offrire un supporto al team “non tecnico” come, per esempio, ai designer;
- discutere soluzioni tecniche con i clienti per offrire nuove idee possibilmente innovative;
- essere costantemente aggiornato su novità, trend e tecnologie emergenti;
Nello specifico, il
front-end developer deve:
- conoscere linguaggi come HTML5, XHTML, CSS, LESS o SASS, ecc.;
- avere familiarità ed esperienza con javascript (conoscere, per esempio, librerie e framework come jQuery, AngularJS, React e simili);
- essere in grado di utilizzare webservices per aggiungere contenuti dinamici alle proprie pagine;
- avere una buona competenza riguardo alla web accessibility;
- avere esperienza di lavoro con sistemi di controllo versione come SVN, Git, ecc.;
- avere buona conoscenza dei principi SEO;
- avere buona conoscenza nell’implementazione di servizi utili per l’analytics come Google Analytics e simili;
- costruire siti web con compatibilità cross-browser e cross-platform;
- avere esperienza e familiarità con programmi come Photoshop, utili per ritagliare gli assets e realizzare il progetto;
- interfacciarsi costantemente con il team creativo per capire e realizzare animazioni o effetti all’interno del sito o della web app;
- infine, può essere considerata extra l’esperienza nella costruzione di email HTML e tecnologie come AJAX;
Il
back-end developer deve:
- costruire web app custom (nell'accezione più comune ci si riferisce alla parte client o all'intero stack e non alla parte server);
- conoscere almeno un framework CMS (come, ad esempio, Wordpress o Drupal);
- conoscere standard e metodologie per mettere in sicurezza la propria applicazione;
- avere una conoscenza anche minima di front-end e linguaggi come HTML, CSS e Javascript;
- conoscere tutti i concetti chiave del server-side web development (integrazione dati; integrazione di database in un unico sistema; amministrare i DB; migrare dati; implementare e gestire backup system e disaster recovery; mettere in sicurezza dati degli utenti; ecc.);
- deve avere conoscenze specifiche di linguaggi server-side come PHP, Ruby, Python, Java o .Net;
- Conoscere SQL e almeno uno dei principali database (MySQL,Oracle,Postgres,etc..);
- conoscere almeno la teoria dei database NOSQL;
- avere esperienza nell’utilizzo di framework applicativi. Se si sviluppa con PHP, per esempio: Zend, Symfony o CakePHP;
- avere esperienza di lavoro con sistemi di controllo versione come SVN, Git, ecc.;
- avere buona conoscenza dei principi SEO;
Il
mobile developer deve:
- costruire applicazioni per sistemi mobile, come, ad esempio, iOS o Android;
- avere esperienza nel software development;
- avere una conoscenza approfondita di linguaggi come Objective-C o Java;
- condurre test per validare la facilità d’uso, la velocità e l’accuratezza dell’app;
- risolvere problematiche e bug e migliorare l’efficienza dell’applicazione;
- lavorare con le API native offerte da iOS e Android;
- avere esperienza e familiarità con programmi come Photoshop o Sketch utili per ritagliare gli assets e realizzare il progetto;
NOTE
Spesso si fa confusione tra web developer e mobile developer. Il mobile developer ha competenze particolari, proprie e differenti, in quanto esistono molteplici device e sistemi operativi che utilizzano dei linguaggi diversi tra di loro. Tra l’altro, va sottolineato che il mobile developer è specializzato nello sviluppo di app per piattaforme specifiche come Android o iOS.
Riporta a: Technology director, CTO, IT manager, Lead developer