Come scegliere il primo linguaggio di programmazione [GUIDA DEFINITIVA]
In questo articolo voglio rispondere in maniera più completa e definitiva possibile alla monolitica domanda, che tutti gli aspiranti programmatori si chiedono agli inizi del loro percorso, ovvero:
Qual è il miglior linguaggio di programmazione per iniziare a programmare?
Lo so in realtà ho già risposto a questa domanda. Infatti se provi a cercare su Google questa frase troverai dei miei articoli dove rispondo alla domanda. Tra l’altro i miei articoli sono in prima posizione su Google, questo perché oltre alla programmazione ho studiato anche Digital marketing e nello specifico SEO (Search Engine Optimization). Essenzialmente cioè le attività che bisogna fare per far sì che il tuo sito salga sui motori di ricerca e arrivi nelle prime posizioni su Google. Evidentemente se sono primo vuol dire che questi studi hanno avuto un buon esito. In ogni caso in questo video voglio cercare di ricapitolare tutto il discorso che riguarda la scelta del primo linguaggio di programmazione e ti voglio dare anche dei consigli che non riguardano il linguaggio in sé, ma bensì dei consigli che riguardano i tuoi obiettivi personali.
Per quale motivo vuoi imparare a programmare? Perché vuoi creare un sito o un’app? Che obiettivo c’è dietro?
Magari vuoi imparare a fare un’app per poi diventare uno sviluppatore, farti assumere da un’azienda, oppure creare un’app come freelancer. In tutti questi diversi casi il linguaggio di programmazione cambia, perché cambiano i tuoi obiettivi. Questo voglio che sia chiaro. in ogni caso prima di iniziare ti voglio subito dire che se provi a fare una domanda come questa nei forum di programmatori le risposte che solitamente ti vengono date sono tre:
- Ti consigliano di iniziare con il linguaggio C. Queste sono persone che hanno conseguito la carriera universitaria o accademica e consigliano quindi il linguaggio di programmazione C. Io ho già fatto un articolo in merito, dove dico che per quanto mi riguarda il linguaggio C non è adatto per essere primo linguaggio di programmazione. Va bene in rarissimi casi. Quindi di base scarta questa scelta.
- Molti consigliano quello che è il loro linguaggio preferito, perché se piace così tanto a me probabilmente piacerà anche a te. Non è proprio così, quindi lasciamo perdere questa affermazione.
- Altre persone invece ti consiglieranno il linguaggio in voga in quel momento. Diciamo che questa affermazione ci può stare perché ha senso, però secondo me è bene andare più a fondo nella questione e capire quali sono gli obiettivi.
I vari tipi di sviluppo:
Innanzitutto facciamo una panoramica di quelli che sono i linguaggi che vengono utilizzati in base al tipo di sviluppo che si vuole fare.
- Sviluppo Software (Java, C#), quindi i programmi che possono essere installati all’interno dei computer, che può essere un Mac, un Windows, un Linux e così via. Veri e propri programmi che vengono installati e solitamente scritti con Java o C#. Questi tra l’altro sono dei linguaggi che vengono utilizzati all’interno delle grosse aziende.
- Sviluppo Web. Se invece vuoi creare dei siti internet si utilizzano dei linguaggi diversi. Ma andiamo con calma solitamente PHP è il linguaggio più diffuso per la creazione di siti internet. Tuttavia si possono utilizzare anche altri linguaggi come ad esempio Ruby o Python. Quando parliamo di sviluppo di siti internet in realtà bisogna fare una distinzione. Infatti i siti internet sono formati da due parti, il frontend e il backend:
- Back-end, cioè essenzialmente i codici che vengono gestiti all’interno del server, dove si vanno appunto ad utilizzare questi linguaggi di programmazione.
- Front-end, cioè la parte frontale, quella che gli utenti vedono. Questa parte qua viene gestita con l’HTML o il CSS che non sono dei linguaggi di programmazione. L’HTML non serve per programmare e neanche CSS. HTML da la struttura alla pagina. CSS serve per abbellire la pagina, quindi aggiungere i colori in background, i bordi e così via. Detto questo quindi abbiamo capito che per quanto riguarda un sito internet abbiamo questi linguaggi. Anche se PHP è quello che regna nel mercato soprattutto per lo sviluppo web, anzi solo nello sviluppo in questo ambito specifico.
- Sviluppo Mobile. Bisogna fare un’altra precisazione. Se tu vuoi sviluppare applicazioni devi scegliere per quale sistema operativo le devi sviluppare. Devi sviluppare per Android o le vuoi sviluppare per IOS? Se lo vuoi sviluppare per IOS devi andare a utilizzare un linguaggio chiamato Swift, se invece devi sviluppare per Android devi utilizzare due linguaggi, però per adesso consideriamo soltanto Kotlin. Nel caso in cui vuoi creare invece delle applicazioni con un singolo codice, che funzioni su entrambe le piattaforme, devi fare una cosa un po’ particolare che va ad utilizzare JavaScript, che se noti non ho ancora accennato.
- Ultimo di sviluppo è tutto ciò che riguarda la robotica, l’hardware, le interazioni con i sensori, schede simili ad Arduino e così via. Solitamente questo tipo di progetti non sono così tanto richiesti nel mercato del lavoro, li sto citando perché secondo me era importante capire che c’era anche quest’altra area.
In realtà ci sono anche altre piccole aree che prendono piccole parti nel mercato del lavoro. Io l’ho inserita perché secondo me era importante citarla. In ogni caso se quindi vuoi sviluppare magari dei codici che interagiscono con l’hardware, che interagiscono con il basso livello, che interagiscono con dei sensori, probabilmente il linguaggio che stai cercando è C e C++.
Ora abbiamo visto la panoramica generale di quello che devi sapere cioè che in realtà la maggior parte dei linguaggi non vengono utilizzati soltanto in un singolo ambito, ma in realtà vengono utilizzati in tanti ambiti diversi.
I linguaggi:
Java. Nato per lo sviluppo di software, in realtà nel tempo si è evoluto ed è utilizzato per tutt’altro. Nella maggior parte dei casi viene utilizzato all’interno dei server, stiamo quindi parlando di sviluppo di siti internet. Viene anche utilizzato all’interno dello sviluppo di applicazioni Android. Infatti per creare delle app su Android, puoi utilizzare Java oppure come abbiamo detto prima, puoi utilizzare Kotlin. Tuttavia non puoi utilizzare Java se vuoi creare applicazioni all’interno di iOS. In termini tecnici si chiama “sviluppo nativo”, cioè che va ad utilizzare un linguaggio nativo della singola piattaforma. Quindi possiamo dire che per Android i linguaggi nativi sono Java e Kotlin, mentre per iOS il linguaggio nativo è Swift. C’è anche un altro linguaggio, ovvero Objective-C, che ho tolto per semplificare la spiegazione.
C#. Nato come concorrente di Java, viene utilizzato tendenzialmente nel mercato del lavoro per quanto riguarda lo sviluppo di siti internet o più nello specifico nello sviluppo back-end.
PHP. L’unico modo per utilizzarlo è nel back-end, quindi per la creazione di un sito web. Di più non si può fare.
Ruby. non è quasi mai richiesto nel mercato del lavoro, quindi lo puoi utilizzare, lo puoi imparare, puoi fare diverse cose ma non app. Tuttavia nel mercato del lavoro non è richiesto. Solitamente è richiesto un minimo per lo sviluppo back-end, quindi la creazione di siti internet tramite il framework Ruby On Rails. Però in generale la sua quota di mercato è veramente bassa quindi personalmente io te lo sconsiglio.
Python. E’ un linguaggio che viene utilizzato in maniera molto particolare. Infatti se a primo impatto potrebbe sembrare molto richiesto nel mercato del lavoro, ti accorgerai molto facilmente che in realtà dopo aver appreso Python non potresti utilizzarlo in nessuno di questi ambiti. Questo perché da un punto di vista lavorativo non viene richiesto. Infatti Python è molto richiesto in tutto quello che è l’ambiente del data mining, data analysis e machine learning, cioè argomenti molto avanzati e molto particolari. Tendenzialmente si tratta di argomenti di ricerca all’avanguardia, quindi non nello sviluppo classico, nello sviluppo di siti, di App, di software. Questo è molto importante da chiarire.
JavaScript. Ora io lo so che probabilmente l’hai già sentito nominare, sicuramente sei andato a cercarlo su Google e sai che Java serve per rendere le pagine web dinamiche, cioè essenzialmente lo associ tramite l’HTML e il CSS. Ma questo era il vecchio JavaScript. Il nuovo JavaScript consente di fare una marea di cose. Anzi JavaScript è considerato ormai da qualche anno una lingua universale, perché non sono viene utilizzato dalle grandi aziende in tutti i settori, ma ha a disposizione tantissime librerie che consentono ad ogni sviluppatore di poterlo usare in tanti ambiti diversi. Quindi una volta che hai imparato JavaScript puoi potenzialmente utilizzare quello stesso linguaggio per fare tante cose diverse: può essere utilizzato per la creazione di software multipiattaforma, unendo tramite HTML e CSS.
Non sai di che cosa sto parlando? Ti sembra una cosa totalmente nuova? Allora prova a fare una ricerca su Google e scrivi Electron.js. Prova a scaricare il software chiamato Visual Studio Code. E’ un programma esattamente come gli altri, la piccola differenza è che è stato scritto in JavaScript. Cosa vuol dire scrivere un programma in JavaScript? Vuol dire essenzialmente che quel codice lo si può utilizzare su tutti i sistemi operativi (Windows, Mac, Linux).
JavaScript lo possiamo utilizzare all’interno della creazione di un sito internet, lo possiamo usare nel front-end (il classico HTML CSS + JavaScript). Ovviamente ci sono tantissime librerie, tantissimi framework, che si possono utilizzare. I più famosi sono Angular, React o View. Sicuramente li avrai sentiti nominare, ricordati che questi non sono linguaggi, ma sono essenzialmente degli strumenti che vanno a utilizzare JavaScript in maniera avanzata. Possiamo utilizzare JavaScript anche per quanto riguarda il back-end, quindi per i codici presenti all’interno del nostro server. Stiamo parlando ovviamente di Node.js o di framework come ad esempio Express. Ovviamente la complessità aumenta. Sappi però JavaScript viene utilizzato anche nel back-end con Node, quindi un grande punto a favore.
Proseguendo, prima ti ho detto che quando vai a creare un’app devi scegliere per quale sistema la stai creando (Android o iOS). Questo è chiamato “sviluppo nativo”. Tuttavia con JavaScript puoi fare un altro tipo di sviluppo chiamato “sviluppo ibrido”. Infatti puoi creare delle applicazioni scritte con il linguaggio universale, ovvero con il linguaggio JavaScript. Queste app possono essere eseguite all’interno di entrambe le piattaforme, ciò vuol dire che potrai scrivere il codice una volta e lui si eseguirà su tutti e due i sistemi operativi. Questo è un grande vantaggio in termini di costi.
In ogni caso ci sono anche degli altri pro e dei contro. JavaScript viene utilizzato anche nella robotica. Non ci credi Prova a cercare su Google Johnny-Five e trovi tutta la documentazione.
Bene, direi che più o meno abbiamo fatto una panoramica di quelli che sono le varie aree di sviluppo e di quelli che sono i linguaggi che effettivamente vengono utilizzati.
Per finire, il linguaggio SQL. Non l’ho citato prima perché tecnicamente non è un linguaggio di programmazione, bensì un linguaggio di interrogazione della nostra base di dati o database. E’ un linguaggio che è bene conoscere soprattutto se vuoi sviluppare. Tuttavia non essendo un linguaggio di programmazione non l’ho inserito nella lista. Considera quindi SQL dopo che hai appreso almeno un linguaggio di programmazione.
Scegliere un linguaggio in base all’obiettivo:
Per adesso ti ho semplicemente fatto una panoramica semplificata di quelli che sono i linguaggi di programmazione applicati alle varie aree di sviluppo. L’obiettivo di questo articolo però era un altro, ovvero rispondere alla domanda
Qual è il miglior linguaggio di programmazione per iniziare per te? Quello che meglio si adatta ai tuoi obiettivi?
Diciamo quindi che i miei consigli sono essenzialmente due:
1. Per trovare lavoro in più velocemente possibile. Quindi vuoi imparare a programmare per poi lavorare per farti assumere da un’azienda? Allora ti consiglio il linguaggio Java o Python. Java infatti è il linguaggio più richiesto nel mercato del lavoro. Proprio per questo motivo abbiamo creato un corso Java dove insegniamo agli studenti tutte quelle che sono le competenze che servono per essere assunti dalle aziende nel minor tempo possibile.
2. Imparare a programmare per hobby o comunque per questioni tue personali con calma. Non hai quindi l’obiettivo finale di farti assumere da un’azienda. Anche in questo caso ti consiglio JavaScript o Python
Ma è meglio Javascript o è meglio Python?
JavaScript ha il pro di essere un linguaggio molto immediato, quindi puoi subito mettere le mani in pasta e puoi subito creare e sperimentare. L’altro grande vantaggio di Java è che, come ti ho detto prima, è un linguaggio universale. Una volta che tu hai appreso un metodo di ragionamento, ovvero il metodo di ragionamento da programmatore, e una volta che effettivamente hai appreso un linguaggio di programmazione come JavaScript, allora hai la possibilità di utilizzare quello stesso linguaggio che conosci già in vari settori diversi. Quindi con lo stesso linguaggio potresti creare delle applicazioni ibride, potresti creare dei siti internet, interfacce front-end per siti internet, per app, potresti creare software e così via. Insomma potresti creare una marea di cose utilizzando lo stesso linguaggio.
Python ha anche lui la fama di essere un linguaggio abbastanza immediato. È abbastanza facile da imparare. In ogni caso il grande problema di Paython è che effettivamente una volta che tu l’hai appreso, non viene richiesto nel lavoro, non ci puoi fare assolutamente niente. Le richieste di lavoro per quanto riguarda lo sviluppo web, quindi nello specifico utilizzando il framework Django, sono veramente pochissime. Non è detto quindi che tu mi trovi nella tua zona molto probabilmente non ne troverai. Quindi riassumendo, imparare e usare Python potrebbe essere più semplice all’inizio ma ricordati che dopo averlo imparato dovrai cambiare linguaggio. Questo perché Python viene utilizzato in settori molto specifici e tendenzialmente in settori di ricerca (data mining, machine learning e data analysis).
Conclusioni:
Quindi ora hai tutte le carte per decidere in maniera autonoma quale è il migliore linguaggio di programmazione per iniziare in base a quello che sono i tuoi obiettivi. quindi:
- Java se vuoi imparare il linguaggio più usato nel mercato del lavoro (e di conseguenza trovare lavoro facilmente).
- JavaScript nel caso in cui tu voglia usare lo stesso linguaggio in settori differenti.
- Python nel caso in cui tu voglia imparare un linguaggio, restando cosciente del fatto che successivamente dovrai impararne un altro. Ripeto che io personalmente non te lo consiglio come primo linguaggio da apprendere. Magari una volta imparati altri linguaggi, potresti provare ad utilizzare anche Python.
Buona scelta e buona programmazione!