La risposta alla domanda più comunemente posta sull’apprendimento del codice

As a technical writer, my mission is to make complex topics easy to understand, so you won’t find much technical jargon in this article. I could rant and rave about object-oriented programming and data structures, but if you’re new to coding and computer science, this won’t mean much to you (yet). The purpose of this article is to give you a very broad and simple introduction to the world of programming, and to help you figure out how (and what) to start learning.
Quale linguaggio di programmazione dovrei imparare per primo?
Questa è la domanda più comune che ho ricevuto dopo aver pubblicato What I Wish I Knew Before I Learned To Code. La maggior parte delle persone presume che ci sia una scelta ovvia, ma la risposta non è sempre così chiara.
Molti bootcamp di codifica si concentrano esclusivamente su JavaScript, forse con il presupposto che chiunque voglia essere uno sviluppatore dovrebbe iniziare solo con il lavoro front-end. JavaScript è praticamente inevitabile se si vuole entrare nello sviluppo front-end, ma molte persone vi si buttano prima ancora di considerare cosa stanno cercando di realizzare imparando a codificare.
Molti programmi di informatica iniziano con Python, forse perché ha una sintassi semplice e una documentazione robusta, che lo rende un ottimo linguaggio per un principiante. Ehi, Python è ottimo per ogni genere di cose, inclusa la scienza dei dati, quindi perché non impararlo prima? È un linguaggio di uso generale, dopo tutto.
Il problema è che molte persone si mettono in testa che vogliono “imparare a codificare”, ma non si fermano a pensare a cosa vogliono imparare a fare.
Programmare non significa scegliere un linguaggio, imparare la sua sintassi, e poi capire cosa può fare in seguito.
Se volete essere sviluppatori, e non siete sicuri da dove iniziare, vi incoraggio fortemente a cominciare dalla fine. Il risultato finale. Cosa volete fare?
Se la risposta è “un sacco di soldi”, allora andate avanti e sfogliate gli annunci di lavoro e scegliete qualsiasi lingua che la vostra azienda preferita sta cercando. Ma buona fortuna nell’imparare qualcosa senza avere un obiettivo tangibile in mente.
Dopo tutto, non importa quanto “facile” o “difficile” sia una particolare lingua da imparare. Sai cos’è veramente difficile? Cercare di spingere un linguaggio oltre i suoi limiti per creare qualcosa che non può (o non dovrebbe) essere creato con quel linguaggio.
Non sono sicuro di cosa voglio fare, ma so che mi piace la sfida della programmazione. È come cercare di imparare una lingua straniera ma ammettere che non sai nemmeno dove si parla e che non hai alcun interesse a parlarne mai una parola ad alta voce. Puoi imparare tutta la grammatica fuori contesto che vuoi, ma non sarai mai un linguista.
Quali sono alcune delle cose che puoi fare?
- siti web
- giochi per computer
- applicazioni mobili (iOS? Android?)
Quali sono alcune delle cose che puoi fare?
- scienza dei dati
- intelligenza artificiale
- apprendimento delle macchine
- sicurezza informatica
- scrittura tecnica
- amministrazione di database
Questa lista non è ovviamente esaustiva, ma il punto è chiaro. Cosa vuoi fare esattamente? Capitelo prima di scegliere un linguaggio di programmazione con cui iniziare. Mentre alcune persone dicono che non importa quale scegliete, purché lo impariate bene, probabilmente scoprirete che questo non è il miglior consiglio – specialmente se avete già provato e fallito.
Se il tuo sogno è quello di progettare il prossimo Fortnite, probabilmente non dovresti passare mesi e mesi su sfide di JavaScript, così come non hai bisogno di fare un corso di Swift se stai cercando di diventare uno sviluppatore Android.
D’altra parte, se il tuo sogno è quello di ottenere una posizione di ingegneria del software in una grande azienda tecnologica, probabilmente ci si aspetta che tu impari nuovi linguaggi di programmazione una volta che inizi a lavorare. La tua comprensione degli algoritmi e dei principi dell’informatica potrebbe essere più importante del linguaggio che sceglierai di usare al tuo colloquio di codifica.
Indubbiamente, è più facile imparare nuovi linguaggi di programmazione dopo averne imparato uno veramente bene, ma se sei agli inizi, è meglio scegliere un linguaggio che si allinei bene con i tuoi obiettivi a breve e lungo termine invece di sceglierne uno a caso, o scegliere quello che pensi ti farà guadagnare di più.

Quali sono alcuni dei linguaggi di programmazione più popolari? Per cosa sono usati più spesso?
Se vuoi fare qualcosa con lo sviluppo front-end, supponi che HTML e CSS siano un dato di fatto. Sia che li consideriate linguaggi di programmazione o meno (tecnicamente HTML è un linguaggio di markup e CSS è un linguaggio di fogli di stile), avete bisogno di impararli, e dovreste essere in grado di impararli velocemente. C’è una ragione per cui i bootcamp di codifica passano al volo l’HTML e i CSS, a volte facendoli diventare parte del corso pre-bootcamp.
In poche parole, l’HTML è usato per mettere testo, immagini e altri elementi su un sito web. Intestazioni, piè di pagina, interruzioni di riga, link, testo in corsivo e così via sono creati con l’HTML. L’intera gerarchia della tua pagina è fatta con l’HTML.
CSS è usato per cambiare l’aspetto di questi elementi. Dall’opacità ai bordi, dalle dimensioni dei caratteri alle griglie, i CSS ti permettono di personalizzare l’aspetto di ogni elemento della tua pagina. Puoi anche usare i CSS per creare animazioni prima ancora di pensare alla parola JavaScript.
Se vuoi essere uno sviluppatore front-end, spendi una settimana o due per imparare veramente HTML e CSS, e fai qualche sito web da zero prima di andare avanti. Imparate Flexbox e Grid per rendere le pagine reattive (in modo che si adattino alle diverse dimensioni dello schermo), e vedete quanto lontano potete spingere i CSS, perché possono davvero fare molto di più di quanto possiate immaginare. Gioca con Bootstrap, che è un framework front-end open-source. Poi, una volta che sei arrivato a questo punto, scoprirai che il tuo viaggio di programmazione ti ha portato naturalmente a…
JavaScript
JavaScript può essere usato in molti modi, ma è più comunemente usato nello sviluppo front-end. JavaScript è usato per rendere i siti web interattivi e per rendere gli elementi web funzionali. Puoi aggiungere un pulsante al tuo sito web con l’HTML, dargli uno stile con i CSS e dargli funzionalità con JavaScript. Senza JavaScript, il tuo pulsante non farà nulla quando gli utenti ci cliccheranno sopra.
Non avrai bisogno di usare il terminale per usare JavaScript. Lavorerai in un editor di codice e nel tuo browser.
JavaScript può essere usato per progettare giochi basati su browser. (Se hai mai provato a giocare a giochi basati su browser su un computer della scuola e hai avuto problemi, probabilmente è perché JavaScript è stato bloccato dall’amministratore della scuola in un futile tentativo di impedirti di giocare)
Ci sono molte librerie e framework che rendono più facile lavorare con JavaScript. Non comincerete con questi, ma potreste usarli ampiamente in seguito.
Potete anche usare JavaScript per il lavoro di back-end usando Node.js.
JavaScript è relativamente indulgente agli errori. Relativamente.
If you want to be a front-end developer, you’ll need to learn HTML, CSS, and JavaScript. There’s really no way around it.

Python
Python è un linguaggio versatile, potente e generico. Puoi usarlo praticamente per tutto, dallo sviluppo web ai giochi, ed è per questo che molte persone lo scelgono come prima lingua.
Se sei solo curioso di programmare, puoi iniziare con Python. È facile da imparare.
Ma se il tuo sogno è quello di ottenere un lavoro come scienziato dei dati… potresti anche smettere di leggere adesso perché puoi sicuramente iniziare con Python.
Per farla breve, Python è il sogno di uno scienziato dei dati. I suoi pacchetti e le sue librerie rendono facile lavorare con enormi quantità di dati. Si possono creare visualizzazioni con Matplotlib, si possono analizzare dati tabulari con Numpy e Pandas… e così via.
Python ha una robusta documentazione. Se c’è qualcosa che dovete cercare, sarete in grado di trovare rapidamente la risposta. Questa è una considerazione importante per chiunque stia imparando in modo indipendente.
Fate attenzione all’indentazione, però. L’indentazione segna i blocchi di codice, quindi otterrete un errore se lo fate male. Uno spazio mancante o uno spazio extra è un problema. Lo dico perché questa è una caratteristica distintiva di Python. Con JavaScript, potete mettere tutti gli spazi che volete – anche se fate un casino. Non provate a farlo con Python.
Ruby
Ruby è un linguaggio di back-end. “Ruby on Rails” non è un linguaggio. Ruby è il linguaggio e Rails è il framework. Ruby è diventato popolare grazie a Rails.
Ruby è un linguaggio fantastico con una sintassi gentile. Nessun punto e virgola alla fine di ogni riga! La maggior parte degli sviluppatori concorda che è divertente da usare, ma è piuttosto intollerante agli errori. Solo un avvertimento. Se il debugging non è il vostro forte, non avrete un buon tempo per iniziare con Ruby.
È un linguaggio di alto livello che può fare molto con poche righe di codice. Ruby sta diventando popolare tra le startup, quindi potreste aver visto annunci di lavoro per “sviluppatori Ruby on Rails”.
Ruby potrebbe essere un buon primo linguaggio se state imparando indipendentemente e se non siete fan di Python. D’altra parte, Ruby è stato progettato per rendere la programmazione il più divertente e piacevole possibile per gli sviluppatori esperti, quindi non è un linguaggio che le accademie di codifica o i programmi di informatica insegnano per primo. Se speri di imparare in un ambiente faccia a faccia, non avrai molta fortuna nel trovare un corso di “Introduzione alla programmazione” che si concentri su Ruby.
SQL
SQL (alcune persone lo pronunciano S-Q-L mentre altri dicono “sequel”; possiamo salvare questa discussione per un altro giorno) non è veramente un linguaggio di “programmazione”. Non farete intere applicazioni con SQL. Lo userete per comunicare o ottenere informazioni dai database.
Data. Basi.
Se volete lavorare nella scienza dei dati, dovrete imparare SQL o non otterrete alcun dato. Se volete fare qualsiasi cosa che coinvolga i database, dovrete imparare l’SQL. Ma se non hai mai scritto una sola riga di codice nella tua vita, probabilmente non dovresti iniziare con SQL. Perché? Non puoi sviluppare un’applicazione stand-alone con SQL (non è quel tipo di linguaggio), quindi imparerai praticamente all’indietro.
Swift
Se vuoi essere uno sviluppatore iOS, va benissimo iniziare con Swift. Swift è un linguaggio relativamente nuovo, ma è facile da imparare (i bambini possono farlo) ed è stato letteralmente fatto per sviluppare applicazioni iOS.
Non c’è molto altro da dire qui. Non c’è motivo per cui Swift non possa essere il tuo primo linguaggio se il tuo obiettivo è quello di essere uno sviluppatore iOS.
Java
Se vuoi costruire applicazioni Android, Java è il tuo linguaggio. Puoi usarlo anche per le applicazioni desktop. E per alcuni giochi. Java era uno dei linguaggi più comunemente insegnati nei programmi di informatica, ma Python lo ha superato negli ultimi anni. Java è ancora abbastanza popolare, ma Python e Ruby sono probabilmente più facili da imparare. Se sei deciso a diventare uno sviluppatore Android, inizia con Java – ma se non lo sei, potresti scoprire che avrai più versatilità (e più soldi per il tuo denaro, per così dire) imparando prima Python.
C#
Se vuoi essere uno sviluppatore di giochi – in particolare se vuoi sviluppare giochi per console o desktop – potresti aver guardato Unity. Se no, aprite questo link in una nuova finestra ed esploratelo non appena finite di leggere.
Con Unity, potete costruire (e monetizzare) giochi incredibili, anche se siete dei principianti. Probabilmente userete C#.
Mentre Unity supportava UnityScript (che è fondamentalmente un “dialetto” di JavaScript), ha iniziato a eliminare gradualmente il supporto per UnityScript nel 2017, lasciando C# come il concorrente più forte.
C# è un ottimo linguaggio da imparare prima se il vostro obiettivo è quello di essere uno sviluppatore di giochi. Non deve essere difficile. Unity ha una delle documentazioni più robuste che abbia mai visto. Hanno tutorial come nessun altro.
Un’altra ragione per imparare C#: Microsoft. Se vuoi costruire applicazioni Microsoft, C# è il tuo linguaggio.
PHP
PHP è un linguaggio di scripting, ed è un po’ sottovalutato, considerando il fatto che l’80% del web è alimentato da PHP. È abbastanza noto per essere il fondamento dei temi di WordPress, quindi se sei interessato a creare temi personalizzati, dovrai prendere confidenza con PHP.
Puoi fare molto con PHP. Sembra solo uno strano linguaggio da raccomandare come primo perché probabilmente non sarà sufficiente a soddisfare tutte le vostre esigenze di programmazione. PHP ha i suoi limiti, ma è in effetti molto facile da imparare per un principiante.
Ci sono molti altri linguaggi là fuori, e questa non vuole essere una lista esaustiva.
Se ci sarà abbastanza interesse, aggiornerò questo articolo con altri linguaggi. Ricordatevi solo una cosa: ogni sviluppatore ha un linguaggio preferito, e ogni sviluppatore vi dirà di imparare prima quel linguaggio.
Ma voi non siete ogni sviluppatore.
Dovreste iniziare con il linguaggio che ha più senso per voi una volta che avete capito esattamente cosa volete fare. Non sganciare 18.000 dollari per un bootcamp che insegna JavaScript (non importa quanto sia fantastico JavaScript) se sai che vuoi fare applicazioni mobili.
Parliamo di linguaggi di programmazione poco pratici.
Non farò nomi, ma se ti sei imbattuto in un “linguaggio figo” e non hai idea di come si usi, è probabile che non sia un buon primo linguaggio da imparare.
Questo include i linguaggi “legacy”. Se letteralmente nessuno ha usato un particolare linguaggio per decenni, non fatene il vostro primo linguaggio di programmazione. È come cercare di imparare l’aramaico come prima lingua straniera. Non troverete abbastanza documentazione per superare il livello “principiante”, e la gente alzerà gli occhi al cielo se cercate di usare una lingua antica durante un colloquio di codifica. Sto solo dicendo.
Siate pratici.
La migliore prima lingua è quella che fa quello che vi serve.
