Non so se ve l’ho già detto o se si era capito da qualcosa che ho scritto, ma io per lavoro programmo. Non mi definirei un programmatore ma programmo. Non lavoro in una ditta che fa programmi, ma programmo. Io manco volevo farlo il programmatore, ma programmo. Che poi diciamocela tutta, avere un computer e non programmarci è come chessò scoprire Belen Rodriguez dentro al letto e non trovarsi l’uccello. A me la Rodriguez sta pure sulle palle, tra l’altro.
Adesso vi racconto pure perché faccio il lavoro che faccio. Come ogni persona della mia generazione ho cominciato con i computer perché mi piacevano i videogiochi. Poi è arrivato Internet. Vi giuro io penso agli anni tipo 92/96, quando quei 486 da 4 e passa milioni arrivavano nelle nostra camere e mi domando a cosa cazzo servissero. Cioè a che serviva un computer prima di Internet? Non ho mai trovato una risposta, se ci penso troppo mi manca il respiro.

Comunque sia è arrivato Internet, e siccome io sapevo fare due cerchi con Photoshop e sapevo disegnare i bottoni di un menu, mi sono messo a fare i siti. Un sito in verità, una roba mia…di videogiochi tra l’altro…era brutto come il peccato e scritto peggio dei titoli dei gruppi di Facebook, però c’ho trovato lavoro come Webmaster e Redattore. Solo dopo ho imparato a fare i siti e più o meno negli stessi anni ho imparato a scrivere. Il fatto è che mese dopo mese (che quando lavori, pensate all’assurdità della cosa, il capo ti dice di fare una cosa e tu devi farla!), ho imparato diversi linguaggi di programmazioni, poi un corso, poi libri, poi Flash e poi tante altre cose. Alla fine il mio mestiere è passato dal fare due cerchi su photoshop a scrivere kilobyte di righe di codice, e pare che sia pure bravo. Non bravo bravo, ma bravo sì.
La programmazione da quando è nata è cambiata molto, ma ci sono dei concetti che ne sono rimasti alla base, le condizioni e le funzioni. Le condizioni sono delle verifiche sui dati che permettono di fare una cosa piuttosto che un’altra. A voce sarebbe una cosa del genere. Se io dico “Avanti” apri la porta, sennò non mi devi rompere i coglioni.

Codice:
If (risposta==”avanti”) {
apriLaPorta()
}else{
fottiti()
}

L’altra è la funzione. La funzione è una cosa che prende dei parametri in ingresso, e restituisce qualcosa in uscita. Ora, se la funzione la scrivi tu sai quello che fa precisamente, ma può anche essere che la funzione sia già pronta e tu devi solo sapere come si deve usare. Ad esempio, se io vado in cucina e porto alla cuoca i tortellini e la panna, so che dopo 10 minuti c’ho i tortellini alla boscaiola, e me ne posso anche fregare di cosa sia successo in mezzo. Ovvio che se la funzione che fa quello che serve non esiste dovremmo farla noi.

Sui manuali una funzione la descrivono così:
function Somma(A, B){
return A+B
}

Poi ti fotte il fatto che non capisci il motivo per cui dovresti fare Somma(2,3) per avere 5, invece di fare 2+3, ma quello è perché è l’esempio più semplice. Una funzione può avere tanti parametri in ingresso (di qualsiasi tipo, numeri, testi, date, altre funzioni, e mi fermo qui che sennò poi mi rubate il lavoro) e un risultato in uscita, che non è necessariamente un calcolo algebrico.

Tutto questo per dirvi che? Per dirvi che programmo, e in quanto abituato a programmare il mio cervello ragiona con parametri in ingresso e parametri in uscita. Anche quando non lavoro, anche quando sto con le persone. Se io dico 3 dico 3, non dico 3 e mezzo o forse 3. E se passo gli stessi dati alla stessa funzione il risultato sarà sempre lo stesso, non è che qualche volta può cambiare. Possibile che sia l’unico a stare attento ai parametri in ingresso e a quelli in uscita? I dati non sono interpretabili, i dati sono oggettivi, inequivocabili, una bibbia. Cioè, se litigo con qualcuno e questo mi manda pesantemente a fanculo, prendo atto che l’output è vaffanculo, e non che è “ti ho detto vaffanculo ma perché tu mi hai detto così e allora io ti ho risposto così ma non volevo, tra l’altro poi mi sono reso conto che avevi ragione”, se non volevi non dovevi mandarmi a fanculo, io quello che ti ho detto te lo volevo dire, mica te l’ho detto perché volevo vedere il risultato. Se mi mandi a fanculo io registro la cosa. Se io dico A è A, perché se gli altri dicono B, capace che che sia C, o B negato (la negazione, come dice la parola è il contrario del dato, ovvero se nego vero ottengo falso)?
If Then Else, più facile di così? Dati in ingresso, dati in uscita.
Probabilmente ho un atteggiamento troppo analitico di fronte ad un fenomeno che è solo impulsivo. Oppure è il mondo tutto che dovrebbe imparare a programmare.

Che programmare poi non è così male, se non per il fatto che quando guardano verso il tuo monitor ti prendono per un marziano, se non che cominci ad usare caratteri quali | e § che non servono ad un cazzo e quindi vengono usati come delimitatori di dati, se non che usi più graffe che tonde, se non che ogni 2 anni devi ricominciare da capo con un nuovo linguaggio. Però la programmazione è anche disciplina, regole, rigore, sintassi. Cazzo io ho imparato a scrivere per le persone dopo aver imparato a scrivere per le macchine, e sì che la scuola l’avevo fatta!

Però una cosa le macchine e le persone forse ce l’hanno in comune, fanno esattamente quello che gli dici di fare, e non quello che credi di avergli detto di fare.