Oggi parleremo di codifica. In particolare, risponderò alla domanda: Che cos’è il coding nel mondo? Tratteremo anche un po’ di quello che succede quando si codifica.
Prima di continuare a leggere, però, voglio che clicchiate con il tasto destro del mouse nella finestra del vostro browser e scegliate l’opzione “Visualizza sorgente della pagina”.
Quando si fa questo, si ottiene una visione del codice della pagina web. Vale a dire che, sbirciando dietro la tenda, hai visto il linguaggio che dice al tuo computer come rendere questa pagina web così bella.
La prima volta che ho effettivamente guardato il codice in una finestra del browser è stato rivelatore per me. Qui c’era internet con la voce di internet stesso! Non ne capivo la maggior parte, ma potevo cogliere frammenti di parole e frasi che mi sembravano familiari. C’erano alcuni nomi di font che riconoscevo, e capivo più o meno le dimensioni dei pixel. Il resto mi era estraneo. Questa era la lingua che parlava il mio computer, o così credevo.
Se state pensando di imparare a scrivere codice, vale la pena pensare alla meccanica della codifica. Sapere cosa succede esattamente quando si codifica, cosa significa quando diciamo che qualcuno sta codificando, qual è la differenza tra codificare e programmare, in quali lingue si può finire per codificare, e come iniziare a codificare, vi aiuterà ad essere un codificatore migliore.
Codifica informatica per principianti
C’è molto clamore intorno alla codifica, quindi iniziamo a chiarire cosa non è codificare. Ho detto sopra che quando ho visto per la prima volta il codice sorgente di una pagina web, ho pensato che stavo guardando il linguaggio parlato dal mio computer. Questo è un modo comune di spiegare cos’è il codice, ma non è esattamente vero.
Il vostro computer non capisce le sfumature del linguaggio. Infatti, gli unici termini che il vostro computer capisce molto bene sono “Sì” o “No”.
Immaginate di costruire un ponte con un gruppo di ingegneri. Voi siete da una parte, loro dall’altra, e dovete comunicare per finire il progetto. Il problema è che il tuo telefono è morto e la tua radio funziona solo in un modo. Tutto quello che hai per comunicare con loro è una torcia elettrica. Un flash per il sì, due per il no. Ci vorrà un po’ di tempo ma, alla fine, il ponte sarà costruito.
È così che un computer comunica con le persone. Il linguaggio che il computer parla è il codice binario, un linguaggio matematico di uno e zero. Proprio come la torcia, ci sono solo due opzioni. Il computer capisce “on” e “off”, e nient’altro. Quindi, a meno che tu non stia scrivendo stringhe di uno e zero nel tuo editor di testo (cosa che non stai facendo), non stai realmente scrivendo codice nel linguaggio del computer.
Ma se il codice non è scritto nel linguaggio del computer, cosa stai facendo?
Il codice del computer è un linguaggio
Pensa a scrivere codice in questo modo. Voi non parlate il binario, e la macchina non può avvicinarsi a capire il linguaggio umano. Quindi, per poter dire al computer cosa fare, è necessario progettare un traduttore che possa agire da intermediario. Questo è lo scopo del codice. Il codice è una forma di scrittura che non è binaria, che è facile da imparare e interpretare per gli umani, ma che il computer può ancora capire.
Per la maggior parte dei programmi su cui probabilmente lavorerete, il codice che scriverete è in realtà un passo rimosso dal codice binario che il computer elaborerà. Scriverete in un codice che deriva dal linguaggio umano. I programmi incorporati nel vostro computer poi traducono ciò che avete scritto in binario. È come se tu avessi bisogno di parlare con qualcuno che in mandarino, tu conosci solo l’inglese, e l’unico traduttore che puoi trovare parla solo mandarino e francese. Avreste bisogno di un altro traduttore per tradurre dall’inglese al francese e poi il primo traduttore può tradurre il francese al mandarino, si spera senza che il significato si perda nel processo.
Quello che mi fa saltare la testa su tutto questo è che in qualche modo funziona. Abbiamo programmi che traducono programmi per una macchina che parla solo binario. Questo è un processo follemente complicato, eppure eccomi qui a scrivere parole umane sul mio computer che parla binario.
C’è molto di più, naturalmente, ma queste sono le cose essenziali da sapere prima di iniziare una conversazione con il vostro computer attraverso il codice.
Codifica vs. Programmazione: Qual è la differenza?
Quando stavo crescendo, mio padre e tutte le persone con cui lavorava erano programmatori di computer. Questo ha incorniciato il modo in cui ho inteso le persone che hanno scritto codice per i computer per molto tempo: Erano programmatori.
Più recentemente sembrava che ci fosse un cambiamento nella terminologia o nell’industria. Improvvisamente, le persone che scrivevano per i computer erano codificatori. Questo cambiamento mi ha spinto a chiedermi se c’è qualche differenza tra ciò che fanno i programmatori e ciò che fanno i codificatori.
Molti dicono che in realtà non c’è alcuna differenza tra un codificatore e un programmatore. È una differenza di terminologia piuttosto che di attività. Semmai, a mio modesto parere, dire di essere un coder è leggermente più generale che dire di essere un programmatore. Poiché per me la parola programmatore è spesso associata ai corsi di programmazione (e informatica) all’università. Mentre il coding sembra qualcosa che tutti possono fare.
Jonah Bitautas, il product designer dietro Cards Against Humanity, fa un punto interessante quando sostiene che c’è una vera differenza ed è radicata in questioni di scala. Essenzialmente, un codificatore è qualcuno che scrive il linguaggio per i computer. Un programmatore è qualcuno che supervisiona la scrittura di un intero programma – vale a dire, un intero progetto di codifica.
Alla fine della giornata, non esiste una definizione formale di codificatore o programmatore. E quindi va benissimo usare questi termini in modo intercambiabile: potete dire “sono un coder” o “sono un programmatore”, e nessuno vi giudicherà per questo. A meno che durante la rara occasione su Hacker News – il sito di notizie di programmazione dove i coder stagionati (e opinionisti) frequentano. Certo, potrebbero dire qualcosa. Basta spazzolarlo via e continuare ad andare avanti.
Tipi di linguaggi di codifica
Ci sono decine di linguaggi di codifica. Alcuni linguaggi sono polivalenti (o multiuso), ma la maggior parte serve una funzione specifica. I CSS, per esempio, funzionano principalmente per rendere le cose belle. JavaScript, un linguaggio relativamente vecchio, esiste per rendere le pagine web più funzionali. Ci sono linguaggi specializzati che sono ottimi se hai bisogno di qualcosa di super specifico, ma tutto ciò di cui hai veramente bisogno per iniziare sono alcuni comuni.
HTML
Quando ti ho chiesto di aprire il codice sorgente di questa pagina web, ti ha portato a linee di codice scritte in HTML. Abbreviazione di Hypertext Markup Language, l’HTML è l’ossatura di Internet. Dice alle pagine web cosa dovrebbe essere visualizzato e dove e come si inseriranno all’interno di un dato foglio di stile. Dice anche al tuo browser dove cercare contenuti come immagini e video che potresti voler includere nel tuo progetto, così come dove trovare il foglio di stile su cui stai lavorando.
Una cosa di cui essere consapevoli: L’HTML tecnicamente non è un “linguaggio di programmazione” perché non usa espressioni basate sulla logica come fa, per esempio, Python. L’HTML è un linguaggio di markup – ma proprio come il dibattito tra codificatore vs. programmatore vs. sviluppatore – è improbabile che vi venga rimproverato di chiamarlo un linguaggio di programmazione, specialmente se siete nuovi.
CSS
CSS è il foglio di stile. Se apri un file CSS, vedrai un sacco di riferimenti a famiglie di caratteri, colori e stili di formattazione dei caratteri (come grassetto, sottolineato o corsivo). Quando il tuo browser carica una pagina, l’HTML gli dice “Fai in modo che questa parte della pagina sembri un’intestazione. OK?” Dice anche “Ecco dove guardare per capire come dovrebbe essere un’intestazione”. Questo sarà sempre un file CSS.
Javascript
Javascript è il linguaggio che porta interattività ad una pagina web. Quando si clicca un pulsante su un sito web, per esempio, è JavaScript che fa sembrare che il pulsante sia cliccato. Anche i controlli per i lettori video sul web e le animazioni sono spesso Javascript.
Ruby vs. Python
In realtà abbiamo già un post sulle differenze tra Ruby e Python, ma la versione breve è che questi due linguaggi di programmazione sono spesso usati per sviluppare applicazioni web.
Cioè, creano programmi che permettono alle pagine web di fare cose ad un alto livello di interattività. Se vuoi, per esempio, costruire un bot per creare un sistema di pagamento automatico per i tuoi clienti, probabilmente userai uno di questi. Sono ottimi programmi con cui imparare a lavorare perché sono straordinariamente versatili e c’è un sacco di codice esistente sul web per iniziare a giocare con questo.
Come imparare a codificare?
Ci sono una serie di parallelismi tra imparare a codificare e imparare a parlare una nuova lingua (umana). La somiglianza più frustrante è che, come per l’apprendimento di qualsiasi lingua, si deve passare del tempo a fare pratica!
Ci sono persone che sono semplicemente codificatori naturali, certo, proprio come ci sono persone che possono parlare italiano dopo aver ascoltato un paio di opere. Per la stragrande maggioranza di noi, però, imparare a programmare è un processo di prove ed errori. Codificare è un’abilità. Ci vuole tempo, e aiuta avere una guida.
Per fortuna, ci sono molti corsi online accessibili per imparare a codificare! Se sei nuovo alla codifica e non sai da dove cominciare, ti consiglio Programming For Non-Programmers. Questo corso ti darà il vocabolario e la prospettiva necessaria per dare un senso al mondo del coding.
Se sei pronto a tuffarti direttamente nell’apprendimento del codice, Impara Python. È quello che tutti i ragazzi fighi stanno facendo in questi giorni. Python è un grande linguaggio che puoi usare per costruire quasi ogni sito web o app che vorresti fare. Non ci credi? Google, Uber, Netflix e molte altre sono solo alcune aziende che usano Python.
Sono a corto di soldi? Ci sono dozzine di siti web dove puoi imparare a scrivere codice gratuitamente. Così ora non hai più scuse.