{"id":1944,"date":"2019-06-03T16:51:48","date_gmt":"2019-06-03T14:51:48","guid":{"rendered":"https:\/\/reteinformaticalavoro.it\/blog\/blog\/2019\/06\/03\/differenze-tra-front-end-e-back-end-developer\/"},"modified":"2022-12-15T16:20:47","modified_gmt":"2022-12-15T15:20:47","slug":"differenze-tra-front-end-e-back-end-developer","status":"publish","type":"post","link":"https:\/\/reteinformaticalavoro.it\/blog\/differenze-tra-front-end-e-back-end-developer\/","title":{"rendered":"Le due facce dello sviluppatore web: le differenze tra front end e back end"},"content":{"rendered":"<p>Che cosa fa uno sviluppatore web? Lo ha spiegato un <a href=\"https:\/\/reteinformaticalavoro.it\/blog\/blog\/professione-sviluppatore-web\/\">professionista<\/a> del settore in una delle nostre precedenti interviste, affermando che questa figura si occupa del <em>front end<\/em> o del <em>back end<\/em> di un sito (o anche di tutti e due).<\/p>\n<p>Ma che cosa significa, nel dettaglio, essere uno <strong>sviluppatore front-end o back-end<\/strong>? La domanda \u00e8 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.<\/p>\n<h2><strong>La definizione dei ruoli del front end e back end developer<\/strong><\/h2>\n<p>Un sito &#8211; ma anche un\u2019applicazione web &#8211; &nbsp;\u00e8 composto essenzialmente da due parti:<\/p>\n<ul>\n<li>una visibile, quella con cui interagisce l\u2019utente,<\/li>\n<li>una \u201cinvisibile\u201d all\u2019esterno, \u201cmotore\u201d di tutto il resto, senza la quale il sito non funzionerebbe.<\/li>\n<\/ul>\n<p>Ecco dunque le definizioni:<\/p>\n<ul>\n<li><strong>lo sviluppatore front-end \u00e8 colui che realizza la parte visibile del sito<\/strong>, l\u2019interfaccia attraverso la quale navighiamo, vediamo foto e video, leggiamo testi o svolgiamo altre attivit\u00e0;<\/li>\n<li><strong>lo sviluppatore back- end si occupa del \u201cdietro le quinte\u201d del sito<\/strong> e crea quindi tutto quello che fa funzionare l\u2019interfaccia, ma che l\u2019utente non vede.<\/li>\n<\/ul>\n<p>C\u2019\u00e8 poi un terzo ruolo: lo <strong>sviluppatore full stack, che sa realizzare sia il front-end, sia il back-end<\/strong>.<\/p>\n<p>Spesso lavora con altre figure specializzate, ma \u00e8 comunque in grado di intervenire nello sviluppo di entrambe le parti di un sito o di un\u2019app.<\/p>\n<p>Sulla base delle differenze tra <strong>front-end e back-end<\/strong>, diverse sono anche le competenze richieste alle tre categorie di sviluppatori. Vediamo dunque le <strong>conoscenze specifiche che devono avere i programmatori front-end, back-end e full stack. <\/strong><\/p>\n<h2><strong>I linguaggi per lo sviluppatore front- end: HTML, CSS, Javascript<\/strong><\/h2>\n<p>Il programmatore front end sviluppa l\u2019interfaccia del sito, ma \u00e8 importante sottolineare che non si tratta solo di grafica (che \u00e8 di competenza del web designer), ma di <em>user experience<\/em>, cio\u00e8 di <strong>rendere piacevole e funzionale l\u2019esperienza di chi deve navigare sul sito<\/strong> (o utilizzare l\u2019applicazione).<\/p>\n<p>Questo significa che l\u2019utente deve poter usare il sito o l\u2019app nel modo pi\u00f9 semplice e veloce possibile, su ogni piattaforma e con ogni dispositivo: pc, tablet, smartphone.<strong>&nbsp;<\/strong><\/p>\n<p>Sono 3 i <strong>linguaggi <\/strong>che uno sviluppatore front end deve padroneggiare:<\/p>\n<ol>\n<li><strong>HTML<\/strong> (<em>HyperText Markup Language<\/em>, in italiano \u201clinguaggio a marcatori per ipertesti\u201d): \u00e8 il linguaggio che definisce e organizza la struttura del contenuto del sito, il <em>che cosa<\/em> si vede, in modo che i browser possano \u201cleggerla\u201d. Tutti i siti sono costruiti con l\u2019HTML.<\/li>\n<li><strong>CSS <\/strong>(<em>Cascading Style Sheets<\/em>, in italiano \u2018fogli di stile a cascata\u2019) definisce invece <em>come<\/em> si vede il sito, cio\u00e8 l\u2019aspetto che hanno le pagine web: colori, font, sfondi.<\/li>\n<li><strong>JavaScript: <\/strong>\u00e8 il linguaggio che ha segnato la svolta nella costruzione dei siti web, perch\u00e9 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 \u201cattrezzi del mestiere\u201d di chi si occupa di back end.<\/li>\n<\/ol>\n<p>JavaScript dispone di una serie di strumenti che facilitano il lavoro del programmatore:<\/p>\n<ul>\n<li>le <strong>librerie<\/strong>, insiemi di funzioni precompilate e specializzate che velocizzano l\u2019attivit\u00e0 di sviluppo: sono affidabili, perch\u00e9 testate continuamente dai programmatori JavaScript, e molte sono anche gratuite;<\/li>\n<li>i <a href=\"https:\/\/reteinformaticalavoro.it\/blog\/blog\/framework-cosa-sono-e-quali-dominano-le-classifiche\/\"><strong>framework<\/strong><\/a>, infrastrutture logiche gi\u00e0 predisposte per sviluppare un\u2019applicazione: anche in questo caso il vantaggio \u00e8 il risparmio di tempo, unito alla sicurezza di queste architetture. I framework JavaScript pi\u00f9 usati sono Angular2, AngularJS, Backbone, Ember e Meteor.<\/li>\n<\/ul>\n<h2><strong>Le competenze del programmatore back-end: PHP, Java, Python e database <\/strong><\/h2>\n<p>Lo sviluppatore back end opera \u201cdietro le quinte\u201d: il suo lavoro, dunque, deve essere funzionale a ci\u00f2 che dovr\u00e0 fare il suo collega che si occupa del front end. I due ruoli sono complementari e lavorano a stretto contatto per far s\u00ec che il sito sia efficiente, affidabile e anche gradevole.<\/p>\n<p>Lo sviluppatore back end deve avere due competenze principali: i linguaggi di programmazione e la conoscenza dei database.<\/p>\n<p>Tra i <strong>linguaggi di programmazione pi\u00f9 richiesti per il back end<\/strong> ci sono:<\/p>\n<ul>\n<li><a href=\"https:\/\/reteinformaticalavoro.it\/blog\/blog\/java-developer-di-cosa-si-occupa-e-5-buoni-motivi-per-diventarlo\/\"><strong>Java<\/strong><\/a>, il linguaggio <em>must have<\/em>, perch\u00e9, essendo indipendente dai sistemi operativi, \u00e8 quello pi\u00f9 usato per sviluppare le applicazioni web ed \u00e8 quindi indispensabile per un programmatore;<\/li>\n<li><strong>PHP<\/strong>, nato per creare pagine web dinamiche (originariamente l\u2019acronimo derivava da <em>Personal Home Page<\/em>) e utilizzato per sviluppare applicazioni web lato server, cio\u00e8 di back end;<\/li>\n<li><strong>C#, <\/strong>il linguaggio derivato da C e C++ per la piattaforma .NET, usato per sviluppare le applicazioni Microsoft, ma anche per smartphone e videogames;<\/li>\n<li><strong>Python<\/strong>, considerato il \u201crivale\u201d di Java, usato non solo per le applicazioni, ma anche per l\u2019analisi dei dati;<\/li>\n<li><strong>Ruby, <\/strong>anch\u2019esso per applicazioni, che dispone di diversi framework, il pi\u00f9 noto dei quali \u00e8 Ruby on Rails.<\/li>\n<\/ul>\n<p>La conoscenza dei <strong>database<\/strong> \u00e8 importante per uno sviluppatore back end, perch\u00e9 spesso i siti devono gestire dei dati (come per esempio nell\u2019e-commerce).<\/p>\n<p>Tra le competenze per creare e far funzionare un database citiamo <strong>SQL, Oracle MySQL, Microsoft SQL Server, MongoDB.<\/strong><\/p>\n<h2><strong>Il fullstack developer: la somma di front end e back end <\/strong><\/h2>\n<p>Infine, lo sviluppatore full stack \u00e8 la figura \u201ccompleta\u201d, che sa creare entrambe le parti di un sito e unisce quindi le competenze dei due colleghi che abbiamo appena esaminato.<\/p>\n<p>Di conseguenza, il full stack developer dovr\u00e0 conoscere:<\/p>\n<ul>\n<li><strong>HTML, CSS e JavaScript <\/strong>(con librerie e framework) per lo sviluppo del front end<\/li>\n<li><strong>Java <\/strong>(ma possibilmente anche un altro linguaggio) per lo sviluppo delle applicazioni di back end<\/li>\n<li>almeno un linguaggio per la creazione e la gestione dei <strong>database <\/strong><\/li>\n<\/ul>\n<h2><strong>Diventare sviluppatore back- end\/front-end: le risorse online per cominciare<\/strong><\/h2>\n<p>Capire le differenze tra front end e back end aiuta anche a scegliere che cosa studiare per diventare uno <strong>sviluppatore web<\/strong>. Non esistono scuole specifiche: la laurea in informatica \u00e8 sicuramente una base utile per imparare a programmare, ma bisogna poi studiare i linguaggi richiesti, a seconda che si scelga l\u2019uno o l\u2019altro \u201clato\u201d del web.<\/p>\n<p>Molti sviluppatori imparano sul campo, ma anche per gli autodidatti (sempre pi\u00f9 numerosi in questo ambito) il web offre molte risorse utili, dai corsi strutturati ai tutorial online: sono un ottimo punto di partenza per acquisire le conoscenze di base della programmazione web.<\/p>\n<p>Abbiamo selezionato tre siti autorevoli e affidabili dove trovare <strong>corsi online per sviluppatori back end e front end<\/strong>:<\/p>\n<p><a href=\"https:\/\/www.codecademy.com\/\"><strong>Codecademy<\/strong><\/a><\/p>\n<p>45 milioni di persone hanno imparato a programmare con i corsi gratuiti di Codecademy: <strong>si scelgono per argomento (per esempio Web Development) o per linguaggio.<\/strong> Le proposte \u201cpro\u201d sono a pagamento e vanno dai singoli software a interi percorsi per esperti. In inglese.<\/p>\n<p><a href=\"http:\/\/www.quickcode.co\/free-courses-learn\/Web-Development\/2\"><strong>Quick&nbsp;Code<\/strong><\/a><\/p>\n<p>Decine di corsi gratis, aggiornati quotidianamente. La maggior parte sono in inglese, ma ce ne sono <strong>anche<\/strong> <strong>in italiano<\/strong>, per esempio i corsi base di JavaScript, HMTL e CSS: basta selezionare \u201cItalian\u201d nel filtro di ricerca \u201cLanguage Selection\u201d.<\/p>\n<p><a href=\"https:\/\/www.quickstart.com\/hot-deals\/free-courses.html?ranMID=42440&amp;ranEAID=BuGceriufQM&amp;ranSiteID=BuGceriufQM-xeM38.jNqjkL2WcTCG8mZw&amp;LSNSUBSITE=LSNSUBSITE#q=&amp;idx=QSProduction_quickster_en_products&amp;hFR%5Bcategories.level0%5D%5B0%5D=Hot%20Deals%20%2F%2F%2F%20Free%20Courses%20%2F%2F%2F%20App%20Development%20%2F%2F%2F%20Web%20Development&amp;nR%5Bvisibility_catalog%5D%5B%3D%5D%5B0%5D=1\"><strong>Quickstart<\/strong><\/a><\/p>\n<p>Solo per sviluppatori web e app ci sono pi\u00f9 di 80 corsi gratuiti. Quickstart \u00e8 partner Microsoft e Cisco e in molti casi si ottiene una certificazione a fine corso. Anche in questo caso le lezioni sono tutte in inglese.<\/p>\n<p>Le proposte che abbiamo elencato sono ovviamente per aspiranti sviluppatori front end e back end: chi invece volesse diventare un <strong>full stack developer<\/strong>&nbsp;dovr\u00e0 costruirsi un percorso pi\u00f9 articolato, con un numero maggiore di conoscenze e competenze relative a entrambe le figure.<\/p>\n<p><strong>Se sei alla ricerca di un impiego in questi ambiti, puoi consultare i nostri annunci per le <a href=\"https:\/\/reteinformaticalavoro.it\/blog\/offerte-di-lavoro?regione3=&amp;regione=&amp;province=&amp;city=&amp;list_count=0&amp;count_evidenza=0&amp;cerca=front+end&amp;km=\">posizioni di front-end<\/a> e le offerte di lavoro per sviluppatori <a href=\"https:\/\/reteinformaticalavoro.it\/blog\/offerte-di-lavoro?regione3=&amp;regione=&amp;province=&amp;city=&amp;list_count=0&amp;count_evidenza=0&amp;cerca=back+end&amp;km=\">back-end<\/a>&nbsp;oppure gli <a href=\"https:\/\/reteinformaticalavoro.it\/blog\/offerte-di-lavoro?regione3=&amp;regione=&amp;province=&amp;city=&amp;list_count=0&amp;count_evidenza=0&amp;cerca=fullstack&amp;km=\">annunci di lavoro per i fullstack developer<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Che cosa fa uno sviluppatore web? Lo ha spiegato un professionista del settore in&hellip;<\/p>\n","protected":false},"author":1,"featured_media":1523,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[207],"tags":[370,273,285,286,209,220,211,222,235,287],"_links":{"self":[{"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/posts\/1944"}],"collection":[{"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/comments?post=1944"}],"version-history":[{"count":3,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/posts\/1944\/revisions"}],"predecessor-version":[{"id":3083,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/posts\/1944\/revisions\/3083"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/media\/1523"}],"wp:attachment":[{"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/media?parent=1944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/categories?post=1944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reteinformaticalavoro.it\/blog\/wp-json\/wp\/v2\/tags?post=1944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}