sabato 30 gennaio 2021

Coding

Pochi giorni fa ho sostenuto l'esame di informatica di primo anno alla trieannale di Fisica. In meno di 3 mesi e una quarantina di lezioni fra teoria e pratica si riesce ad imparare i rudimenti della programmazione del linguaggio C i quali potrebbero bastare per proseguire da autodidatta ad approfondire anche le tecniche di programmazione più evolute e scrivere codici più complessi.

Ho scoperto che il linguaggio C nella storia dell'informatica ha rappresentato una pietra miliare della programmazione, sviluppato nei primi anni '70 è sopravvissuto per ben 50 anni ed è ancora oggi ampiamente utilizzato. Sulla base del C sono poi stati sviluppati il C# e il C++ ma per certi versi le logiche che usa sono alla base di gran parte dei linguaggi di programmazione attuali, insomma un vero capostipite di quest'arte che è la scrittura di un software o coding.

Definire arte il coding potrebbe sembrare eccessivo ma lo si fa per far capire ai profani che "programmare" non è sono un lavoro necessario per fornire ad un computer dei software che lo trasformino da una accozzaglia di chips di sicilio perfettamente inutile in una macchina potente e versatile. Chi approccia questa pratica, chi lo fa per professione capisce subito che è molto di più di questo. Per scrivere un codice bisogna esercitare la propria creatività, il bello viene subito dopo la conoscenza delle procedure e delle istruzioni che costituiscono la sintassi del linguaggio. Se dovessi fare un paragone con gli scacchi, la primissima fase consiste nell'imparare le mosse, ma saper muove i pezzi non vuol dire essere dei bravi giocatori di scacchi, anche in questo caso il piacere di giocare a scacchi viene dall'imparare a scegliere le mosse migliori per avere un vantaggio sull'avversario.

La creatività serve a risolvere dei problemi per lo più di logica matematica, saper ottenere il risultato voluto non è la soluzione unica di un problema ma la visione di tanti sentieri che ti portano alla meta, avere questa visione ampia davanti e fare delle scelte, in base a base a qualunque criterio venga preferito. Posso scrivere il codice più efficiente, il più pulito da punto di vista della sintassi, il più preciso, il più prudente, quello che tiene conto di tutte le eccezioni, quello più descrittivo che accompagna passo passo l'utente nella soluzione del suo problema. Insomma il programmatore ha la più ampia e quasi infinita rosa di possibilità davanti a se, che nel momento il cui scrive è il creatore di questa macchina che sta costruendo con la sua inventiva.

Le impressioni che ho avuto in questi mesi quando programmavo erano quelle di avere a che fare con 2 "persone" l'utente, chi deve eseguire quel programma e il processore chi deve fare i calcoli per dare la risposta all'utente. Mettersi nei panni di chi dovrà usare il software è necessario per considerare tutte le eccezioni, mentre mettersi nei panni della cpu richiede una discreta conoscenza di come questa funziona, a volte è proprio necessario chiederci quanta potenza di calcolo o quanta memoria serve per eseguire un certo compito, e quindi come posso scrive il mio codice in modo da ottenere il risultato con il minimo utilizzo di risorse.

Insomma se chiamare il programmatore un artista può sembrare esagerato se non altro sarebbe più calzante definirlo un artigiano, uno che ci mette la testa, concentrazione, fantasia, creatività, per costruire una macchina che svolga un certo compito nel modo migliore possibile e che funzioni bene anche se alla guida ci si mette un bambino prevedendo e prevenendo tutti gli errori che potrebbe fare.

 



1 commento:

Anonimo ha detto...

Ciao Marco, io invece ho imparato a programmare in BASIC con l'Apple // c. Poi ho acquistato la calcolatrice scientifica SHARP PC-1401 con statistica ma soprattutto programmabile in BASIC. L'ho comprata quando mi sono iscritto alla Facoltà di Chimica e l'ho utilizzata per risolvere un compito della materia Disegno di macchine; ho programmato un breve codice che mi desse i punti di una parabola dall'eq.ne data da tracciare sulla carta millimetrata. Dopo pochi minuti necessari a realizzare il codice ho poi ottenuto le coordinate dei punti, che riportavo sulla carta. Ho terminato prima dei miei colleghi chimici in erba. Nello stesso anno sono andato dal prof. di Chimica Teorica che mi ha registrato sui miei floppy 4,25" decine e decine di programmi di chimica: giochi, esercitazioni, ecc che facevo girare sul mio Apple //c o assieme ai miei colleghi sui computer della Facoltà di Fisica su computer Apple //e ai quali anche noi chimici potevamo accedere per qualche tempo. Poi a casa "smontavo" i programmi in BASIC datomi dal prof. di Chimica Teorica Leonello Paoloni e utilizzavo linee di codice per imparare la programmazione o da utilizzare per realizzare i miei programmi. Il BASIC l'ho studiato su libri della McGraw-Hill che acquistavo scrivendo alle case editrice e pagando in contrassegno ogni invio. Volevo imparare a programmare in #C o C++ perché partendo da questo si può programmare il codice per realizzare le App di Mac OS X o iOS. Poi ho desistito per pigrizia. Complimenti per l'esame di programmazione superato a Fisica. Santi.