Come scegliere
i linguaggi di
programmazione
da imparare
Da qualche anno a questa parte si è innescato un cambiamento radicale nel mondo del lavoro a causa della
rivoluzione industriale 4.0.
In questo contesto, la parola d’ordine è stata l’automazione che ha portato
alla nascita di nuove professioni e alla richiesta sempre crescente di alcune altre. In particolar modo,
ha
assunto una rilevanza sempre maggiore nel mercato del lavoro la figura del programmatore
informatico, leader
della rivoluzione digitale.
Il programmatore informatico è una figura che realizza concretamente
l’applicazione software: riesce,
cioè, a comunicare alla macchina delle istruzioni, espresse in righe di codice basate su determinati
linguaggi di programmazione al fine di creare applicazioni software performanti.
Ma che cos’è un
linguaggio di programmazione?
Saltiamo le definizioni enciclopediche che puoi trovare su Wikipedia e ti
invitiamo a riflettere.. il fatto che si definisca “linguaggio” non è casuale: un linguaggio di
programmazione è, a tutti gli effetti, la lingua con cui il programmatore riesce a parlare alla
macchina. Immagina di trovarti a Parigi e parlare Italiano al ristorante: beh, volevi un
bouef
bourguignon e, invece, ti ritrovi delle lumache: non il massimo, eh? Questo avviene perché tu e il
povero cameriere non siete riusciti ad avere uno scambio comunicativo efficace, poiché, appunto, non
parlate la stessa lingua.
Il cameriere disorientato nella nostra analogia è il computer, la macchina, più in generale: occorre
conoscere la sua lingua perché possa comprendere ed eseguire quanto richiesto e non c’è da stupirsi se
ciò non avviene parlandogli una lingua non consona.
A seconda di quelli che sono i nostri obiettivi nel
settore della programmazione informatica, possiamo usufruire di diversi linguaggi di programmazione:
ogni strumento si usa per realizzare un qualcosa di specifico. Certo, impararli tutti è impossibile e
fuori discussione, per cui dobbiamo chiederci quale linguaggio di programmazione fa al caso
nostro.
E qui il dubbio atavico di ogni aspirante developer: come scegliere i linguaggi di programmazione da
imparare?
Posto che sicuramente si tratta di una scelta soggettiva, proviamo, in questa guida, ad
aiutarti ad analizzare alcune caratteristiche dei diversi linguaggi di programmazione, al fine di
permetterti di stilare la tua personale classifica, e a delineare gli step da seguire per definire la
scelta!
Da navigatore esperto del web, quale sicuramente sarai, ti sarai certamente imbattuto in altre guide
su
questo tema. Al 100% avrai letto, in ogni salsa possibile, che il primo tassello su cui ponderare
per
scegliere quale linguaggio di programmazione imparare è proprio il perché vuoi
farlo. Quali sono i tuoi
obiettivi? Cosa vuoi fare? A cosa punti?
Non siamo qui a dirti che riflettere su queste domande è
sbagliato, anzi; quello che, però, possiamo dirti è che, quale che sia il tuo obiettivo, beh.. Roma
non
si è costruita in un giorno: anche se aspiri a scrivere la nuova intelligenza artificiale di
Space-X,
frena! Dovrai ugualmente partire dalle basi e cercare sempre di ottenere dei
piccoli risultati - a
seconda, chiaramente, del tuo punto di partenza - e progredire a piccoli passi, verso lidi
gradualmente
più ostici.
Anche in questo caso, la nostra soluzione è piuttosto pragmatica: il linguaggio di programmazione
più facile da imparare è quello che ti consente di ottenere dei risultati spendibili con il minimo
effort, perchè questo ti aiuterà ad accrescere e a stimolare l’entusiasmo per la materia.
Partire con la programmazione web è l’ideale:
quello dello sviluppo web è, infatti, un ambito in cui
è
facile imparare, ma che ti consente di generare ottimi risultati! Questo si traduce nell’imparare,
essenzialmente, i principali linguaggi di programmazione dello sviluppo web (anche se, scoprirai,
HTML e CSS non sono veri e propri linguaggi di programmazione!!):
Questo approccio ti consentirà di creare applicazioni e portali web di valore con poco sforzo: è
esattamente questo che suggerivamo quando ti dicevamo di partire dalle basi e, via via,
progredire.
Cerca di fare piccoli progetti (gradualmente sempre più complicati) che siano utilizzabili da te ,
dai tuoi amici, dall’azienda di famiglia o da qualsiasi altra persona; dopo che avrai padroneggiato
discretamente il linguaggio PHP e JavaScript - che sono due linguaggi a tipizzazione
dinamica e
debole - sarebbe, ad esempio, un’idea fantastica imparare un linguaggio di
programmazione a
tipizzazione statica e forte , come ad esempio, il linguaggio Java o
il linguaggio C#, due linguaggi
estremamente diffusi ed utilizzati in ambito enterprise!
O ancora, se sei terribilmente attratto dai
meandri più reconditi della programmazione informatica e non hai timore di analizzarli nel profondo,
potresti cimentarti nello studio di uno dei linguaggi di programmazione più importanti da imparare
per capire proprio come funziona internamente il computer: è il linguaggio di programmazione
C.
Quest’ ultimo presenta un modello di programmazione, dei tipi di dato, che risultano molto vicini a
come il computer interpreta ed esegue i nostri programmi. Una base di conoscenza del C è
estremamente utile per interiorizzare concetti avanzati e comprendere, ad esempio, ottimizzazione di
codice, strutture dati e algoritmi.
Rispondere a questa domanda è, in realtà, molto semplice! Ti basterà consultare l’ indice TIOBE
Programming Community: un indicatore della popolarità dei linguaggi di programmazione,
che viene
addirittura aggiornato una volta al mese! Tieni presente, però, che i risultati di quest’ indice si
basano sul numero di ingegneri qualificati nel mondo (e non solo in Italia!), sui corsi
e sui fornitori
terzi e l’indice non si propone di definire quale sia il miglior linguaggio di
programmazione, ma solo
di delinearne i più popolari.
Come potrai notare, ad oggi, in ambito di sviluppo web i linguaggi che la
fanno da padrona sono diversi: primo tra tutti, il linguaggio JavaScript, perchè è il
solo linguaggio
che può essere eseguito direttamente nel browser e, quindi, tantissimi applicativi lato front end sono
scritti con questo linguaggio; in secondo luogo, sempre in ambito web, il linguaggio più utilizzato in
assoluto è PHP, perchè è un linguaggio che è stato creato e progettato proprio per la
realizzazione di
portali web (basti pensare che è il linguaggio di programmazione utilizzato da tantissime piattaforme
come Wordpress, Magento, Prestashop e persino da Wikipedia e Facebook!).
Tieni sempre a mente, tuttavia, che i linguaggi di programmazione più usati - e, di conseguenza, anche
quelli più richiesti - dipendono dall’ ambito della programmazione di cui ci stiamo occupando; in linea
generale, sicuramente tra i linguaggi più utilizzati e più versatili abbiamo il linguaggio di
programmazione Python e il linguaggio C. In modo un po’ più specifico,
invece, per la programmazione di
applicativi enterprise (banche, grosse assicurazioni, o grosse organizzazioni in generale) il linguaggio
di programmazione più usato in assoluto è il linguaggio Java. Il linguaggio Java ha ben 20 anni ed è
preferito dalle aziende enterprise per via della sua solidità: si è sempre sviluppato in questi anni
come ecosistema e presenta tantissime librerie open-source
Non per ultimo, un linguaggio che, universalmente, tutti i programmatori devono conoscere è il
linguaggio di programmazione SQL , per
interagire con i database.
Un portale molto utile per monitorare le tendenze del mercato del lavoro IT in tempo
reale è, senza
ombra di dubbio,
IT Jobs Watch (ma, attenzione: quell’ IT non sta certo per Italia!)
Vogliamo porre
l’accento su una cosa: a volte il linguaggio di programmazione più diffuso non è quello più pagato.
Questo avviene perché può risultare più difficile trovare delle risorse specializzate in linguaggi di
programmazione più specifici.
Un esempio, ad oggi, è il linguaggio di programmazione RUST, linguaggio
relativamente giovane, molto moderno e che promette di prendere parecchio piede. In questo momento
pochissime persone padroneggiano questo linguaggio, soprattutto perchè la sua curva d’apprendimento è
molto complessa. Insieme al linguaggio di programmazione GO (il linguaggio di programmazione
realizzato
da Google, molto importante ed utilizzatissimo per le architetture a micro-servizi)
costituisce uno dei
linguaggi più spendibili in Italia e molto ben pagati. Sicuramente il futuro per lo
scenario del mondo
della programmazione, per entrambi i linguaggi appena citati, è assolutamente roseo.
Uno dei vantaggi che, al momento, si intravedono per RUST è il fatto che , attualmente, ci sono diversi
frameworks front end che girano all’interno del browser
tramite la tecnologia web
assembly , e sono
scritti proprio in RUST. In un futuro ipotetico questo potrebbe sovvertire completamente le sorti dei
linguaggi attuali come Javascript.
Piccolo tip! In linea generale, tutto ciò che ha a che fare con i big
data e con lo stream processing, è molto ben retribuito, nonostante non sia così usuale
(ma non si
tratta di linguaggi di programmazione, occhio!).
Per finire, dei linguaggi di programmazione nonché
ambienti di lavoro ben pagati e specifici per realizzare sistemi real-time e a concorrenza massiva sono
i linguaggi Erlang/Elixir che consentono di realizzare applicativi altamente scalabili
in situazioni di
concorrenza e semi-realtime. Basti pensare che l’ infrastruttura di Whatsapp è realizzata completamente
in Erlang! Così come il backend di Super Mario per Nintendo e di molti altri videogiochi!
Elixir - che è
il linguaggio più moderno legato all’ecosistema Erlang - sta godendo, in questo periodo, di una forte
crescita anche in ambito web grazie ad alcuni frameworks che ne facilitano lo sviluppo.
Il vincitore indiscusso di ogni possibile classifica che possa essere ipotizzata per rispondere a
questa domanda è sicuramente il linguaggio di programmazione Python , che risulta essere tra i
linguaggi di programmazione più versatili e più completi, nonché molto vantaggioso in termini di
meccanismo di interfacciamento con le librerie C e C++ molto semplice.
Il linguaggio Python è stato il linguaggio scelto da Google, agli inizi, nella realizzazione di
molti tool interni: infatti,
persino il creatore di Python è stato assunto da Google per sviluppare il linguaggio! Nonostante
ciò, ad oggi, Google punta sul linguaggio di programmazione GO, di cui sopra.
Ma perchè diciamo che Python è estremamente versatile? Perchè se ci chiedessimo cosa si può
fare con Python, le risposte
sarebbero assai variegate. Programmare in Python, infatti, ci consente di scrivere uno script di
codice procedurale semplicissimo, per insegnare ai bambini a programmare, così come di creare
applicativi web completi; con Python possiamo inter-operare con librerie potentissime di
intelligenza artificiale - scritte in linguaggio C++ - e consentire ai data scientist di
visualizzare e manipolare i dati molto rapidamente.
Imparare Python è molto semplice, ma non sottovalutarlo! Se, da un lato, ha una curva
d’apprendimento rapida, dall’altro è un linguaggio
molto profondo: diventarne specialisti richiede tempo! Le basi sono facili, ma ci sono innumerevoli
sfaccettature di questo linguaggio. Ha una libreria di funzionalità open-source enorme e un modello
di esecuzione - pur essendo un linguaggio a tipizzazione dinamica - molto performante.
Da non sottovalutare nella scelta del linguaggio di programmazione da imparare anche l’esistenza di
vasto materiale reperibile online e di un’ ampia community di riferimento: queste risorse, infatti,
faciliteranno l’apprendimento e la risoluzione dei problemi che ti si paleseranno davanti. In questa
classifica, il linguaggio Javascript è sicuramente al primo posto, insieme a PHP e al linguaggio
Python.
Vediamo perché il podio è occupato da questa triade:
Javascript
è il linguaggio con il numero maggiore di ambienti sui quali può essere eseguito (banalmente, perché ogni browser può eseguirlo!) .
PHP
invece, si merita la carica perchè, come già detto, è un linguaggio molto semplice da imparare per occuparsi di sviluppo web, che è la porta di ingresso più semplice verso il mondo della programmazione informatica.
Python
data la sua natura estremamente versatile, viene usato in diversi ambiti ed è, quindi, naturale che possa vantare un gran numero di risorse online per l’apprendimento.
Ci sono diversi siti utili per trovare materiale online; quelli che ti consigliamo sono: Javascript.info , w3school e, se preferisci delle risorse in lingua italiana, la nostra guida a PHP in italiano e la nostra guida all’html e CSS faranno decisamente al caso tuo!
Per poter ottenere dei risultati e dei programmi di valore è importante usare dei frameworks. Ti avevamo già parlato di che cos’è un framework , ma ti rinfreschiamo la memoria: un framework è una struttura di base che potrai utilizzare per il tuo codice per facilitarne lo sviluppo. Ma, quale framework scegliere? Partiamo col dirti che ogni linguaggio di programmazione ha i suoi frameworks dedicati e, dunque, se decidi di imparare a programmare in Javascript , dovrai, ovviamente, dedicarti all’apprendimento dei frameworks di riferimento per il linguaggio di programmazione Javascript; analogamente, se scegli di imparare php ti avvarrai di frameworks PHP, e così via.
Ecco una lista dei frameworks che noi consigliamo in base al linguaggio di programmazione a cui hai
scelto di dedicarti.
Per quanto riguarda i linguaggi di programmazione lato backend abbiamo:
è un framework per il linguaggio PHP ad altissima crescita a livello di adozione, è in fortissimo sviluppo e ci consente di realizzare applicazioni complesse con un effort relativamente semplice.
è un framework per il linguaggio Ruby, citato in questa classifica e degno di nota perchè, nei primi anni 2000, ha letteralmente segnato lo sviluppo web 2.0 e determinato la strada per tantissimi altri frameworks (laravel incluso!)
niente film di Tarantino! Django è il framework di riferimento per il linguaggio Python, gratuito e open-source.
Se hai scelto, invece, la strada del front end web developer , abbiamo parlato diverse volte nel nostro blog dei vari Javascript frameworks , analizzando anche in articoli più dettagliati le varie opzioni:
Noi consigliamo assolutamente di imparare React, che sta accelerando maggiormente in termini di adozione; tuttavia, se vuoi approfondire la comparazione tra i 3 per capire quale scegliere in base alle tue necessità ti rimandiamo al nostro blog.
Conclusioni
Conclusioni Il mondo dello sviluppo software è in continua evoluzione e i linguaggi di programmazione “vanno e vengono”, come le mode: la cosa importante è focalizzarsi su un linguaggio per volta e creare prodotti di valore, produrre un risultato. Speriamo di averti fornito degli spunti fondamentali per aiutarti a scegliere che linguaggio di programmazione studiare, ma ricorda: non smettere mai di imparare e di approcciare linguaggi sempre nuovi!