Sample codeLa gente pensa che per programmare basta semplicemente sapere come funzionano i soliti quattro blocchi condizionali: if, for, while e do while. Conosciuti questi allora puoi dire di essere un programmatore. Invece non è affatto vero! Può sembrare una cosa scontata e banale, ma per potersi reputare un “buon programmatore” non basta sapere la sintassi di un linguaggio qualsiasi di programmazione, bisogna anche avere intuito e saper pensare per algoritmi. In poche parole bisogna sapersi immedesimare in un calcolatore e non è semplice, soprattutto per chi parte come autodidatta. Per forza di cose, la logica necessaria a comprendere la soluzione di problemi semplici o complessi con gli occhi di un computer e non di un essere umano non si impara sui libri né tanto meno su internet. Purtroppo, ciò che questi ultimi insegnano, non sono altro che i mezzi necessari per far capire alla macchina cosa deve fare: ancora una volta la sintassi.

La logica si apprende sbattendo la testa su carta e penna, facendo esercizi che non serviranno mai nella vita, ma che aiutano a pensare per algoritmi. Questo è un messaggio che mi insegnò il mio professore delle superiori e che però non fu recepito dagli studenti perché richiedeva uno sforzo mentale che andava ben oltre lo studio a memoria delle pagine di un libro. La logica non si impara a memoria, si deve comprendere!

Il problema di internet è che in un corso on-line di C++ (un linguaggio a caso) non verrà mai chiesto a chi legge di scrivere l’algoritmo che fa la somma di due numeri in colonna, innanzitutto perché la prima cosa che farà il lettore sarà quella di cambiare sito, secondo perché l’algoritmo esiste già e non c’è motivo di reinventare la ruota.

Ma se non si studia sui libri e neanche su internet, allora dove si impara? La risposta più ovvia sarebbe a scuola, ma come diceva un altro mio professore usare la parola “ovvio/a” è assai pericoloso. Infatti non è per niente ovvio! Nella maggior parte dei casi, l’insegnamento dell’informatica nelle scuole si limita all’uso del pacchetto Microsoft Office o al più di Internet Explorer… O_o

Quindi c’è poco da fare, bisogna avere fortuna e sperare di trovare una persona (professore o amico che sia) che ti indichi la via giusta.

Ma perché parlo di questo? Perché per l’ennesima volta ho avuto la certezza che chi crea siti internet non è definibile come programmatore.
Tumblr di recente ha aggiornato il suo sistema di code, ma com’è giusto che sia non ha portato altro che problemi. Quando cominciano ad esserci tanti elementi in coda inizia a comparire un simpatico errore:

Tumblr Error

Questo di fatto impedisce di raggiungere gli ultimi post in coda. Premendo il tasto OK il messaggio ricompare obbligandoti a causare un’uscita forzata del browser. Il problema però non si ferma ad un semplice difetto di grafica. Ieri sera, dopo aver ucciso il processo di Firefox per liberarmi di questo odioso messaggio, ho scoperto che tutti i miei elementi in coda erano stati pubblicati contemporaneamente…

Come si può intuire il problema è dovuto ad un errore di programmazione nel javascript incorporato nella pagina, ma se su un sito come Tumblr la negligenza di certa gente può riversarsi massimo nel fastidio dell’utente, su siti più importanti come possono essere quelli delle banche potrebbe portare alla rovina di un’azienda (vabbeh forse è un po’ esagerato :D).

Per molti “programmatori” la creazione di pagine in html, php o ajax è solo un gioco, ma non bisogna dimenticare che sono pur sempre dei linguaggi interpretati da una macchina e, sebbene i browser riescano ad arginare gli errori umani correggendoli in fase di renderizzazione, a volte non riescono a capire cosa intendeva fare il web designer ed ecco che sussistono errori grafici e crash dei plugins.

Vorrei lasciarvi con una riflessione. Avete notato che tutti i siti che riportano l’icona del W3C validator in realtà non passano mai il test? Si sono comprati l’icona???

FAIL