Come si imparare a programmare?
Sicuramente no guardando esempi iper-banali di codice. Quelli tipicamente mostrati nei tutorial base di programmazione. Quindi, come si impara?
Ne parlo in questo video:
Nel video alla fine cerco di argomentare quali sono quindi quei tutorial che riescono ad essere effettivamente utili. Se vogliamo provare a caratterizzarli, si potrebbe dire che questi tutorial vanno a catturare “problemi reali dell’informatica”.
Nel senso…Avete presente tutti quei tutorial che vi spiegano la programmazione ad oggetti facendo l’esempio della persona, che poi diventa uno studente, e via dicendo? Bene il codice scritto in tutti questi esempi non serve ad una cippa. Non risolve nessun problema. Non ha nessuna utilità. È solo usato come analogia per spiegare “l’idea” della programmazione ad oggetti. Cosa per altro abbastanza malsana che non aiuta veramente ad imparare a programmare (Ebbene si, la programmazione ad oggetti, e nello specifico il modo in cui è spiegata, con il tipico dogmatismo delle religioni, non è sempre e comunque una cosa buona e giusta).
Comunque, ritornando al topic. Ok quindi, siamo densi di roba inutile. Ma c’é anche tanta roba utile. Eh si, internet per fortuna è un posto bello grosso, e contiene al suo interno un po’ di tutto.
A seguire una lista di tutorial che sono “utili”, nel senso che vanno ad implementare, totalmente o parzialmente, soluzioni a problemi “significativi” nel contesto informatico.
-
Text Editor di Antirez
Writing an editor in less than 1000 lines of code, just for fun - <antirez> -
Build Your Own Text Editor (basato su quello di Antirez)
Build Your Own Text Editor -
Let’s code a TCP/IP Stack
Let's code a TCP/IP stack, 1: Ethernet & ARP -
Let’s build GTP: from scratch, in code, spelled out.
https://www.youtube.com/watch?v=kCc8FmEb1nY -
Write a file system from scratch in Rust
Writing a file system from scratch in Rust | carlosgaldino -
Chip-8 technical reference
Cowgod's Chip-8 Technical Reference -
Write your Own Virtual Machine
Write your Own Virtual Machine -
Build Your Own X
GitHub - codecrafters-io/build-your-own-x: Master programming by recreating your favorite technologies from scratch.
L’ultima risorsa in particolare contiene un sacco di tutorial a progetti del genere. Tutti basati sulla creazione di tecnologie utilizzando il software.
Notate, tra l’altro, come queste risorse sono praticamente solo in inglese? Cosa si trova di simile in italiano? Di cose che vanno oltre le basi basi dico… Per questo l’inglese è fondamentale.