Questo sito contribuisce alla audience di Il Messaggero

Come iniziare a programmare

di

Dopo aver chiacchierato a lungo con un tuo amico programmatore, questi ti ha parlato della sua professione e tu, già abbastanza “esperto” in tema di tecnologia, ne sei rimasto affascinato a tal punto da voler provare a intraprendere lo stesso percorso. Innanzitutto, lasciati dire che il mondo della programmazione è estremamente vasto e articolato: per acquisire le competenze sufficienti a diventare un professionista del settore sono richiesti studio, pratica e tempo, cosa che, se deciderai di buttarti a capofitto in questo settore, non devi dimenticare mai.

Ciò non toglie, però, che da qualche parte bisogna pur cominciare… ed è proprio qui che posso venirti in aiuto: nella guida di seguito, infatti, intendo fornirti tutti gli strumenti necessari per iniziare a programmare, dandoti un’infarinatura generale sulle categorie di linguaggi di programmazione esistenti e su quelli più usati a oggi. Infine, sarà mia cura spiegarti come realizzare dei semplicissimi programmi utilizzando i linguaggi C, Java e Python.

Dunque, cos’altro aspetti a iniziare? Ritaglia qualche minuto di tempo libero per te, mettiti bello comodo e leggi con molta attenzione tutto quanto ho da dirti sull’argomento: sono sicuro che, una volta terminata la lettura, sarai perfettamente in grado di valutare se proseguire o meno con quest’avventura e, in caso affermativo, saprai scegliere il linguaggio più adatto a te. A questo punto, non mi resta altro da fare che augurarti buona fortuna e farti un in bocca al lupo per tutto!

Indice

Tipi di linguaggi esistenti

Come ben sai, un programma è un’entità informatica che può elaborare dati automatizzare delle operazioni, il cui funzionamento è spesso basato su una sequenza di passi ben precisa, che prende il nome di algoritmo: con questa definizione si intendono i passi necessari da compiere per trasformare una serie di informazioni “in ingresso” in una serie di dati “in uscita”.

Un linguaggio di programmazione, invece, è il formato con cui i passi dell’algoritmo vengono “tradotti” e resi comprensibili dal computer: nel mondo informatico esistono decine e decine di linguaggi simili, ciascuno progettato per uno specifico scenario di utilizzo. Per esempio, uno dei linguaggi dedicati ai database è SQL, così come il linguaggio di programmazione “tipico” di smartphone e tablet Android è Java, quelli usati per creare le app per iOS sono SwiftObjective-C, mentre uno dei linguaggi per realizzare operazioni matematiche tra matrici è MATLAB, e l’elenco potrebbe andare avanti a lungo.

Ad ogni modo, i linguaggi di programmazione possono essere suddivisi in due grandi famiglie: quelli a basso livello, più difficili da imparare e meno intuitivi, la cui sintassi è più vicina a quella del linguaggio macchina, e quelli ad alto livello, che sono sintatticamente più vicini al linguaggio naturale anglofono e, dunque, più facili da assimilare.

A seconda del caso, una tipologia di linguaggio può essere più efficiente rispetto all’altra: è impensabile, per esempio, realizzare un driver di periferica utilizzando un linguaggio ad alto livello; allo stesso modo, sarebbe estremamente complicato scrivere un’app per smartphone, anche semplicissima, sfruttando un linguaggio a basso livello.

Inoltre, è possibile classificare i linguaggi anche in base a dei modelli astratti di programmazione, suddividendoli in precise “categorie” che ne definiscono l’approccio da utilizzare.

  • Linguaggi imperativi – si tratta di linguaggi il cui modello è basato sui cambiamenti di stato della memoria della macchina: volendo semplificare il tutto, linguaggi del genere “modificano” il contenuto delle celle di memoria dell’elaboratore e, grazie a una serie di operazioni, permettono di ottenere la soluzione del problema. Questi linguaggi si dividono, a loro volta, in linguaggi procedurali (cioè che eseguono, in sequenza, i comandi specificati, con la specifica necessità di allocare manualmente i dati in memoria), a oggetti/object-oriented (che fanno utilizzo di strutture “preconfezionate”, senza bisogno di assegnare manualmente la memoria da dedicarvi) e paralleli (progettati cioè per l’interazione tra più elaboratori che svolgono lo stesso compito in contemporanea).
  • Linguaggi dichiarativi – questa tipologia di linguaggio, invece, prevede un approccio che prescinde dallo stato della memoria ma elabora il problema costruendo delle relazioni tra le entità e i valori di una specifica funzione. Anche i linguaggi dichiarativi si suddividono, a loro volta, in tre categorie distinte: linguaggi funzionali (che basano il loro flusso di esecuzione sul risultato di funzioni matematiche), linguaggi logici (che, invece, basano l’esecuzione sul risultato di condizioni logiche) e, infine, linguaggi relazionali (i quali operano mettendo in relazione diverse entità). L’esempio più conosciuto di linguaggio di programmazione relazionale è SQL.

All’interno di questa guida, come scoprirai tra breve, mi concentrerò in particolare sui tre dei più utilizzati linguaggi imperativi di alto livello esistenti al giorno d’oggi: il linguaggio C (procedurale), Java e Python (entrambi object-oriented).

Linguaggi di programmazione più diffusi

Come ti ho già accennato in precedenza, in informatica esistono tantissimi linguaggi di programmazione e, come puoi facilmente immaginare, non mi è possibile elencarteli tutti. Ciò che vorrei fare, però, è fornirti una panoramica su quelli più conosciuti e usati al giorno d’oggi, così che tu possa avere un’idea del linguaggio da scegliere per iniziare a programmare, basandoti proprio sul tipo di programma che intendi realizzare.

  • – si tratta di un linguaggio di programmazione procedurale che risale al 1972 e che, grazie alla sua enorme flessibilità, può essere applicato praticamente a qualsiasi tipologia di scenario: per esempio, il kernel di Linux, il kernel di Android e numerosi sistemi di gestione di periferiche di uso comune (per esempio alcuni modem), sono interamente scritti in C. Non si tratta di un linguaggio a oggetti (al contrario del suo successore, il C++, che, invece, lo è), pertanto, al fine di utilizzarlo in modo semi-avanzato, è necessario quantomeno avere dimestichezza con l’allocazione, la lettura e la scrittura della memoria.
  • C# – sintatticamente simile al C, il C# è stato progettato da Microsoft, è di sua proprietà (sebbene dal 2014 sia diventato open source) ed è specifico per l’interfaccia grafica di Windows e di tutti i relativi software basati sul framework .NET.
  • Visual Basic – anch’esso a marchio Microsoft, questo linguaggio veniva usato principalmente per la creazione di programmi per Windows dotati di interfaccia grafica. Ai giorni nostri, Visual Basic è completamente inglobato in .NET.
  • Java – è uno dei linguaggi di programmazione a oggetti più conosciuti e apprezzati in assoluto, il quale, grazie alla sua flessibilità, è adatto a un gran numero di impieghi: ti basti sapere che i programmi in Java possono essere eseguiti da qualsiasi sistema operativo desktop, semplicemente installando un software dedicato (chiamato JRE Java Runtime Environment). Piccola curiosità: gran parte del sistema operativo Android, che avrai sicuramente usato almeno una volta, è realizzato in Java.
  • Swift – è un linguaggio di programmazione a oggetti presentato da Apple nel 2014 e permette di realizzare applicazioni per macOS, iOS, watchOS, tvOS e Linux in maniera abbastanza intuitiva. Per le applicazioni iOS viene usato anche il linguaggio Objective-C.
  • Python – si tratta di uno dei linguaggi di programmazione a oggetti con le più ampie possibilità d’impiego in assoluto: nella fattispecie, esso può essere impiegato per realizzare programmi distribuiti (che funzionano in modo “spezzettato” su più elaboratori contemporaneamente), routine di testing, script di automazione, calcoli numerici e molto, molto altro.
  • Delphi – si tratta di un linguaggio di programmazione tutt’oggi usato per la realizzazione di software gestionali dedicati alla gestione di grosse quantità di dati, senza però pretendere molto dalle relative interfacce grafiche.
  • MATLAB – è un linguaggio di programmazione principalmente dedicato al calcolo matematico, particolarmente orientato sulle operazioni tra matrici.
  • R – anche in questo caso, si tratta di un linguaggio di programmazione strutturato per effettuare complessi calcoli matematici, impiegato principalmente per le operazioni di computazione grafica e per il calcolo statistico.
  • Assembly – è uno dei linguaggi di programmazione di basso livello che più si avvicina al codice macchina comprensibile dal processore, dalla sintassi estremamente complessa ma dalla potenza a dir poco smisurata. Per esempio, l’Assembly viene impiegato per implementare i controller per i bus della scheda madre e i driver di periferica.

Come iniziare a programmare in C

Dopo questa infarinatura generica riguardo i linguaggi di programmazione, è arrivato il momento di capire, di fatto, come iniziare a programmare: in questa sezione del tutorial ti spiegherò tutti gli strumenti da avere a disposizione per poter scrivere un piccolo programma in C che, semplicemente, stampi a video la scritta “Ciao, mondo!”.

Operazioni preliminari

Tanto per cominciare, se stai utilizzando Windows, devi innanzitutto procurarti il componente Visual Studio Community, che contiene gli strumenti necessari per compilare un file sorgente (cioè un file contenente il codice del programma) scritto in linguaggio C.

Per procedere, dunque, collegati al sito Internet del programma, pigia sul bottone Download Gratuito e, una volta completato il download del file (vs_Community.exe), avvialo e clicca sui pulsanti Sì Continua per iniziare la procedura di setup. Giunto alla finestra successiva, apponi il segno di spunta accanto alle voci Sviluppo di applicazioni desktop con C++ (collocata nella parte centrale della finestra) e Supporto C++/Cli (collocata, invece, a destra); per concludere, clicca sul pulsante Installa e, a procedura completata, chiudi tranquillamente la finestra.

Su macOS, invece, non hai bisogno di installare alcunché, poiché le componenti fondamentali del linguaggio C sono già incluse nel sistema operativo.

helloworld.c

Ora che disponi di tutti gli strumenti necessari per realizzare un programma, è arrivato il momento di scriverne il codice, utilizzando le istruzioni più adatte al sistema operativo da te in uso. Tanto per cominciare, devi creare il file sorgente del programma utilizzando una delle seguenti procedure.

  • Windows – avvia il Blocco note richiamandolo dalla cartella Accessori Windows collocata nel menu Start (il pulsante a forma di bandierina collocato nell’angolo inferiore sinistro dello schermo). Ad avvio del programma completato, clicca sul menu File residente in alto a sinistra, scegli la voce Salva con nome…, indica l’opzione Tutti i file nel menu a tendina Salva come e digita nella casella Nome file il nome helloworld.c. Salva il file sul desktop di Windows, lasciando aperta la finestra del Blocco Note.
  • macOS – avvia il Terminale richiamandolo dal Launchpad (l’icona a forma di razzo annessa alla barra Dock), digita il comando cd ~/Desktop seguito dalla pressione del tasto Invio e impartisci successivamente il comando touch helloworld.c, sempre seguito da Invio. Fatto ciò, apri il file facendo doppio clic sull’icona appena creata sulla Scrivania.

A questo punto, digita all’interno della finestra dell’editor di testo aperto in precedenza (Blocco NoteXCode) il seguente codice.

#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("Ciao, mondo!\n");
return 0;
}

Completata quest’operazione, salva il file creato precedentemente e chiudi l’editor. A questo punto, non ti resta che compilare il sorgente, creando, dunque, un file che possa essere eseguito dal sistema operativo.

Per farlo, se ti trovi su Windows, avvia il Prompt dei comandi per sviluppatori richiamandolo dalla cartella Visual Studio collocata nel menu Start e digita in sequenza i comandi cd %USERPROFILE%\Desktop cl helloworld.c, entrambi seguiti dalla pressione del pulsante Invio. Per eseguire il programma, non devi far altro che impartire il comando helloworld, sempre seguito da Invio.

Se, invece, ti trovi su Mac, utilizza il Terminale precedente aperto per impartire il comando gcc helloworld.c -o helloworld seguito dalla pressione del tasto Invio, per poi avviare il piccolo programma impartendo il comando ./helloworld.

Come puoi vedere, il piccolo software che hai appena realizzato non fa altro che stampare a video la scritta “Ciao, mondo!”. Hai visto che poi non è stato così difficile?! Se ti interessa approfondire il discorso e scoprire di più sul linguaggio C, ti consiglio di far riferimento all’esauriente guida tematica di HTML.it.

Come iniziare a programmare in Java

È tua intenzione approcciare al mondo della programmazione utilizzando il linguaggio Java? Allora questa è la sezione del tutorial che fa per te: di seguito, infatti, ti fornirò le indicazioni necessarie per realizzare un piccolo programma che stampi a video la scritta “Ciao, mondo!”.

Operazioni preliminari

Come ti ho accennato nelle battute precedenti di questa guida, affinché un programma in Java possa essere eseguito, è necessario che sul sistema operativo in uso sia presente il componente Java Runtime Environment, o JRE. Tuttavia, se è tua intenzione realizzare un programma, devi, invece, affidarti al componente Java Development Kit, o JDK, che contiene tutto il necessario per programmare utilizzando il linguaggio in questione.

Per procurartelo, collegati al sito Internet del programma, apponi il segno di spunta accanto alla voce Accept License Agreement (collocata sotto la dicitura Java SE Development Kit XX) e, successivamente, pigia sul link per scaricare la versione del JDK più adatto al tuo computer: Windows macOS. Per comodità, accertati di scaricare, rispettivamente, i file in formato exe dmg.

A download completato, se ti trovi su Windows, lancia il file scaricato in precedenza e clicca sui pulsanti Next(per due volte consecutive) e Close. Quando hai finito, procedi a regolare le variabili d’ambiente del computer affinché il compilatore Java sia facilmente raggiungibile: per procedere, fai clic destro sull’icona Questo PC collocata sul desktop, seleziona la voce Proprietà dal menu contestuale e scegli la voce Impostazioni di sistema avanzate collocata nella barra laterale della finestra che va ad aprirsi.

Fatto ciò, premi sul bottone Variabili d’ambiente…, clicca sul pulsante Nuova… collocato sotto la dicitura Variabili di sistema, digita la stringa JAVA_JDK nel campo Nome variabile e il percorso di JDK (ad es. C:\Program Files\Java\jdk11.0.2) nel campo Valore variabile; infine, clicca sul pulsante OK per salvare i cambiamenti.

Tornato alla finestra precedente, pigia sulla variabile Path collocata nell’elenco delle Variabili di sistema, premi sul pulsante Modifica e cambia il campo Valore variabile inserendo in esso la stringa %JAVA_JDK%\bin; in coda a quanto già presente. Clicca poi sul pulsante OK per salvare i cambiamenti.

Se, invece, ti trovi su macOS, devi semplicemente lanciare il pacchetto .dmg scaricato in precedenza, avviare il file .pkg collocato al suo interno e procedere con l’installazione cliccando sul pulsante Continua, poi su Installa (digitando, quando richiesto, la password del Mac) e, infine, sul bottone Chiudi.

HelloWorld.java

A questo punto, non ti resta che creare il codice sorgente del programma: seguendo gli stessi passaggi che ti ho indicato in precedenza, crea il file HelloWorld.java utilizzando la procedura più adatta al sistema operativo da te in uso. Quando hai finito, scrivi al suo interno il seguente codice.

import javax.swing.*;
public class HelloWorld {
public static void main(String[] args) {
JFrame finestra = new JFrame("Il mio primo programma Java");
JOptionPane.showMessageDialog(finestra, "Ciao, mondo!");
System.exit(0);
}
}

Quando hai finito, salva il file sorgente, chiudi l’editor di testo ed esegui il programma utilizzando uno dei metodi che ti indico di seguito.

  • Windows – avvia il Prompt dei comandi richiamandolo dalla cartella Strumenti Windows collocata nel menu Start, digita il comando cd %USERPROFILE%\Desktop seguito dalla pressione del tasto Invio per “spostarti” sul desktop, dopodiché impartisci in sequenza i comandi javac HelloWorld.c e java HelloWorld per compilare ed eseguire il programma appena creato.
  • Utilizzando il Terminale di macOS aperto in precedenza, digita il comando cd ~/Desktop per spostarti sulla Scrivania del Mac ed esegui le medesime istruzioni viste su Windows per compilare ed eseguire il programma.

Come puoi vedere, il programma appena creato mostra una semplice finestra di dialogo recante la dicitura “Ciao, mondo!”: non è stato affatto difficile, vero?

Ad ogni modo, per approfondire il discorso su Java, puoi consultare liberamente le mie guide su come imparare Java e come programmare in Java, in cui ti ho insegnato le basi della programmazione in questo linguaggio. Per informazioni ancor più specifiche, ti consiglio di rivolgerti al tutorial tematico disponibile su HTML.it.

Come iniziare a programmare con Python

Dopo aver letto l’introduzione di questa mia guida, sei rimasto incuriosito da Python e ora vorresti capire come iniziare a programmare avvalendoti di questo linguaggio? Perfetto, credo proprio di poterti aiutare: di seguito, ti illustrerò nel dettaglio come procurarti gli strumenti utili allo scopo e, per concludere, come realizzare ed eseguire un semplicissimo programma. Pronto per partire? OK, andiamo.

Operazioni preliminari

Dunque, per prima cosa, collegati al sito Internet di Python e clicca sulla versione del software più adatta al tuo sistema operativo (ad es. Python X.X.X installer EXE per Windows x86-64 se stai usando Windows a 64 bit, Python X.X.X installer per Mac OS X 64-bit/32-bit se stai usando un Mac, e così via) e, a download completato, avvia il file appena ottenuto.

A questo punto, se ti trovi su Windows, apponi il segno di spunta accanto alla casella Add Python X.X to PATH, premi sui pulsanti Install Now  e attendi che il processo d’installazione venga automaticamente portato a termine. Per concludere e uscire dal programma di setup, pigia sul bottone Close.

Se, invece, stai usando un Mac, lancia il file .pkg scaricato in precedenza, premi per tre volte consecutive sul pulsante Continua, poi sui pulsanti Accetta Installa, immetti la password del Mac nell’apposito campo e concludi il processo pigiando sui pulsanti Installa software e Chiudi.

HelloWorld.py

Una volta installato tutto l’occorrente, puoi finalmente realizzare ed eseguire il tuo primo programma in Python. Dunque, tanto per cominciare, crea un nuovo file chiamato helloworld.py utilizzando le istruzioni che ti ho fornito in precedenza, aprilo e scrivi al suo interno il codice seguente.

print "Ciao, mondo!"

Non sorprenderti della semplicità di questo codice: Python è un linguaggio tanto potente quanto flessibile e dispone di numerose funzioni “integrate” di base, che non richiedono l’importazione di librerie esterne. A questo punto, salva il file e segui uno dei passaggi seguenti, in base al sistema operativo che possiedi.

  • Windows – apri il Prompt dei comandi richiamandolo dalla cartella Strumenti di Windows residente nel menu Start e digita in esso il comando cd %USERPROFILE%\Desktop seguito dalla pressione del tasto Invio.
  • macOS – usando il Terminale aperto in precedenza, posizionati sulla Scrivania impartendo il comando cd ~/Desktop e premendo il tasto Invio.

Poiché python è un linguaggio interpretato e non compilato, è sufficiente digitare il comando python HelloWorld.py per eseguire immediatamente il piccolo programma appena realizzato. Per ulteriori informazioni su questo linguaggio, ti invito a consultare la guida specifica realizzata da HTML.it.

Come creare un programma

Ora che disponi di tutte le nozioni necessarie per iniziare a programmare, potresti pensare di prendere la cosa un po’ più seriamente e di capire, nel concreto, come creare un programma vero e proprio utilizzando il linguaggio che più preferisci.

A tal proposito, ti consiglio un’attenta lettura della mia guida tematica sull’argomento: in essa, ho avuto modo di spiegarti dettagliatamente tutte le parti del ciclo di vita di un programma, per poi fornirti l’esempio pratico di una calcolatrice funzionante scritta in linguaggio C. Fidati, vale davvero la pena darle un’occhiata!