E con questo hai appreso la seconda regola del programmatore, regole che sono:
Prima facciamolo funzionare, poi più bello e funzionale, e dopo, per ultimo, veloce ed efficiente.
Questi sono belli propositi, ma di solito non si supera mai la prima fase, perché i clienti hanno fretta e vogliono spendere poco. Poi, soprattutto se proprietari del codice, si rendono conto che per modificare il codice o aggiungere una funzionalità, non ci capiscono nulla, e dovranno abbellire per forza. Intanto hanno già guadagnato una paccata di soldi, e i loro clienti chiedono delle chicche e massima velocità, e così si arriva al prodotto finale.
Con l'esperienza però, che si traduce in molto tempo, diciamo dieci anni, si costringe il cliente primario di attendere, prima di averlo fatto bello, convincendolo che l'assistenza al prodotto sarà molto più semplice, e difatti lo è.
Codice che rispetta le regole può essere letto con molta rapidità, e compresa la volo. Io ad esempio, riesco a leggere il codice mentre scorro con Pagina Su/Giù a tutto gas, e trovare il posto giusto per applicare la modifica. Ci metto pocchissima documentazione, che facilita questo scorrimento, e quando occorre, soltanto all'inizio di punti cruciali, di solito all'inizio di una procedura. Un programma di 30 mila righe, e questi sono la norma, scorro in qualche secondo, e so subito dove mettere la mano. Con codice che è stato scritto da altri, ma sempre con le regole indicate, ci metto un po' di più, ma non molto. Il "Spaghetti Code" devo invece spulciare riga per riga e mi ci vuole anche una settimana per comprendere il funzionamento di una singola procedura. E' per questo che insisto molto sullo stile di scrittura, e so dai miei colleghi che è essenziale.
Per fare soldi, bisogna essere bravi, soprattutto nello stile. I trucchi si imparano col tempo e all'occasione.
Più in là con lo studio, avrete da fare con le matrici. Non degli array a due dimensioni per immagazzinare dati, ma per effettuare calcoli efficienti e molto complicati. Se non hai idea a cosa servono, ti fa una fatica enorme, e non ha senso. Se invece ti interessi nell'intelligenza artificiale (es. OCR), o nella compressione immagini e audio (MPEG), ti è molto più semplice capire il perché, e quindi non ti pesa la complessità.
Purtroppo si danno troppo peso alle matrici, e non si spiegano le applicazioni veramente pratici, perché i prof spesso non capiscono neanche loro, e conoscono solo la teoria, e per di più non sono entusiasti neanche loro della teoria che devono divulgare. Per cui risulta una materia talmente pesante che non si dovrebbe neanche insegnare, perché arrivata la necessità, impari in un lampo, e comprendi...
Vi auguro un bel periodo di studio e soprattutto maestri in gamba, che vi possono comunicare, oltre alle conoscenze, anche il senso.
Giovanni
---
http://www.y2ksw.com/vbulletin