Questo è il primo di una serie di articoli di System Innovation Group SRL su cosa vuol dire programmare, quale linguaggio utilizzare e come realizzare un progetto.
Potrei definire Programmare come l’arte per risolvere problemi più o meno complessi tramite istruzioni fornite al computer.
Indice
- Tutti i giorni risolviamo problemi di vita quotidiana “programmando”.
- Assegniamo un compito al Robot
- Programmare i passi da compiere.
- Istruzioni da fornire al Robot (Programma)
- Programmare l’istruzioni ripetitive
- Funzioni
- Programma con Funzioni
- Programmare nuovo lavoro al Robot
- Don’t Repeat Yourself
- Non reinventare la ruota
- Sintesi
Tutti i giorni risolviamo problemi di vita quotidiana “programmando”.
Sarà capitato a tutti di risolvere un grosso problema dividendolo in problemi più semplici.
Un passo alla volta.
La stessa cosa capita in informatica.
Si risolvono i problemi un passo alla volta.
Assegniamo un compito al Robot
Ad es. un problema potrebbe essere istruire un piccolo robot per andare dal punto A al punto B, prendere un oggetto e poi ritornare al punto A e posarlo.
Programmare i passi da compiere.
I passi potrebbero essere i seguenti:
- Andare al punto B
- Prendere l’oggetto
- Andare al punto A
- Posare l’oggetto (fine)
Ipotizziamo che la distanza sia di 1 metro e che il nostro Robot faccia un singolo passo di 20 cm alla volta. Cinque passi in tutto.
Istruzioni da fornire al Robot (Programma)
Sono al punto A
- Fai un passo in avanti (20 cm)
- Fai un passo in avanti (40 cm)
- Fai un passo in avanti (60 cm)
- Fai un passo in avanti (80 cm)
- Fai un passo in avanti (1 m sono arrivato al punto B)
- Prendere oggetto
- Fai un passo indietro (80 cm)
- Fai un passo indietro (60 cm)
- Fai un passo indietro (40 cm)
- Fai un passo indietro (20 cm)
- Fai un passo indietro (Sono al punto A)
- Posare l’oggetto
Abbiamo analizzato e risolto il problema.
Questa sequenza di istruzioni è un Programma.
Programmare l’istruzioni ripetitive
Sicuramente avrete notato che nel nostro programma ci sono delle istruzioni che si ripetono.
Ad esempio le 5 istruzioni per spostare il robot dal punto A al punto B sono uguali, come lo sono quelle per ritornare al punto di partenza.
Rendiamo il nostro programma più efficiente ed elegante.
Funzioni
Immaginate di mettere le 5 istruzioni per andare avanti dentro una scatola.
Le daremo il nome di “Spostati di 1 metro in avanti”
Quando eseguiremo l’istruzione “Spostati di 1 metro in avanti” il nostro programma eseguirà le istruzioni contenute nella scatola: i 5 passi che sposteranno di 1 metro il nostro robot.
Faremo la stessa cosa per le 5 istruzioni per far tornare indietro il nostro robot.
Chiameremo questa scatola “Spostati di 1 metro indietro”
La scatola che abbiamo creato, in genere viene chiamata funzione. Il nome può cambiare secondo il linguaggio di programmazione scelto.
Programma con Funzioni
Il nostro problema si è semplificato in modo più efficiente riducendosi alle seguenti istruzioni:
- Spostati di 1 metro in avanti (Sono arrivato al punto B)
- Prendi oggetto
- Spostati di 1 metro indietro (sono arrivato al punto A)
- Posa l’oggetto
Quindi le nostre 12 istruzioni iniziali si sono ridotte a 4.
Programmare nuovo lavoro al Robot
Ora aggiungiamo un ulteriore lavoro al nostro robot.
Deve prendere un altro oggetto nel punto C dopo aver preso quello situato nel punto B.
Utilizzeremo la nostra funzione precedentemente creata per il nuovo programma.
- Spostati di 1 metro in avanti (Sono arrivato al punto B)
- Prendi oggetto
- Spostati di 1 metro in avanti (sono arrivato al punto C)
- Prendi secondo oggetto
- Spostati di 1 metro indietro (sono arrivato al punto B)
- Spostati di 1 metro indietro (sono arrivato al punto A)
Don’t Repeat Yourself
Nel programma precedente abbiamo utilizzato la funzione del primo programma.
Il riutilizzo del codice è uno dei principi della programmazione.
I programmatori utilizzano l’espressione DRY che sta per Don’t Repeat Yourself anche se ha un significato più ampio.
Non scrivere codice che si ripete spesso (ad es. fai un passo in avanti), ma cerca di creare delle scatole funzioni per poi richiamarle nel programma.
Non reinventare la ruota
Altro principio cardine della programmazione è: “Non reinventare la ruota“, che in poche parole vuol dire che se esiste del codice già scritto anche da altri per arrivare alla soluzione del tuo problema usalo.
Non perdere tempo a riscrivere il codice nuovamente.
Sintesi
la programmazione è la giusta alchimia tra soluzione del problema, efficienza e eleganza.
Si diventa buoni programmatori con l’esperienza, iniziando a risolvere piccoli problemi, studiando e confrontandosi con altri programmatori.
Ci sono tantissime risorse in rete per apprendere la programmazione.
La cosa migliore è iniziare il prima possibile, soprattutto da bambini.
Non è inusuale trovare scuole elementari che offrono corsi di programmazione e robotica.
Si può apprendere moltissimo dai numerosi canali di youtube , su stackoverflow o sui Discord e cercate di non saltare da un linguaggio all’altro, ma di approfondire quanto possibile.
Vi aspetto nei prossimi articoli.
Buon coding a tutti.