Quale linguaggio di programmazione dovresti imparare per primo nel 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Il viaggio della maggior parte delle persone verso l'apprendimento del programma inizia con una singola ricerca su Google a tarda notte.

Di solito è qualcosa come "Impara ______"

Ma come decidono quale lingua cercare?

“Scherzano sempre su Java nella Silicon Valley. Credo che dovrei impararlo. "

O:

“Haskell. Così caldo adesso. Haskell. "

O:

"Quel Go gopher è così dannatamente carino."

E poi c'è il resto di noi. Probabilmente cercheremo qualcosa come:

"Quale linguaggio di programmazione dovrei imparare per primo?"

Poche domande vengono poste così comunemente da ottenere il trattamento completo dell'infografica. Ma questo è uno di loro:

Decidere il tuo primo linguaggio di programmazione può essere un processo divertente, un po 'come uno di quei "Quale personaggio di Quentin Tarantino sei?" quiz sulla personalità.

Ma prima di scappare ad imparare Ruby perché ti piaceva giocare con Play-Doh da bambino, lascia che te lo ricordi: la posta in gioco è piuttosto alta qui.

Ci vorranno centinaia di ore di pratica per diventare anche lontanamente competente con il tuo primo linguaggio di programmazione.

Quindi dovresti considerare i seguenti fattori:

  • il mercato del lavoro per la lingua
  • le prospettive a lungo termine per la lingua
  • quanto è facile imparare la lingua
  • quali progetti puoi costruire mentre impari (e condividi con gli amici in modo da rimanere motivato)

Ogni anno porta nuovi linguaggi di programmazione e, con essi, nuovi documenti accademici. E nuovi fumetti web.

Sul serio. Dai un'occhiata a questo gioiello del mese scorso:

Quando si tratta di scegliere un primo linguaggio di programmazione, le opzioni non mancano. Per restringere un po ', ecco le ricerche Google più comuni relative alla programmazione dell'apprendimento, negli ultimi 12 anni:

Java ha avuto i suoi alti e bassi.

Python è gradualmente diventato la scelta più popolare.

Ma nascosto sotto questi è il Little Engine That Could, che sta lentamente diventando popolare negli ultimi anni. E quel motore è JavaScript.

Prima di parlare di questi linguaggi di programmazione, lasciatemi chiarire:

  • Non sto sostenendo che una lingua sia oggettivamente migliore di un'altra
  • Sono d'accordo che gli sviluppatori dovrebbero alla fine imparare più di una lingua
  • Sto sostenendo che prima dovrebbero imparare bene una lingua. E - come puoi probabilmente intuire dal testo capovolto nel mio titolo - quella lingua dovrebbe essere JavaScript.

Iniziamo esplorando come la programmazione viene attualmente insegnata a scuola.

Informatica 101

Le università hanno tradizionalmente insegnato programmazione sotto l'ombrello dell'informatica, che a sua volta è spesso vista come un'estensione della matematica o un collegamento a una laurea in ingegneria elettrica.

Ovviamente, come avrai già sentito:

"L'educazione informatica non può rendere nessuno un programmatore esperto più di quanto lo studio di pennelli e pigmenti possa rendere qualcuno un pittore esperto". - Eric S. Raymond

A partire dal 2016, molte università trattano ancora la programmazione come se fosse informatica e l'informatica come se fosse matematica.

Di conseguenza, molti corsi introduttivi alla programmazione si concentrano su linguaggi di basso livello di astrazione come il C o linguaggi focalizzati sulla matematica come MATLAB.

E i presidenti di dipartimento generalmente mantengono il corso, indicando le classifiche annuali del linguaggio di programmazione come l'indice TIOBE, o questo dall'IEEE:

La maggior parte di queste classifiche sembrano praticamente identiche a come erano 10 anni fa.

Ma il cambiamento avviene. Anche nel mondo accademico.

Nel 2014, Python ha superato Java come linguaggio di insegnamento più popolare nei migliori programmi di informatica degli Stati Uniti.

E un altro cambiamento è destinato a ... alla fine ... ad accadere.

Perché se guardi le lingue effettivamente utilizzate dalla forza lavoro, dipinge un quadro molto diverso:

Più della metà di tutti gli sviluppatori utilizza JavaScript. È vitale per lo sviluppo web front-end e sempre più rilevante per lo sviluppo back-end. E si sta rapidamente espandendo in aree come lo sviluppo di giochi e l'Internet of Things.

Le offerte di lavoro menzionano anche JavaScript più di qualsiasi linguaggio di programmazione diverso da Java:

Non è un caso che abbiamo costruito il curriculum della nostra comunità open source attorno a JavaScript. Negli ultimi due anni, più di 5.000 persone hanno utilizzato Free Code Camp per ottenere il loro primo lavoro di sviluppatore.

Non sto sostenendo JavaScript perché lo insegno. Insegno JavaScript perché è il percorso più sicuro per un primo lavoro di sviluppatore.

Ma JavaScript è giusto per te? È degno di essere il tuo primo linguaggio di programmazione? Esploriamo quei fattori che ho menzionato prima.

Fattore # 1: il mercato del lavoro

Se stai imparando a programmare solo per curiosità intellettuale, sentiti libero di saltare questo fattore. Ma se tu, come la stragrande maggioranza delle persone che impara a programmare, vuoi usare questa abilità per trovare un lavoro, questa è una considerazione importante.

Come ho accennato in precedenza, Java è menzionato in più offerte di lavoro rispetto a qualsiasi altro linguaggio di programmazione. JavaScript è un secondo vicino.

Ma ecco il punto su JavaScript: anche se esiste da 20 anni, solo di recente è diventato uno strumento serio su cui aziende come Netflix, Walmart e PayPal avrebbero costruito intere applicazioni.

Di conseguenza, molte aziende stanno assumendo sviluppatori JavaScript, ma non ce ne sono molti sul mercato del lavoro.

Ci sono 2,7 sviluppatori Java in competizione per ogni posizione Java aperta. La concorrenza per i lavori PHP e iOS è altrettanto feroce.

Ma per ogni posizione JavaScript aperta, ci sono solo 0.6 sviluppatori JavaScript. È molto un mercato di venditori per sviluppatori con competenze JavaScript.

Fattore n. 2: le prospettive a lungo termine

Il progetto JavaScript medio riceve il doppio delle richieste pull rispetto al progetto Java, Python o Ruby medio. Inoltre, JavaScript sta crescendo più velocemente di qualsiasi altro linguaggio popolare.

L'ecosistema di JavaScript beneficia anche di un forte investimento di denaro e di talenti ingegneristici da parte di aziende come Google, Microsoft, Facebook e Netflix.

Ad esempio, TypeScript (un superset di JavaScript tipizzato staticamente) ha più di 100 collaboratori open source, molti dei quali sono dipendenti Microsoft e Google pagati per lavorarci.

Questo tipo di cooperazione interaziendale è più difficile da trovare con Java. Oracle, che possiede effettivamente Java attraverso l'acquisizione di Sun Microsystems, spesso fa causa alle aziende che cercano di ampliarlo.

Fattore n. 3: difficoltà di apprendimento

La maggior parte dei programmatori concorda sul fatto che i linguaggi di scripting di alto livello sono relativamente facili da imparare. JavaScript rientra in questa categoria, insieme a Python e Ruby.

Anche se le università insegnano ancora linguaggi come Java e C ++ come primi linguaggi, sono molto più difficili da imparare.

Fattore n. 4: progetti che puoi costruire con esso

È qui che JavaScript brilla davvero. JavaScript funziona su qualsiasi dispositivo dotato di browser, direttamente nel browser. Puoi creare praticamente qualsiasi cosa con JavaScript e condividerlo ovunque.

A causa dell'ubiquità di JavaScript, il co-fondatore di Stack Overflow Jeff Atwood ha coniato la sua ormai famosa legge:

"Qualsiasi applicazione che può essere scritta in JavaScript, alla fine verrà scritta in JavaScript."

E ogni mese che passa, la legge di Atwood è forte.

Anche Java una volta aveva promesso di funzionare ovunque. Potresti ricordare applet Java. Oracle li ha ufficialmente uccisi all'inizio di quest'anno.

Python soffre più o meno degli stessi problemi:

“Come posso regalare questo gioco che ho creato a un mio amico? Ancora meglio, c'è un modo per metterlo sul telefono in modo da poterlo mostrare ai bambini a scuola senza che debbano installarlo? Um. " - James Hague sul ritiro di Python come lingua di insegnamento

Al contrario, ecco alcune app che i membri della nostra comunità open source hanno creato nei loro browser su CodePen. Puoi fare clic e utilizzarli direttamente nel tuo browser:

Impara bene una lingua. Quindi impara un secondo.

Se continui a saltare da una lingua all'altra, non andrai lontano.

Per andare oltre le basi, devi imparare bene la tua prima lingua. Allora la tua seconda lingua sarà molto, molto più facile.

Da lì, puoi espandersi e diventare uno sviluppatore più completo imparando molte lingue:

  • C è un ottimo modo per imparare come funzionano effettivamente i computer in termini di gestione della memoria ed è utile nell'elaborazione ad alte prestazioni
  • Il C ++ è ottimo per lo sviluppo di giochi.
  • Python è fantastico per la scienza e la statistica.
  • Java è importante se vuoi lavorare in grandi aziende tecnologiche.

Ma prima impara JavaScript.

OK, ora tenterò l'impossibile: proverò ad anticipare le obiezioni dalla sezione dei commenti.

Obiezione n. 1: ma JavaScript non è lento?

JavaScript è, per gli scopi più pratici, veloce quanto i linguaggi ad alte prestazioni.

JavaScript (Node.js) è di ordini di grandezza più veloce di Python, Ruby e PHP.

È anche veloce quasi quanto i linguaggi ad alte prestazioni come C ++, Java e Go.

Ecco i risultati del recente benchmark cross-language più completo:

Obiezione n. 2: ma JavaScript non è tipizzato staticamente

Come Python e Ruby, JavaScript è digitato dinamicamente, il che è conveniente. Ma puoi metterti nei guai. Qui intendo exampleArrayessere un array. Ho impostato i suoi valori, quindi controllo la sua lunghezza, ovvero il numero di elementi che contiene.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Ma poi ho accidentalmente assegnato che fosse una stringa.

exampleArray = “text” -> “text” exampleArray.length -> 4

Questi tipi di errori si verificano continuamente nei linguaggi tipizzati dinamicamente. La maggior parte degli sviluppatori si limita a mettere in atto controlli per prevenirli e scrive i test di conseguenza.

Se devi assolutamente avere la digitazione statica nel tuo primo linguaggio di programmazione, ti consiglio comunque di imparare prima JavaScript. Quindi puoi raccogliere rapidamente TypeScript.

"Typescript ha una curva di apprendimento, ma se conosci già JavaScript, sarà facile." - Alex Ewerlöf su TypeScript

Obiezione n. 3: ma voglio davvero creare un'app mobile

Consiglio comunque di imparare prima JavaScript.

  1. JavaScript offre diversi strumenti per creare app mobili native, come Angular Cordova e React Native.
  2. Affinché la tua app mobile possa effettivamente fare qualcosa di interessante, probabilmente avrà bisogno di un back-end appropriato, che vorrai costruire con un framework di sviluppo web appropriato, come Node.js + Express.js.

Inoltre, vale la pena sottolineare che i giorni migliori per lo sviluppo di app mobili potrebbero benissimo esserci dietro.

Per i principianti, per quanto le persone utilizzino le app mobili, quasi la metà di tutti i lavori di sviluppo sono lo sviluppo web. Confronta questo con appena l'8% dei lavori che coinvolgono lo sviluppo di app mobili.

La grande visione di "c'è un'app per quello" non si è avverata. Invece, la maggior parte dei possessori di smartphone ha smesso di scaricare nuove app.

Certo, usano ancora le app. Principalmente Facebook, Google Maps e una manciata di altri. Pertanto, gran parte della domanda di sviluppatori di app mobili è concentrata in pochi grandi datori di lavoro.

Le prospettive per questi lavori di sviluppo mobile sono difficili da prevedere. Molti aspetti dello sviluppo, della manutenzione e della distribuzione di app mobili sono più semplici con JavaScript. Quindi aziende come Facebook e Google stanno investendo molto in strumenti migliori per costruirli utilizzando JavaScript.

A partire dal 2016, praticamente tutto lo sviluppo è sviluppo web. Tutto tocca quella grande piattaforma che è "il Web". E la prossima ondata di dispositivi con cui parlerai in casa e le auto che vengono a prendere i tuoi figli a scuola, verranno trasmesse insieme anche tramite il web.

E questo significa JavaScript.

Obiezione n. 4: JavaScript non è un linguaggio giocattolo scritto in 10 giorni?

JavaScript ha una storia bizzarra.

Senza dubbio sentirai le persone scherzare a sue spese.

Ebbene, le persone adorano odiare anche in C ++. E come JavaScript, il C ++ ha avuto successo nonostante questo odio, e ora è praticamente ovunque.

Quindi, se qualcuno ti dà del filo da torcere per imparare JavaScript invece del linguaggio d'élite della settimana, ricorda le famose parole del ragazzo che ha creato il C ++:

"Ci sono solo due tipi di linguaggi di programmazione: quelle persone si lamentano sempre e quelle che nessuno usa." - Bjarne Stroustrup

Scrivo solo di programmazione e tecnologia. Se mi segui su Twitter non perderò il tuo tempo. ?