July 20, 2025
#programming #reflection #nuxt #vue
3 min read
My first complete program with Racket
Dopo 3 anni che lavoro come sviluppatore web full-stack, ho deciso di iniziare a studiare Computer Science alla OSSU. Questo perch questi 3 anni mi sono reso conto di voler veramente imparare a programmare, piuttosto che realizzare "solo" siti web.
Dopo 3 anni che lavoro come sviluppatore web full-stack, ho deciso di iniziare a studiare Computer Science alla OSSU. Questo perch questi 3 anni mi sono reso conto di voler veramente imparare a programmare, piuttosto che realizzare "solo" siti web.
Ho notato la quantità di astrazione che c'è in ogni cosa che si impara durante l'apprendimento e lo sviluppo nel mondo dello sviluppo web e che ci sta portando a non realizzare neanche più una semplice funzione con la nostra testa, ma piuttosto scarichiamo un'intera libreria per utilizzare solo "l'1%" che ci risolve il problema. Risultato? Con lo stesso tempo che abbiamo impiegato a cercare la libreria su internet, leggere la documentazione, cercare cosa fa al caso nostro e implementare quest'ultimo, potevamo investire questo tempo per costruire da soli una soluzione.
Penso che questo sia sicuramente dettato dal fatto che la vita professionale prevale sulla vita personale e quindi il tempo e il rischio che ci prendiamo a implementare le cose di testa propria sia sempre più limitato e i manager si aspettano sempre più codice di qualità, che altri hanno già prodotto e quindi ci conviene utilizzarlo
Come se non bastasse si è aggiunta anche l'ai, che come previsto, ci sta portando ad avere una attività cognitiva più debole e una connettività cerebrale ridotta, che per le nostre capacità nella programmazione, può solo essere una cattiva notizia. Pigrizia + AI, quindi, mi hanno fatto capire quanto è importante proteggere, potenziare e preservare le nostre competenze in questo ambito.
Dopo aver realizzato ciò, naturalmente mi sono ritrovato a dover prendere una decisione:
- fregarmene di quel che avevo appena realizzato
- agire per aumentare le mie competenze
Ovviamente non ho resistito un momento a scegliere la seconda opzione, dopo aver trovato una quantità abnorme di materiale didattico gratuito gentilmente organizzato dalla community della OSSU
Ortogonalità
L'unico concetto di cui ho davvero piacere parlarne, è quello dell'ortogonalità
La cosa che più sto apprezzando nell'aver seguito il corso di Systematic Program Design, fatto da Gregor Kiczales , è di aver realizzato come seguendo un processo sistematico di design per realizzare un programma, ci porti in maniera più logica e interessante a realizzarlo.
Vi consiglio questo articolo di Matthias Felleisen
Realizzare un programma seguendo un metodo sistematico di design come quello insegnato in queste prime lezioni di Gregor
Seguendo un metodo sistematico, comprendi pienamente la potenzialità di un programma ortogonale, che segue quindi un processo di sviluppo modulare e che rende indipendente ogni sua parte l'una dall'altra.
Efficacia tecnica del metodo Possibilità di concentrarsi su singole parti che compongono il programma
Gratitudine
La parte più soddisfacente è senza dubbio vedere un programma, da noi realizzato, funzionare, ma la gratitudine che si prova durante il processo di sviluppo non l'avevo ancora provata in questo modo.
Intendo dire che non ho mai provato così tanta gratitudine nel realizzare un programma, prima ancora di finirlo.
Proprio sviluppando singolarmente queste parti del programma, provi la gratitudine nell'averla sviluppata correttamente, cosciente del fatto che l'insieme di queste parti di codice che stai scrivendo, ti porteranno a far funzionare il programma finito.
Non per niente la gratificazione immediata è un concetto che calza a pennello con il concetto di sviluppo di sistemi ortogonali nella programmazione. (mettere fonti)
Gratitudine porta voglia di migliorare, e quindi di fare programmi migliori