Imparare a Programmare Imparare a Programmare
  • Capitoli
    • 1. Reintroduzione al linguaggio Javascript
    • 2. Velocità di apprendimento: 10/10
    • 3. Applicazioni: 10/10
    • 4. Richiesto nel lavoro: 9/10
    • 5. Risorse: 8/10
    • 6. La mia modesta opinione
  • 1. Reintroduzione al linguaggio Javascript
  • 2. Velocità di apprendimento: 10/10
  • 3. Applicazioni: 10/10
  • 4. Richiesto nel lavoro: 9/10
  • 5. Risorse: 8/10
  • 6. La mia modesta opinione
  • 1. Reintroduzione al linguaggio Javascript
  • 2. Velocità di apprendimento: 10/10
  • 3. Applicazioni: 10/10
  • 4. Richiesto nel lavoro: 9/10
  • 5. Risorse: 8/10
  • 6. La mia modesta opinione
Programmare in Javascript

Programmare in Javascript

Tutto quello che il 99% dei programmatori italiani non sanno su Javascript
(e che devi sapere prima di iniziare a programmare)

Fermo qui! Prima di iniziare devo dirti una cosa importante:
il linguaggio Javascript moderno non è quello che pensi tu!

Probabilmente avrai già sentito nominare Javascript (o JS per gli amici), il più delle volte se ne parla “male”, non per cattiveria, ma per “ignoranza”. Fino a qualche anno fa non veniva considerato neanche come un vero linguaggio di programmazione. Questo è falso.

La verità è che tutte le più grandi aziende mondiali informatiche considerano Javascript come il nuovo messia della programmazione. È il linguaggio più richiesto tra le aziende innovative, le startup e le Fortune 500. Non sto esagerando, tra poco ti dimostrerò tutto.

L’obiettivo di questo articolo è quello di aiutarti nella scelta del miglior linguaggio per iniziare a programmare. Ma allo stesso tempo informarti su quelle che sono le reali possibilità lavorative di Javascript.
Parleremo di:

  • Velocità di apprendimento: è un linguaggio semplice da imparare?
  • Applicazioni: per cosa viene usato? (siti, app, software, videogames, IoT)
  • Richiesto nel lavoro: quanto viene richiesto e per quali mansioni?
    (il lato economico è importante)
  • Risorse: esistono libri e corsi per iniziare a studiarlo? (sia a pagamento che gratuiti)

Forse non si vede ma sono euforico ...

Cominciamo!

Alberto OllaAlberto Olla
Capitolo 1

Reintroduzione al linguaggio Javascript

Introduzione al linguaggio e novità su Javascript

Ti presento il Nuovo Javascript!

Sfortunatamente in Italia molti programmatori sono ancora fermi al 2006, data in cui la nazionale di calcio italiana vinceva il mondiale contro la Francia e nel mondo si difendeva l’utilizzo di jQuery (una delle tante “estensioni” di Javascript).

Niente di più lontano dall’attuale uso del linguaggio Javascript!

Molti programmatori non si sono resi conto che, negli ultimi dieci anni, Javascript è diventato, in molti casi, un linguaggio di punta.

In tanti ignorano completamente il fatto che:

  1. Facebook abbia scritto la sua applicazione per smartphone (Android e iOS) completamente in Javascript in maniera nativa (React Native). Esattamente la stessa app che anche tu hai installato nel tuo smartphone.
    Questa è una rivoluzione nello sviluppo mobile, avvenuta sostituendo linguaggi come Java (per Android) e Objective-C/Swift (per iOS).
    Per gli esperti: non è un’applicazione ibrida ma nativa a tutti gli effetti. Lo spiegherò successivamente.
  2. PayPal, LinkedIn e Groupon utilizzano nei loro web server tecnologie Javascript (Node.js) con ENORMI miglioramenti in velocità ed efficienza. E qui c’è moltissimo su cui parlare perché la rivoluzione ha toccato anche il mondo dello sviluppo web, sostituendo tecnologie lato server come PHP, Java o Ruby on Rails.
  3. Microsoft ha creato il suo nuovo editor di testo per programmatori chiamato Visual Studio Code. Un programma tradizionale, un software per computer, che può essere installato indifferentemente su Windows, Mac o Linux.
    Indovina con quale linguaggio è stato scritto?
    Utilizzando un solo codice Javascript (Electron) che poi viene confezionato per i vari sistemi operativi. Sostituendo linguaggi per la creazione di software come Java o C#.

La lista potrebbe continuare per tanti altri settori che approfondiremo nei prossimi capitoli.

Adesso però voglio fare un esperimento, ti va?

Visto che MOLTI programmatori italiani ignorano completamente l’uso che viene fatto di Javascript dai grandi nomi del settore informatico, voglio fare una prova con te, facciamola insieme.

Contatta un amico esperto di programmazione e fagli vedere questo articolo.

Sono sicuro al 99% che non immaginava minimamente che Javascript fosse utilizzato in questo modo! Mi raccomando, fammi sapere l’esito dell’esperimento, sono curioso. Faccia sorridente

... Torniamo a Javascript e partiamo dalle basi.

Una delle prime cose che viene detta è che:
"Non bisogna confondere il linguaggio Javascript con Java (il suo cugino snob che viene dalla città), sono due linguaggi diversi."

Ma allora cos’è Javascript?

Javascript è un linguaggio di programmazione nato con internet. Il suo scopo iniziale era semplice: rendere interattive le pagine web.

Mi spiego meglio:

Fai una ricerca su Google e scrivi “gattini”. Noterai che mentre digiti le lettere qualcosa cambia!

Il box di ricerca, che prima sembrava così “statico”, prende vita e appare una finestrella con dei suggerimenti come:
  - gattini dolcissimi
  - gattini appena nati
  - gattini in regalo


Questi testi non erano nascosti all’interno della pagina, prima che tu facessi la ricerca, non esistevano prima che tu digitassi le lettere.
Sono stati aggiunti dinamicamente grazie alla magia di Javascript. Faccia sorridente

Ecco cosa vuol dire rendere le pagine web più “interattive”.

Da allora ha fatto tanta strada e questo esempio è solo uno dei modi più semplici per utilizzare Javascript. Da qui è arrivato alla creazione di applicazioni per smartphone, creazione di software (programmi), gestione di server e a tante altre parti che tra poco approfondiremo.

Capitolo 2

Velocità di apprendimento: 10/10

Con Javascript è facile iniziare a programmare

Un linguaggio semplice, moderno e potente

Javascript è un moderno linguaggio di programmazione, definito di Alto Livello.

Lo so, questa parola ti avrà fatto tornare alla mente l’alta borghesia francese oppure i “livelli” di qualche cartone animato come Dragon Ball o Pokemon!

Non è riferito a quello, adesso capirai il perché. Faccia sorridente

I primi linguaggi di programmazione erano molto vicini al “modo di ragionare” del computer (il basso livello). Questo vuol dire che chi programmava in questi linguaggi doveva sforzarsi per “pensare” come un computer. Bisognava spendere ore ed ore di programmazione nel gestire complessi aspetti tecnici come, ad esempio: definire data segment, stack segment, allocare zone di memoria, variare il codice in base all’architettura hardware (CPU, processore) e simili.

Cose che oggi farebbero tremare la maggior parte dei programmatori (me compreso) al solo pensiero!

I linguaggi di alto livello invece cercano di allontanarsi dal modo di “ragionare” dei computer (il basso livello) per avvicinarsi al nostro.

Così facendo puoi immaginare un codice, o un programma, e tradurlo immediatamente in Javascript.
Senza doverti preoccupare dei dettagli più tecnici che stanno dietro il suo funzionamento.

Questo è un enorme vantaggio e rende la programmazione molto veloce!

Evitando i dettagli tecnici puoi concentrare tutti i tuoi sforzi e le tue aspirazioni nei due punti più importanti per un principiante autodidatta:

  1. Studiare la programmazione.
  2. Sviluppare il tuo codice nel minor tempo possibile.

Ma c’è di più: Javascript è anche immediato da usare.

Puoi iniziare subito a scrivere del codice Javascript senza dover installare nessun programmino strano nel computer, senza nessun ambiente di sviluppo particolare.

Ti basta aprire un programma per navigare su internet (browser) come: Firefox, Internet Explorer, Chrome, Safari, Opera, ecc.
Tutti i browser hanno, al loro interno, la possibilità di eseguire codice Javascript. Faccia sorridente

Aprine uno e cerca nei menù la voce “Console” o “Console web”, ed ecco che inizia la magia!

Potrai subito scrivere ed eseguire dei codici Javascript in modo semplicissimo, quasi disarmante. Appena scrivi un codice nella console e premi invio, questo viene subito eseguito e potrai vedere il risultato. Fantastico. Faccia felice

Il fatto che Javascript sia molto semplice da eseguire, lo rende uno dei migliori linguaggi per chi vuole studiare la programmazione.

Quando inizi a programmare vieni spinto principalmente dalla curiosità e da una fortissima voglia di imparare cose nuove. Un linguaggio dovrebbe cercare di assecondare il più possibile questa voglia, e Javascript lo fa alla grande.

Sappi che non è una cosa scontata, non tutti i linguaggi offrono questo vantaggio. Dai un’occhiata all’articolo su C o a quello su Java. Per poter eseguire anche solo una riga di codice con questi due linguaggi devi:

  1. Scaricare ed installare i programmi per l'ambiente di sviluppo.
  2. Scrivere il tuo codice (ovviamente).
  3. “Compilare” il codice e sperare non dia errori. La compilazione serve per convertire ciò che hai scritto in un programma che il computer possa eseguire, è proprio in questa fase che vengono segnalati gli errori.
  4. Dopo aver atteso la fine della compilazione devi eseguire il nuovo file compilato.
  5. Finalmente, solo a questo punto, puoi vedere il risultato finale.

Noti qualche differenza? Direi che è sicuramente meno immediato!

Il fatto che sia cosi semplice ed immediato potrebbe farti pensare che sia un programma adatto solo a principianti, ma non è cosi (scoprirai l'esatto opposto nel capitolo Applicazioni e Richiesto nel lavoro).

Devi sapere che nella programmazione esisono diversi "sitli" di programmazione (chiamati paradigmi) e che Javascript supporta tutti e tre i paradigmi di programmazione comunemente usati: la programmazione imperativa (adatta a principianti), la programmazione ad oggetti (adatta ai più esperti), ma anche la programmazione funzionale (adatta ai geni).

Riassumendo, Javascript è:

  • Facile da imparare e immediato.
  • Un linguaggio di alto livello.
  • Ottimo per principianti ed esperti.
Capitolo 3

Applicazioni: 10/10

A cosa serve Javascript e cosa programmare con questo linguaggio

Come avrai intuito la lista delle "cose" che permette di fare Javascript è veramente lunga!

Ormai si sta diffondendo rapidamente in quasi tutti i maggiori settori, ma cerchiamo di capire come mai.

In realtà Javascript come linguaggio “puro” viene utilizzato raramente. Di norma viene affiancato da altre tecnologie più “specializzate” (basate su Javascript) che possiamo considerare come delle “espansioni” del linguaggio principale.

Facciamo un esempio:

Immaginati il linguaggio Javascript “puro” come un videogioco online!

Tutti lo usano e tutti si divertono ma, tra tutti questi giocatori, ci sono dei gruppi con interessi comuni: chi ama l’ambientazione western, chi lo spazio, chi il medioevo e così via.

Questi gruppi si riuniscono e decidono di prendere il gioco originale e migliorarlo aggiungendo funzionalità specifiche del loro ambiente preferito! C’è chi aggiunge le spade laser, chi arco e frecce, chi le pistole a tamburo.

Ogni gruppo lavorerà attivamente e con passione per portare avanti la propria espansione del gioco. Faccia sorridente

Con Javascript è successa la stessa identica cosa!

Piuttosto che i giocatori, abbiamo le comunità mondiali di programmatori, oppure grandi aziende come Google e Facebook. Piuttosto che le diverse ambientazioni abbiamo i vari ambiti di sviluppo. E, per ogni singolo “ambito di sviluppo", sono stati creati tantissimi strumenti che si occupano di portare Javascript nello spazio, nell’old-west e anche nel medioevo.

Andiamo a scoprire tutte le “espansioni” di Javascript disponibili:

Sviluppo web tradizionale

Ah, qui andiamo sul classico.

Se Javascript è stato ideato per rendere dinamiche le pagine web, quale sarà mai il suo uso “tradizionale”?
La risposta è facile!

Viene usato all’interno delle pagine per modificare gli elementi e renderli più “vivi”, più dinamici.

Ogni pagina internet è formata da due elementi:

  1. L’HTML che definisce la struttura della pagina: il titolo, i vari riquadri e box, i testi e le immagini.
  2. Il CSS invece riguarda la grafica: colori, bordi, dimensioni. In poche parole gestisce l’aspetto estetico, tutto quello che vedi concretamente con i tuoi occhi.

Con l’HTML e il CSS possiamo creare i contenuti testuali e grafici ma questi contenuti sono “fissi”, fermi, immobili. Senza l’aiuto di Javascript, che ha il potere di farli muovere, sono quasi morti.

Ricordi l’esempio della ricerca dei gattini su Google?

Ecco, quella finestrella che ti appare è in realtà un codice HTML che viene generato dinamicamente da Javascript. Anche la lista dei suggerimenti, e la loro selezione, viene gestita sempre da Javascript, che attiva un evento per lanciare la ricerca. Faccia sorridente

Puoi trovarlo in qualsiasi azione “interattiva” fatta sul web, come cliccare “mi piace” su Youtube: l’icona si illumina. Un altro esempio sono le notifiche su Facebook.

Anche se Javascript è nato per manipolare gli elementi HTML, non viene quasi mai usato in maniera “pura”. Molto spesso si preferisce l’utilizzo di alcuni codici già pronti e confezionati in delle "librerie", che vanno semplicemente incluse ed utilizzate.

Il nome "libreria" potrebbe far pensare a qualcosa di strano; in realtà non sono altro che un insieme di codici Javascript scritti da altri sviluppatori, che servono a risolvere dei problemi comuni. Il vantaggio nell'usare delle librerie è che, il programmatore risparmia tempo e fatica dato che tutti i codici delle funzioni sono già state scritte da qualcun altro.

Facciamo un esempio pratico mostrando anche il codice, sia Javascript puro sia jQuery (una delle librerie Javascript più diffuse):

Supponiamo di voler aggiungere un controllo in Javascript nella registrazione del nostro nuovo Social Network.
Vogliamo avvisare l’utente nel caso il nickname che ha scelto sia già stato preso da un'altra persona.
Cosa possiamo fare?

Possiamo scriverlo in Javascript puro oppure possiamo farlo usando una libreria.

Codice in Javascript puro
var request = new XMLHttpRequest();
request.open('GET', '/registration/check/nickname', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
    var data = JSON.parse(request.responseText);
  } else {
    // We reached our target server, but it returned an error
  }
};

request.onerror = function() {
  // There was a connection error of some sort
};

request.send();

Codice in jQuery
$.getJSON('/registration/check/nickname', function(data) {

});
Non farti spaventare dal codice Javascript puro, in realtà quella che vedi è una tecnica di sviluppo web "avanzata", per questo sembra così "complessa".

Come puoi vedere c’è una notevole differenza nelle righe di codice e questo, per alcuni programmatori, è un ottimo motivo per preferire l’uso delle librerie a Javascript puro.

Per la cronaca: personalmente preferisco di gran lunga utilizzare Javascript puro, senza alcuna libreria (quando posso).

Sviluppo front-end

Qui si parte, finalmente, con le cose più toste! Ma so già cosa ti stai chiedendo:

Che diamine è un front-end? O un back-end?

Con calma capirai tutto. Faccia sorridente
Ormai dovresti sapere che il tuo amico Alberto ci tiene a te e ti spiega tutto.

Quando si sviluppa “qualcosa”, che sia un sito internet, un’applicazione per smartphone o un software, possiamo dividere lo sviluppo su due diversi livelli:

  • Il front-end: che in inglese sembra una parola complicata, ma in italiano significa la “parte frontale”.
  • E il back-end: i più svegli avranno già capito che vuol dire “parte di dietro”.

Come indicano i nomi, il front-end riguarda tutta la parte visiva, la finestra che l’utente vede quando usa il nostro sito/app/programma.

Facciamo l’esempio di un sito: per la parte front-end dobbiamo utilizzate tecnologie come HTML/CSS, per costruire la nostra pagina, e Javascript per renderla dinamica.

Il back-end lo approfondiremo tra poco, adesso soffermiamoci sul front-end perché c’è tanto di cui parlare.

Se proprio vogliamo essere pignoli, anche lo “sviluppo web tradizionale” (quello di poco fa) rientra nello “sviluppo front-end”, ma ho preferito separarli e ora ti spiego perché.

Immagina Javascript come un piccolo pulcino appena nato, a malapena riesce ad aprire i suoi enormi occhioni e ha difficoltà a reggersi in piedi con le sue fragili zampette.

Questo era Javascript nel 1995, quando veniva utilizzato nel cosiddetto “sviluppo web tradizionale”, per rendere dinamiche le pagine.

Oggi Javascript non è più un piccolo pulcino batuffoloso, ma è cresciuto diventando, un enorme drago sputafuoco con quattro teste!

Velocissimo esempio pratico: vai su Gmail, naviga nei vari menù, prova a scrivere un’email e salvala in bozze, poi vai in bozze a riaprila.

Noterai di aver fatto tutte le azioni senza che la pagina sia stata mai ricaricata!

Per lo sviluppo web tradizionale questo comportamento è straordinario: di norma ad ogni pagina internet viene associato un differente contenuto.
Su Gmail, invece, viene tutto gestito senza mai ricaricare la pagina, è la schermata utente che si modifica quasi fosse un’applicazione per smartphone e tablet.

Dopo tutti questi anni, Javascript è maturato, grazie al suo diffuso utilizzo, e ha portato ad un nuovo modo di creare le pagine web.

In breve: Javascript è diventato il perno di interi siti e non solo delle singole pagine. Parliamo quindi dei front-end frameworks!

Sappiamo cosa si intende per “front-end”, adesso dobbiamo capire cosa si intende con “frameworks”!

Possiamo immaginarlo come una sorta di libreria più evoluta, più potente, che non serve solo a raccogliere tante funzioni al suo interno ma ad offrire una vera e propria struttura generale, su cui possiamo basare lo sviluppo del nostro progetto.

Immagina il “framework” come una sorta di cassetta degli attrezzi: al suo interno contiene tanti attrezzi diversi ma servono tutti per lo stesso settore. Cos'è un front-end frameworks? Se vogliamo aggiustare dei tubi sceglieremo una cassetta degli attrezzi da idraulico e, di conseguenza, se vogliamo fare un'interfaccia dinamica come Gmail scegliamo un framework come Angular o React. Faccia sorridente

La potenza dei front-end framework è quella di creare delle schermate che si adattino all’utente. Una schermata che si modifica in base alle sue azioni, aumentando l’interattività di ogni singolo elemento.

È proprio questo il futuro dello sviluppo web e approfondiremo il discorso sia nello sviluppo mobile sia nell’ambito lavorativo.

Sviluppo back-end

Abbiamo parlato del front-end (front = frontale) adesso vediamo il back-end (back = dietro).

Il back-end, come suggerisce il nome, è tutto ciò che sta “dietro”, che non possiamo vedere ma esiste.

Immaginiamo di inserire un sistema di ricerca nel nostro sito: il codice che materialmente effettua la ricerca viene definito nel back-end.

L’utente comune che usa il sito vede solo un box in cui scrivere e un bottoncino per cercare, ma non può vedere la nostra funzione di ricerca, vedrà soltanto il risultato che la funzione restituisce.

Questo è un esempio molto semplificato, ma il discorso dello sviluppo back-end è un argomento da approfondire a lungo (se sei interessato ho spiegato meglio il suo funzionamento nella parte relativa ai web server, nell’articolo su C).

Per il momento ti basti sapere che lo sviluppo back-end è una delle aree più importanti nella programmazione moderna, e Javascript, negli ultimi anni si è guadagnato un ottimo posto nel podio (se non la medaglia d’oro!).
Grazie ad una tecnologia chiamata Node.js (Javascript lato server). Javascript lato server, back-end

Ma come mai solo negli ultimi anni?

Javascript è nato come linguaggio “lato client”: un linguaggio che viene eseguito nel browser (Firefox, Chrome, Safari) del visitatore che guarda la pagina, quindi fino a qualche anno fa non era possibile utilizzarlo “lato server”.

Poco fa ti ho fatto l’esempio del codice della ricerca, ricordi?
Ecco, fino a qualche anno fa per scrivere la funzione di ricerca avrei potuto utilizzare delle tecnologie lato server come PHP, Java o Ruby on Rails, ma nel 2009 la storia è cambiata.

Un ragazzo ha creato una nuova tecnologia, chiamata Node.js, che permette di eseguire codici Javascript lato server, e in pochi anni ha conquistato il settore dello sviluppo!

Node.js è rivoluzionario per vari aspetti. Le sue caratteristiche più importanti sono:

  • La straordinaria velocità di esecuzione del codice.
  • Il risparmio nell’utilizzo delle risorse, come CPU e memoria RAM.
  • La gestione di un enorme numero di “utenti” (richieste) al secondo.
  • La semplicità di utilizzo.
  • Le numerose librerie a disposizione.

Tutte queste sue peculiarità lo rendono molto apprezzato sia dagli sviluppatori esperti sia grandi aziende come PayPal, LinkedIn o Amazon, che lo usano nei loro servizi.

Node.js tuttavia, è solo la “base” dello sviluppo back-end. Ci permette semplicemente di utilizzare Javascript lato server, anche se, come sempre, possiamo utilizzarlo in combinazione con i framework, back-end frameworks.

I back-end frameworks ci aiutano con strumenti configurabili e pronti all’uso, nella creazione del nostro sito/servizio web.

Scopriremo i back-end frameworks più richiesti nel capitolo sul lavoro.

Sviluppo mobile

Si, hai capito bene! Come sviluppare applicazioni mobile ibride e native in Javascript Javascript viene utilizzato anche per creare applicazioni smartphone su qualsiasi sistema operativo (Android, iOS, Windows Phone, ecc).
Anche in questo settore sta facendo straordinari progressi per:

  • Applicazioni Ibride
  • Applicazioni Native, scritte sempre in Javascript (questa affermazione è rivoluzionaria, tra poco ti spiego il perché).

Probabilmente non sai cosa significhi applicazione ibrida o nativa, ma ora te lo spiego.

Cominciamo dalle applicazioni Native:

Ricordi gli indiani d’america? Chiamati anche “pellerossa”?
Proprio loro, il concetto è molto simile.

Ogni sistema operativo per smartphone (Android, iOS oppure Windows Phone) utilizza un diverso linguaggio “nativo” per la creazione delle proprie applicazioni.

Android usa Java, iOS usa l’Objective-C oppure Swift, mentre Windows Phone (tanto lo so che Windows Phone non interessa a nessuno) usa C#.

Questo vuol dire che per creare la stessa applicazione (tipo il nuovo Candy Crush) sia su Android che su iOS devi riscrivere il codice in 2 diversi linguaggi!
Ciò significa anche il doppio del tempo e sicuramente il doppio del prezzo, dato che a tutti gli effetti risultano due applicazioni diverse.

Ed è proprio qui che entra in gioco Javascript, in tutto il suo splendore!

Js offre due soluzioni, una più semplice (applicazioni ibride), e l’altra più rivoluzionaria (applicazioni Native scritte in Javascript).

Adesso dovresti aver capito qualcosa di più di queste due possibilità, ma vediamole più nel dettaglio.

Il settore dello sviluppo mobile ibrido esiste solo grazie a Javascript, c’è poco da dire, l’ha inventato lui.

Ti ricordi quando abbiamo detto che i front-end framework permettevano di creare dei siti web sempre più simili a delle applicazioni?
E che Javascript viene eseguito in qualsiasi browser (Firefox, Chrome, Safari) e, quindi, anche nei browser di uno smartphone?
Ecco!

Qualcuno ha pensato di fare 2+2 e di creare una sorta di mini-siti, graficamente simili a delle applicazioni (grazie ai front-end frameworks), da “confezionare” come vere app.

Quindi che possano essere installate, che possano interagire con fotocamera, internet, rubrica e quant’altro.

Dato che Javascript può essere eseguito in qualsiasi programma per navigare su internet, le applicazioni di questo tipo possono essere usate sia su Android, sia su iOS, sia su Windows Phone, scrivendo un solo ed unico codice.

Questo è il grande vantaggio delle applicazioni ibride. Faccia sorridente

Ovviamente scrivere app di questo tipo ha anche degli svantaggi, soprattutto in termini di velocità dell’applicazione.

Non essendo scritta con un linguaggio nativo, non riesce a sfruttare al meglio tutte le risorse del dispositivo (memoria, CPU) quindi, se l'applicazione è molto “pesante”, c’è la possibilità che vada a scatti.

Solo perché ho detto questo non pensate sia da buttare, anzi!

È molto usata anche da grandi nomi come Amazon Shopping, la 3 (il gestore telefonico) e da applicazioni per l’home banking.

È un’ottima soluzione, veloce ed economica, per creare applicazioni “comuni”.

... Adesso conosci il significato di applicazioni native e applicazioni ibride, quindi se dico:
Javascript permette di creare applicazioni native ...
Dovrebbe venirti un colpo al cuore!

Ti ho detto che si chiamano app native quando viene utilizzato il linguaggio nativo del sistema quindi Java, Objective-C/Swift o C#. Questo è vero MA! Esiste un gran bel MA con la faccia di Mark Zuckerberg. Faccia sorridente

React native, è un figlio di Facebook
Mark Zuckerberg, fondatore di Facebook, in copertina come personaggio dell'anno su Time.

Anche se non hai mai scritto un’applicazione puoi capire quanto possa essere dispendioso riscrivere la stessa app su due sistemi differenti, potresti dire:

Si, ma ci sono le app ibride!

È vero ma, come ti ho spiegato, non riescono ad utilizzare al massimo le risorse del dispositivo, quindi non sono adatte a tutti i tipi di applicazioni.

Ma allora come fare? Bisogna assumere esperti per entrambe le piattaforme per realizzare la stessa identica app?

Fino al 2013, effettivamente la situazione era questa, poi qualcosa è cambiato.

Appena 10 anni fa è nato il primo progetto che cercava di fare qualcosa di diverso: React Native (di Facebook).

Facebook ha aperto la strada ad un nuovo tipo di sviluppo mobile utilizzando sempre Javascript ma, in questo caso, il linguaggio interagisce in maniera nativa con il sistema operativo in uso.

Una rivoluzione straordinaria che molti neanche conoscono!

Adesso conosci qualcosa in più su Javascript e le applicazioni ibride e native. Nel capitolo sul lavoro andremo ad approfondire React Native e gli altri strumenti che vengono richiesti nel mercato.

Software (programmi)

Ebbene si!

Se abbiamo detto che le applicazioni ibride non sono altro che della pagine web, confezionate come applicazioni per smartphone. Ecco, per i software hanno pensato esattamente la stessa cosa!

Parliamo quindi di software framework che utilizzano Javascript, html e css per creare veri e propri programmi multipiattaforma (che possono essere installati su Windows, Mac o Linux), scrivendo un unico codice.

È un campo molto recente (2013) ma già grandi nomi hanno cominciato ad utilizzarlo, come Microsoft per Visual Studio Code oppure GitHub per il software Atom.

Microsoft usa javascript per creare Software
Programma Microsoft realizzato con Electron (tecnologia Javascript).

Videogiochi

Ti sei stupito di trovare questa categoria? Ricordati: Con Javascript tutto può succedere.

Parliamo di sviluppo di videogames, giochi mobile, per pc, online, offline, 2D, 3D, qualsiasi cosa diventa possibile e differenziamo lo sviluppo in due aree principali:

  • Game Framework (2D)
  • Game Engine (2D e 3D)
Arrivato a questo punto, la parola “Game Framework” non dovrebbe spaventarti, dovresti già intuire di cosa si tratta!

Se i front-end framework ci offrono tutti gli strumenti per creare un sito web fortemente dinamico, i game framework ci offrono strumenti analoghi per creare giochi. Una serie di strumenti che ci aiutano e ci guidano nella creazione di videogames scritti in Javascript/HTML/CSS.

Vantaggi? I soliti.

I giochi realizzati con questa tecnologia possono essere usati in qualsiasi dispositivo/piattaforma, che sia uno smartphone (convertendolo in un'app ibrida) o che sia in un normale browser navigando su internet, e volendo anche in un software "tradizionale".

Un unico codice per creare un gioco utilizzabile ovunque!
Magnifico. Faccia felice

Svantaggi?

Ovviamente ci sono, e sono analoghi al discorso delle applicazioni ibride.
Utilizzare una tecnologia del genere per creare giochi “fortemente grafici”, con molti elementi, animazioni o simili non è un’ottima idea. Questo perché non riesce a sfruttare al meglio le risorse del dispositivo in cui viene eseguito (che sia un pc, un tablet o uno smartphone).

Passiamo invece ai Game Engine! Boom! In italiano lo possiamo tradurre con il nome meno affascinante di “motore grafico”.

Programmare videogams con Javascript
La schermata di esempio di uno dei più famosi game engine: Unity3D.

In breve:

Sono programmi altamente specializzati per la creazione di videogames che, al suo interno, offrono tutte le tecnologie necessarie alla creazione di un gioco. Inoltre, ci semplificano lo sviluppo e l’esportazione del gioco stesso su diversi sistemi (console, pc mobile). Includono un motore di rendering dei modelli 2D e 3D, il motore fisico, gestione delle collisioni, del suono, delle animazioni, la possibilità di inserire script (e qui entra in gioco Javascript) e tante altre funzionalità divertenti.

I Game Engine non rientrano pienamente nella “programmazione”, ma mi sembrava importante farti sapere che Javascript può essere usato anche in questo campo. Tra poco, nel capitolo sul lavoro, vedremo in che modo.

Internet delle cose (IoT)

Chiamato anche “Internet degli oggetti” o in inglese “Internet of Things” (IoT).
Se sei confuso è tutto ok, ci siamo passati tutti.

Lo tradurrò in breve: oggetti che usano Internet!
Facile, no?

Parliamo di tutti quei prodotti tecnologici che iniziano con il nome “smart” (smart Tv, smart Home, smart Car, ecc), si collegano ad internet per inviare informazioni e dati e per questo vengono definiti “intelligenti”.

Può essere qualsiasi cosa: dalla caffettiera che esegue i tuoi comandi mentre stai a letto, al vaso intelligente che monitora l’umidità del terreno e ti segnala quando le piante hanno bisogno dell’acqua.

Tutti questi esempi rientrano nel cosiddetto Internet delle cose.

Ti faccio vedere qualcosina, cosi capisci meglio di cosa si tratta. Faccia sorridente
Questa è una macchinina telecomandata grazie ad Arduino e Node.js.


Ora che hai più chiara l'idea di IoT, dai uno sguardo ai siti di Cylon.js e Johnny-Five.
Questi strumenti prendono il nome di robotic frameworks.

Che nome possente! Solo a sentirlo viene voglia di usarli, ma cosa faranno mai?

Nella realtà vanno ad interagire con l’hardware. Hai presente quelle schede verdi con tanti chip attaccati? Ecco, un esempio è la scheda Arduino prodotta proprio in Italia.

Javascript per programmare su Arduino (Node.js)
Tutta potenza di una scheda Arduino nel palmo di una mano.

I robotic frameworks servono per interagire con queste schede elettroniche e circuiti integrati per poter lanciare dei comandi, che sia il semplice accendere una luce LED, o azionare il sensore per la temperatura, o inviare dati via wifi allo smartphone.

Javascript (strano ma vero) sta conquistando anche questo settore con una velocità disarmante, grazie a tecnologie come Node.js, che è perfetto per quest'ambito.

Sull'internet delle cose c’è veramente tanto da dire, ma prima di tutto devi scegliere un linguaggio di programmazione ed imparare a usarlo!

Database

Ne hai mai sentito parlare?

Probabilmente si, in italiano possiamo tradurlo in “base di dati” ma questo non aiuta molto a chiarire eventuali dubbi.

Innanzitutto chiariamo cosa si intende per “dato”.

Prova a pensare agli utenti registrati in un sito, i commenti ad un video o i prodotti di un e-commerce: questi sono dati.

I database sono strumenti che ci permettono di salvare al loro interno questi dati. Faccia sorridente

Facile!

Il vantaggio di usa un database per immagazzinare i nostri dati è che ci consente facilmente di: ricercare degli elementi, inserirne di nuovi, modificarli ed eliminarli.

Senza soffermarci troppo sul discorso dei database: ci basti sapere che Javascript offre il suo contributo anche in questo settore.

Infatti, MongoDB, che viene considerato il database di nuova generazione (NoSQL) più famoso al mondo, utilizza il formato JSON (Javascript Object Notation) per il salvataggio dei dati, e la sua console dei comandi non è altro che un interprete Javascript.

Mi sembrava importante citarlo perché, come vedremo tra poco nel capitolo sul lavoro, questa vicinanza tra Javascript e MongoDB si rivelerà molto utile.

Capitolo 4

Richiesto nel lavoro: 9/10

Figure professionali nel lavoro per Javascript

In quali settori lavorativi è richiesto Javascript? Ecco la lista completa!

Per iniziare voglio condividere con te qualche statistica. Diamo un’occhiata ai risultati delle indagini annuali condotte dalle due più grandi comunità mondiali di programmatori: StackOverflow e GitHub.

Questi dati servono per darti un’idea generale di come venga utilizzato Javascript, e come venga considerato. Non ti preoccupare se non capisci ogni singolo riferimento, ci sarà tempo per approfondire. Faccia sorridente

StackOverflow: Indagine 2016

Tecnologia più popolare per categoria
(Most Popular Technologies per Dev Type)

Full-Stack: Javascript (Primo)
Front-End: Javascript (Primo)
Back-End: Javascript (Primo)
Mobile: Javascript (Sesto)
Math & Data: Javascript (Quinto)
Students: Javascript (Secondo)

Tecnologia più popolare
(Most Popular Technologies)

2016: Javascript (Primo)
2015: Javascript (Primo)
2014: Javascript (Primo)
2013: Javascript (Primo)

GitHub: statistiche 2015

Classifica del linguaggio più utilizzato su GitHub
(Rank of top language (on GitHub) over time)

2015: Javascript (Primo)
2014: Javascript (Primo)
2013: Javascript (Primo)
2012: Javascript (Secondo)
2011: Javascript (Secondo)

Per la cronaca: lo sviluppatore full-stack è colui che è in grado di gestire ogni parte di un progetto in qualsiasi suo aspetto, sia front-end che back-end.

Javascript risulta al primo posto non solo nel suo settore d'appartenenza, ovvero lo sviloppo front-end, ma anche in settori "relativemente nuovi" per il linguaggio come lo sviluppo back-end e il full-stack. Inutile dire che i dati risultano molto incoraggianti in ambito lavorativo.

Ciò che ti ho mostrato forse va un po’ in contrasto con il mio voto che in effetti, lo ammetto, non è proprio “veritiero”. Il fatto è che esiste un grave problema di fondo:

Molte aziende ignorano l’esistenza di questi strumenti!

Questa è l’attuale situazione in cui si trovano aziende e professionisti:

  • Una parte conosce le nuove possibilità di Javascript, e lo richiede fortemente nel lavoro (se valesse solo questo, dovrebbe prendere 11/10!).
  • Un’altra parte (la maggioranza) ignora l’esistenza degli strumenti innovativi offerti da Javascript e di conseguenza non lo richiede.
  • Una minoranza è a conoscenza di questi strumenti ma, per vari motivi, preferisce non utilizzarli. Se vuoi, ho approfondito questo aspetto nell’articolo su Java, citando un caso reale accaduto in PayPal.
Tuttavia, il fatto che la maggioranza di aziende/professionisti non conosca questi strumenti, non presenta solo aspetti svantaggiosi.

Perchè porta ad uno stipendio molto più elevato della media per gli esperti in strumenti come Node.js, React Native, Meteor, Angular/React, ecc.

Inoltre, se Javascript ha raggiunto questi risultati rimanendo relativamente nell’ombra, cosa potrebbe accadere dopo una sua reale diffusione?

È un’ottima domanda! Ma mi chiamo Alberto e non Nostradamus, quindi non ho la risposta.

Guardando i dati, è chiaro che Javascript continuerà a crescere rapidamente, e diventerà sempre più rilevante. Ora trai tu le tue personali conclusioni.

... Adesso passiamo ai dettagli più tecnici!

Javascript viene utilizzato sul lavoro praticamente nell’80% dei settori che ti ho spiegato nel precedente capitolo. Quindi, se poco fa hai letto una specifica applicazione che ti interessa, probabilmente questa ti sarà richiesta in ambito lavorativo.

Ti andrò a citare gli strumenti (o “espansioni”) più utilizzati in ogni settore lavorativo.

Sviluppo web tradizionale

L’uso classico: rendere dinamiche le pagine web senza nessun front-end framework, ma con Javascript puro o librerie Javascript.

Questo è l’uso più diffuso che si possa fare di Javascript, perchè è nato proprio per questo scopo.

Per questo settore non esiste una figura professionale specifica. Di solito chi si occupa di questo è la stessa persona che crea la pagina in HTML/CSS, quindi potrebbe essere un Web Designer oppure un Programmatore Back-end.
Queste figure, di norma, non sono affatto preparate su Javascript (dato che non è il loro campo) quindi preferiscono di gran lunga facilitare il lavoro utilizzando le librerie.

Se vuoi approfondire l’argomento, le librerie più diffuse sono: jQuery, Zepto.js, Prototype.js e MooTools.

Parliamoci chiaro: Javascript viene utilizzato in qualsiasi sito con un minimo di interattività (bottoni, caselle di testo, messaggi, notifiche) e sarà sempre utilizzato per questo dato che è l’unico linguaggio che consente di farlo (è un linguaggio lato client). Però esiste un “MA” grande come una casa.

Qui stiamo parlando di soldi e lavoro quindi devo dirti che non esiste una figura professionale che si occupi solo di questo aspetto. Nella realtà dello sviluppo web abbiamo in primo piano il back-end (Node.js, PHP, Java) e il front-end con HTML/CSS, solo alla fine di tutto arriva Javascript come optional.

Riassumendo: Non esiste una figura professionale specifica che si occupa solo di Javascript, meglio scegliere qualcosa di più specifico.

Sviluppo front-end

Se nello sviluppo web tradizionale Javascript è considerato “marginale”, non lo è sicuramente con i front-end framework in cui è considerato il capo dei burattini, dei burattinai e di tutta la baracca!

Cominciamo subito con quelli che sono gli strumenti più diffusi: abbiamo Angular.js (creato da Google), React.js (creato da Facebook), Backbone.js e Knockout.js.

Tutti questi strumenti sono dei front-end frameworks, ognuno con le sue caratteristiche e i propri punti di forza, ma tutti utilizzano Javascript per dare una struttura che supporti la creazione di un’applicazione web.

Il più usato è indubbiamente Angular.js, di cui il primo promotore è Google, il suo creatore. Per farti un idea dei siti che lo usa dai un occhiata a MadeWithAngular.

Considera che questo tipo di sviluppo è più avanzato rispetto al classico “sviluppo web tradizionale”. Sono tecnologie fortemente innovative, più difficili da utilizzare rispetto a delle semplici librerie perché richiedono una competenza maggiore e quindi anche un'elevata professionalità.

Riassumendo: Viene considerata la “nuova frontiera” dello sviluppo front-end e viene richiesta nel mondo del lavoro.

Sviluppo back-end

Qui si passa ad argomenti molto più frizzanti: lo sviluppo back-end!

Javascript offre il suo meglio grazie a Node.js: la tecnologia che permette di eseguire codici javascript lato server.

Di Node.js abbiamo già parlato e sta alla base di tutti i framework back-end più diffusi come: Express.js, Hapi.js e Salis.js.
Bisogna citare anche Meteor, che unisce al suo interno vari strumenti: front-end, back-end, mobile e database, ed è giusto includerlo in questa categoria.

Tutti questi strumenti servono per creare siti e servizi web e, anche se ormai sembra quasi scontato, vengono considerati tecnologie importanti e innovative per il settore.

Pensi che stia esagerando?

Dai un'occhiata a questo articolo in cui spiegano come PayPal, Linkedin, Yahoo, Ebay, Groupon ma anche Netflix, Uber, Mozilla e GoDaddy, usano Node.js ottenendo enormi vantaggi in termini di velocità e costi (meno risorse si utilizzano, meno server bisogna acquistare).

Riassumendo: Node.js è un portento, e figure professionali esperte sui vari frameworks sono molto apprezzate e richieste, è un ottimo settore!

Se vuoi approfondire questo argomento potresti trovare interessante come Paypal abbia abbandonato Java a favore di Node.js, ne parlo nell'ultimo capitolo dell'articolo su Java.

Sviluppo mobile

Distinguiamo tra sviluppo ibrido e sviluppo nativo in Javascript, dato che ogni settore ha un mercato e usa strumenti diversi.

Applicazioni ibride
Questo è uno dei settori in cui Javascript è più affermato. Sappiamo già di cosa si tratta, quindi passiamo al lato tecnico.

Lo strumento principale usato è Cordova, chiamato anche PhoneGap: permette di “confezionare” le nostre pagine web in vere applicazioni mobile, e ci permette di interagire con sensori e risorse del dispositivo come wi-fi, videocamera, GPS, rubrica e così via.

Cordova/Phonegap confeziona le nostre pagine in app, ma non le rende più belle o più usabili, questo è un altro aspetto che deve gestire il programmatore.

Non tutte le applicazioni ibride sono uguali: avremo la più bella, la più veloce, quella più usabile, o addirittura la più brutta. Ci sono quindi vari “livelli” di sviluppo di un'app ibrida, provo a riassumerteli:

  • C’è chi preferisce costruirsi da solo i propri codici, e sceglie Javascript Puro.
  • Chi è poco esperto e non vuole perdere troppo tempo, quindi utilizzerà librerie pronte all’uso come jQuery Mobile (variante di jQuery).
  • I professionisti preferiranno utilizzare uno dei vari front-end framework che abbiamo visto nello sviluppo front-end.
  • Chi è specializzato in app ibride opterà per una soluzione più specifica, ovvero gli UI Framework.
Lo so, non te li ho ancora spiegati ma rimediamo subito!

UI Framework mobile: UI significa User Interface (interfaccia utente), ossia la schermata con cui l’utente interagisce a livello visivo. Ci permettono di utilizzare grafica e strutture della pagina simili a quelle delle app tradizionali.

Questo significa che la nostra app avrà una grafica impeccabile!

Inoltre, integrano front-end framework popolari come Angular o React, che sono la soluzione più professionale per le applicazioni ibride (i più famosi sono Ionic e Onsen). Se vuoi capire perché costituiscono la scelta migliore, puoi dare un’occhiata alle demo disponibili sul loro sito.

Le applicazioni realizzate con gli UI Frameworks vengono considerate di professionalità e qualità maggiore.

Applicazioni mobile ibride di Qualità
L'app del Giro d'Italia 2016 realizzata con Onsen.

Nonostante questo molti sviluppatori di app ibride preferiscono non utilizzare nessuno di questi strumenti, considerati “avanzati”, e preferiscono soluzioni più semplici e “grezze” come jQuery Mobile e simili.

Per quanto riguarda la richiesta sul lavoro, c’è da dire che lo sviluppo di applicazioni mobile ibride è molto richiesto ma ovviamente non per app di bassa qualità. Le competenze professionali più richieste sono proprio i vari front-end framework e gli UI Framework.

Riassumendo: ottimo settore e tanto lavoro per chi usa strumenti validi.

Applicazioni Native in Javascript

Le applicazioni Native scritte in Javascript sono cosi recenti che alcuni, ancora, non credono alla loro esistenza.

Prova a chiedere in un qualsiasi forum italiano di programmazione, il 98% degli utenti ti risponderà che stai facendo confusione con le applicazioni ibride!

Piaccia o meno sono migliaia le applicazioni che utilizzano tecnologie come React Native (creata da Facebook). Dalle grandi aziende presenti nella lista delle Fortune 500 (le più grandi imprese americane in base al fatturato) alle nuove startup del momento.

React Native è stato usato, oltre che in varie app di Facebook, anche per l’app di Instagram, Airbnb, Baidu (il concorrente asiatico di Google), Gyroscope e Discord.
Qui puoi trovare una lista più esaustiva delle applicazioni già realizzate e scaricabili che utilizzano questa tecnologia.

React Native è sicuramente uno degli strumenti di punta in questo ambito, ma esistono anche NativeScript o Tabris.js.

Applicazioni mobile native di Qualità
Un esempio della stessa applicaizone nativa scritta in Javascript su Android e iOS.

La bassa richiesta di professionisti in queste tecnologie, si spiega con un semplice motivo: quasi nessuno le conosce. Ma non potranno che crescere.

Riassumendo: ottimo settore, e probabilmente avrà una larga diffusione in futuro.

Software (programmi)

Se con le applicazioni mobile native scritte in Javascript abbiamo detto che si tratta di un settore nuovo che deve ancora diffondersi, con lo sviluppo di software multipiattaforma in Javascript possiamo dire, allora, che sia appena uscito dall'uovo.

Lo strumento principale di questo settore è Electron, una tecnologia creata dallo stesso team di GitHub.

Anche se appena nato, possiamo vedere che grandi brand hanno scelto di utilizzarlo nei loro software: GitHub, Microsoft, Facebook, Slack, Docker.

C'è da dire che per essere un neonato promette molto bene!

Essendo ancora così “nuovo” è difficilissimo capire quanto venga richiesto nel mondo del lavoro, soprattutto perché, come al solito, le aziende che producono software non sono a conoscenza di questo genere di strumenti.

Riassumendo: è in fase iniziale, ma molto promettente.

Videogiochi

Premetto che quello dei videogames è un settore molto particolare. Di norma i programmatori che scelgono questa strada fanno dei percorsi di studio particolari, molto diversi dal classico “studio dell’informatica” o di un linguaggio specifico. Bisogna interagire con modelli 3D, animazioni, particelle, movimenti di camera, insomma, è un mondo a sé.

Come game framework abbiamo Pahser e Pixi.js: entrambi servono per creare giochi 2D (anche mobile) con tecnologia HTML5 e WebGL.

Pixi.js, in particolare, ha clienti veramente importanti come Disney, Lego, Ubisoft, Cartoon Network, McDonald's, Marvel, Steam, Lucas Film e Google.

Sicuramente non è uno strumento da poco.

Tra gli strumenti, per la creazioni di giochi multipiattaforma, volevo citare anche Cocos2D (una suite di vari strumenti gratuiti) che supporta il linguaggio Javascript.

Passiamo ai game engine.
Javascript viene supportato anche dal game engine più diffuso al mondo, quello che domina l’attuale panorama di sviluppo di videogiochi: Unity 3D.

È lo stesso motore di gioco utilizzato per Assassin’s Creed Identity, Angry Birds Epic, Hitman Sniper e Tample Run Trilogy. Se vuoi sapere quali tra i tuoi giochi preferiti, sono stati sviluppati con questo game engine, puoi visitare questa sito MadeWithUnity.

Unity permette di creare giochi per ogni piattaforma e non parliamo solo di mobile (Android, iOS, Windows Phone e altri) e computer (Windows, Mac e Linux), parliamo di “piattaforme” in senso più ampio.

Si possono sviluppare anche giochi per Console come PS4, PS Vita, XboX One e 360, ma anche Nintendo Wii U e 3DS, giochi per Smart Tv ( TvOS, Android Tv, e Samsung Smart TV) e giochi per i visori di Realtà Aumentata (AR) e per Realtà Virtuale (VR) come gli Oculus Rift, i Gear VR, Playstation VR, Microsoft HoloLens ma anche Steam VR/Vive.
Unity è una forza e supporta ben tre linguaggi di programmazione, e uno di questi indovina un po’ qual è?
Esatto, proprio Javascript!

Anche se supporta Javascript (chiamato UnityScript) non è il linguaggio di punta, di solito si preferisce utilizzare C#.

Internet delle cose (IoT)

Qui Javascript sta letteralmente divorando il mercato di tutti gli altri linguaggi. Node.js è considerato il futuro dell’Internet delle Cose. Non me lo sono inventato io, lo sostiene un folto gruppo di esperti.
Ecco qualche articolo per approfondire l’argomento:

  • Perché Node.js è l’ideale per l’Internet degli oggetti (Why Node.js is Ideal for the Internet of Things)
  • Javascript… il futuro dell’ IoT? (JavaScript ... the future of IoT?)
  • Javascript: il linguaggio perfetto per l’internet delle cose (JavaScript: The Perfect Language for the Internet of Things)
  • IoT diventa mainstream. Come dovrebbe prepararsi uno sviluppatore? (As IoT 'goes mainstream,' How Should Developers Prepare?)

Il settore dell’IoT ha vissuto una sorta di “riscoperta” negli ultimi anni, e le opportunità lavorative sono enormi, tuttavia devo confessarti che si tratta di un settore più vicino all'ingegneria che alla programmazione, quindi si allontana dalle mie competenze e mi limiterò a parlarne in generale.

Se sei interessato posso consigliarti di dare uno sguardo ai siti dei principali strumenti in questione: Cylon.js e Johnny-Five. Si tratta di un ottimo punto di partenza.

Come ti ho spiegato, i robotic frameworks interagiscono direttamente con le schede elettroniche, i circuiti integrati e i loro sensori quindi, per questo genere di lavori, è richiesto un solido background ingegneristico.

Database

Se questo fosse l’articolo su un normale linguaggio di programmazione sarebbe impensabile citare i database come ambito lavorativo ma:
Con Javascript tutto è possibile!

Ricordi quando ti ho parlato di MongoDB? Il database di nuova generazione più diffuso al mondo? Ecco, proprio lui!

Devi sapere che si integra alla perfezione con Javascript, o per essere più precisi, con Node.js.
Sono stati creati vari pacchetti pronti all’uso, detti “full-stack”, che includono tecnologie back-end e front-end legate da un unico punto in comune: Javascript.

La più popolare si chiama MEAN Stack in cui ogni lettera rappresenta una tecnologia: MongoDB Express.js Angular.js e Node.js. Faccia sorridente

Assolutamente richiesto sul lavoro ma, a dire il vero, padroneggiare tutte queste tecnologie contemporaneamente, indica un grado molto elevato di esperienza e professionalità. Non pensare che sia una passeggiata. Faccia sorridente

Capitolo 5

Risorse: 8/10

I migliori libri, guide e manuali per iniziare con Javascript

Vuoi iniziare subito? Ho esattamente quello che fa per te

Finalmente! È arrivato il momento di studiare e scrivere un po’ di codice!

Hai visto che il linguaggio Javascript può essere usato in mille settori diversi ognuno con le sue sfaccettature.

Per un principiante può essere difficile destreggiarsi tra tutte queste informazioni, quindi ho creato una lista per raccogliere le migliori risorse presenti in internet (in inglese o italiano), per iniziare subito a programmare in Javascript.

Ah, forse ancora non lo sai, ma ho realizzato delle lezioni gratuite proprio su questo argomento: “Come imparare a programmare con Javascript”.
Puoi ricevere le video lezioni lasciando il tuo nome e la tua email nel box che trovi in fondo a questa pagina. Le prime lezioni sono gratuite e ti offrono un ottimo punto di partenza. Faccia sorridente

E adesso iniziamo con la lista:

Tutorial (in inglese)

I tutorial sono una delle soluzioni più immediate: puoi subito iniziare a sperimentare e provare. Seguire dei tutorial va bene, ma è giusto anche approfondire un minimo di teoria per darti delle solide basi da buon programmatore.
Quindi, ti consiglio di dare un'occhiata anche agli altri materiali, magari trovi qualcosa di altrettanto interessante.

  • Free Interactive Javascript Tutorial
  • Learn JavaScript (projects and quizzes)
  • Javascript path - CodeSchool
  • Javascript Fundamentals: Development for Absolute Beginners (video tutorial)
  • C Programming Tutorial - Learn C Programming with examples

Corsi (italiano e inglese)

Su Javascript sono presenti ottimi corsi online completamente gratuiti e professionali. Principalmente sono in inglese ma, dato che non tutti lo capiscono, ho voluto aggiungerne uno in italiano. Tutti i corsi che ho selezionato sono per chi vuole iniziare a programmare da zero.

Il mio consiglio per gli aspiranti programmatori è sempre lo stesso:

Imparare l’inglese il prima possibile!

Nella programmazione, l’inglese è la lingua comune per qualsiasi cosa: dalle documentazioni al supporto, persino alla sintassi stessa del linguaggio.

Fidati del tuo amico Alberto, essere a tuo agio con l’inglese ti aiuterà tantissimo anche nella programmazione.

Cominciamo con i corsi:

  • Javascript Fundamentals, Microsoft Virtual Academy (in italiano)
  • JavaScript Basics, Udacity
  • HTML, CSS and JavaScript, Coursera
  • JavaScript, HTML and CSS Web Development, edX

Letture, libri ed ebook (italiano e inglese)

Di solito in questo capitolo consiglio delle letture sia cartacee che digitali ma per Javascript volevo fare qualcosa di speciale, quindi l’unico libro che voglio consigliarti è questo:

Consiglio libro per programmare in Javascript

JavaScript: The Definitive Guide, 6th Edition di David Flanagan

È il miglior libro che si possa trovare per imparare a programmare con Javascript. Il titolo rende l’idea della sua natura di “guida definitiva”: è completo, massiccio (oltre 1000 pagine) ed è consigliatissimo per i principianti.
È un libro che ti accompagnerà lungo un percorso, che porta, alla fine, da un livello base ad esperto.

Per tua grande sfortuna questa edizione non è disponibile in italiano.

Ho provato a cercare valide alternative nella nostra lingua, ma tutti i libri per imparare a programmare in Javascript per principianti sono da evitare: prezzi alti e informazioni reperibili online gratuitamente.

Ho trovato solo un libro realmente interessante e degno di nota.

Javascript. Guida completa per lo sviluppatore di Marijn Haverbeke

Veramente un ottimo libro in italiano! Ed è anche possibile leggere gratuitamente la versione completa, in inglese, oppure scaricarla in versione PDF dal sito ufficiale EloquentJavascript.

Il problema di questo testo? Non è per principianti!

Mi sento di consigliarlo solo se conosci già un minimo di basi di programmazione, altrimenti preferisco non farti spendere soldi inutilmente per un libro che, a conti fatti, ti sarà poco utile per imparare da zero.

Miglior libro per programmare in Javascript
Capitolo 6

La mia modesta opinione

Consigli per librerie e framework Javascript

Il linguaggio del futuro, oggi

Ti dico la verità:

A me Javascript piace! E anche molto!

Non per il linguaggio in sé, ma per come si è “evoluto”.

Sino a qualche anno fa era considerato lo zimbello di tutti i linguaggi. Il linguaggio più “stupido” del mondo! Questo perché veniva utilizzato, quasi sempre, da programmatori non professionisti. In poche parole, da dilettanti.

Oggi è il più utilizzato (o quasi) nella maggior parte dei settori (vedi indagini StackOverflow e GitHub).

Se è la tecnologia più utilizzata nello sviluppo front-end è solo perché il linguaggio è maturato sono stati creati (e migliorati) strumenti sempre più avanzati e specializzati per il settore (front-end framework), e lo stesso discorso vale per il back-end.

Proprio nel back-end, si è preso un’enorme rivincita nei confronti degli altri linguaggi (come Java o Ruby), diventando imbattibile sotto ogni aspetto: velocità, risorse utilizzate, facilità di sviluppo.

Non contento, ha rivoluzionato completamente lo sviluppo mobile, con le applicazioni ibride, e grazia ad una nuova innovazione: applicazioni native scritte in Javascript.

Molti pensano ancora siano fantascienza, eppure è realtà!

Anche nello sviluppo di software multipiattaforma sta cominciando ad offrire il suo contributo e sicuramente nei prossimi anni vedremo sempre più applicazioni realizzate con questa tecnologia. C’è poco da fare, realizzare software in Javascript/HTML/CSS è più semplice e veloce che con qualsiasi altro linguaggio.

E poi, per chiudere in bellezza, abbiamo il nostro preferito: l’Internet delle Cose.
Node.js viene considerato il futuro di questo settore, da figure più esperte del sottoscritto, e mi limito a questo.

Ecco spiegato perché mi piace Javascript: se è arrivato a qualche traguardo, è solo grazie ad un reale merito.

Bene, ho finito di annoiarti con le mie opinioni, ma spero che l’articolo ti sia piaciuto. Condividilo sui tuoi social (anche Whatsapp va bene) e aiuta anche gli altri a scoprire quanto è profonda la tana di Javascript!

Ti auguro buona programmazione!
Il tuo amico Alberto

Vuoi imparare a programmare?

Ho preparato una serie di video lezioni che puoi ricevere gratuitamente.


Alberto Olla Insegnante del Corso

Ciao, io sono Alberto Olla. Faccia sorridente

Mi occupo di programmazione da quasi 10 anni e in tutto questo tempo ho lavorato sempre con passione e una grande voglia di imparare. Non ho mai smesso di migliorare me stesso e ho sperimentato nuove tecnologie e nuovi linguaggi alla ricerca della soluzione migliore per i miei progetti e per quelli dei miei clienti.

Ora che ho una certa esperienza vorrei insegnare anche a te quello che ho imparato nei miei anni di lavoro.

Non devi fare altro che scrivere qui sopra il tuo indirizzo email e ti invierò subito la prima lezione!

Alberto Olla firma
altre guide popolari simili

Miglior linguaggio di programmazione per iniziare?

Consigli e analisi nella scelta del primo linguaggio

Programmare in Python: miglior linguaggio per iniziare?

Da dove partire e consigli per il lavoro

Programmare in Java: miglior linguaggio per iniziare?

I segreti del linguaggio più richiesto nel mondo del lavoro

  • Corso di Programmazione
  • Corso Java
  • Privacy