Newsgroup: it.comp.programmare
Titolo: 10 suggerimenti di programmazione per principianti e non

http://www.marcobruni.info/wordpress/10-suggerimenti-programmazione-principianti.html
 
 

 
http://www.marcobruni.info/wordpress/10-suggerimenti-programmazione-principianti.html
 
 
So, first of all...
Se vuoi scrivere in inglese scrivi tutto in inglese; praticamente tutti nel
mondo conoscono "ciao" e "pizza", molti "buongiono" e alcuni di quelli che
hanno fatto le vacanze in Italia "va bene", ma di sicuro nessuno può capire
"CHIAMATELOOO" o "CALMAA".
 
Seconda cosa, tutti i tuoi "tips" sono riassumibili in un classico 
"calm down and RTFM".
 
In passato ho anche dovuto tenere corsi di programmazione e, secondo me, il
più grosso ostacolo che si incontra è quello di trovare persone che prendono
la cosa come un.. non so.. una lotta per costruire una bacheca di legno.
Ecco, no. Programmare bene non è facile. E' difficile. Bisogna studiare. Io,
come uno che ha più esperienza, posso dare consigli, ma alla fine l'unica
cosa che occorre tenere presente è che, nonostante i linguaggi e gli SDK
moderni ci facilitino il lavoro, si tratta sempre di una branca della 
matematica.
Rimango e rimarrò sempre dell'idea (anche se non molti la pensano come me)
che per riuscire a programmare bisogna capire in ogni singolo step, dal tasto
premuto al feedback a video, passando per le librerie, la cache, i controller,
i buffer, i flipflops, i transistor and back again.
Non è che io ci riesca su tutto, ma a questo punto, e quando non so studio.
Del resto, il fatto che i programmatori storici (immaginati uno qualsiasi tra
quelli che ha scritto qualsiasi software dopo 10 anni ancora si usa), dopo
anni di lavoro, sono venuti fuori con dei "trivia" simpatici non vuol dire
che tutti devono prenderli come legge, anzi! Significa solo che loro sono così
bravi da poterci scherzare su. Beh, noi (almeno, io) no.
 
Quindi nulla, personalmente non ho apprezzato molto il post perché IMHO
rientra nella filosofia dei costruttori di bacheche di legno, cosa che
didatticamente è scorretta nei confronti di chi inizia.
 
Ciao!

 Se vuoi scrivere in inglese scrivi tutto in inglese; praticamente tutti 
 
Non sono l'autore dell'articolo, l'ho solo postato qui perché magari
poteva interessare a qualcuno... Evidentemente avrei dovuto essere
più prolisso nella segnalazione, sorry!
 
 

 i buffer, i flipflops, i transistor and back again.
 
IMHO questo serve all'efficienza, ma non a saper programmare. Anzi, 
direi che tutti i linguaggi cercano proprio di far vedere il meno 
possibile "cosa c'� sotto", per non avere dipendenze dall'HW.
 
E' vero che un buon programmatore deve saper valutare le prestazioni di 
un algoritmo, nel senso di sapere almeno cosa significa O(n) e 
compagnia. Deve saper modellare i dati, saper scegliere le strutture 
adatte e le relazioni che le legano, creare gli oggetti e le loro 
gerarchie. Saper progettare un DB. Questo � saper programmare.
 
Poi, conoscere il framework XYZ, la libreria Zippatron, il linguaggio 
StoLang XXX edition... sono tutte cose in pi�, ma NON fanno il buon 
programmatore. Sono un di pi�

 possibile "cosa c'� sotto", per non avere dipendenze dall'HW.
 
Non credo che parlasse di efficienza. Semmai parla del fatto che tutte le
astrazioni "perdono" (sgocciolano?) (cft. A. Martelli, J. Spolsky).
 
Semplicemente, se sviluppi ad un livello X, scoprirai che ti arrivano
(frequentemente) errori almeno da un livello X-2. Il che vuole dire che se
non conosci *almeno* X-1 e X-2 stai facendo l'apprendista stregone.
 
Ora, credo che la maggior parte dei programmatori non arrivino alla
meccanica quantistica, ma almeno sapere in dettaglio come funziona un
sistema operativo moderno, un database e le reti possa essere considerato
il minimo sindacale.

 gerarchie. Saper progettare un DB. Questo è saper programmare.
Perche? i DB non sono tutto nella vita :-)
AA.
 
 

 il minimo sindacale. 
 
Direi anch'io.
 
Ciao!

 Perche? i DB non sono tutto nella vita :-)
 
Rientrano nel "saper modellare i dati" :-)