nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: impara a programmare in 10 anni

Von: gh (gh@nospam.gmail.com) [Profil]
Datum: 08.07.2009 15:15
Message-ID: <1v59551uudepclg9a954uog459ifjkue98@4ax.com>
Newsgroup: it.lavoro.informatica
On Wed, 8 Jul 2009 04:20:49 -0700 (PDT), riccardo
<riccardo.odraccir@gmail.com> wrote:

>> Hai ragione, aiuta, ma dipende da come si è studiato.
>> E' inutile parlare di studi se lo studio è quello, ad esempio,
>> richiesto all'atto pratico per superare l'esame di analisi matematica:
>> imparare a memoria teoremi e dimostrazioni. E lo stesso accade per
>> troppe altre materie alla facoltà d'informatica.
>
>grosso errore. Tanto per cominciare dimostri di non aver nessuna idea
>di cosa voglia dire studiare matematica.
>(non e' colpa tua , probabilmente non hai avuto un insegnante
>adeguato) . Studiare matematica non e' affatto "imparare a memoria
>teoremi e dimostrazioni".  Certo, c'e' una parte importante di
>memoria, come c'e' in qualunque tipo di studio, ma un teorema non deve
>esser imparato a memoria. Si segue per la prima volta la strada della
>dimostrazione, se ne capiscono e si ricordano gli obiettivi e i
>passaggi logici chiave e poi si e' in grado di ripercorrere lo stesso
>cammino. Se studi in questo modo, e non  a pappagallino, lo studio
>della matematica cambia totalmente il tuo modo di pensare. Lo dico per
>esperienza personale. Io venivo dal classico, mate zero o quasi. Primi
>due anni di univ, analisi I e II mi hanno completamente stravolto.
>FInalmente ho scoperto il lato "culturale" della matematica, ho
>scoperto che non si trattava di fare lunghi calcoli come nelle
>equazioni trigonometriche in cui l'unica abilita' stava nel non
>distrarsi e fare un'errore..ma si trattava di ragionamento e deduzione
>eleganti e distillati. E con un 'insospettata dose di creativita'.
>Questo tipo di studi ha fatto di me una persona molto piu' completa di
>quanto non fossi prima e mi ha reso capace di ragionare in maniera
>molto piu' lucida ed efficiente.

Nessun grosso errore, è che interpreti per fatti tuoi invece di
leggere quello che scrivo. :)

Dove avrei scritto che *studiare la matematica in assoluto* è imparare
a memoria teoremi e dimostrazioni?

Ho scritto che *all'università* questo basta e avanza per progredire,
è ben diverso.

Che si sia fatta l'università o meno,

http://steve.yegge.googlepages.com/math-every-day,

è la strada da seguire. L'università è una gran cosa, in astratto. E'
l'implementazione che lascia molto a desiderare, nella stragrande
maggiornaza dei casi... ;)

Sei comunque libero di sostenere che all'università tutti studino
matematica (o quant'altro) nel modo corretto e siano felici e
soddsfatti di quanto appreso, se è questo che credi.

>> Se lo studio *fosse* (e dico fosse perchè avviene così solo una
>> strettissima minoranza delle volte) come quello che impartisce Parr
>> nei suoi corsi (http://www.cs.usfca.edu/~parrt/), allora si che
>> sarebbe vero studio utile anche all'atto pratico e non solo sulla
>> carta.
>
>magnifico insegnante.  Ti voglio comunque ricordare che studiare solo
>quello che e' strettamente collegato al tuo
>lavoro di oggi finisce per fare di te una persona fortemente limitata.
>Lo studio deve sempre comprendere una parte di "gioco" e di "apertura
>mentale".

Perchè me lo ricordi? Ah già, perchè sei andato di fantasia prima...
:)

>scusa ma veramente non capisci quello che leggi.

Ma nemmeno per sogno. Sei tu a non aver letto altro che le parole di
Stroustrup secondo me, correggimi pure se sbaglio indicandomi le
critiche al linguaggio fatte da noti esperti che hai letto con cui non
ti sei trovato daccordo.

>"On the other hand, if you want to be fully comfortable with all the
>major C++ language constructs, with data abstraction, Object-Oriented
>programming, generic programming, Object-Oriented design, etc., you
>can easily spend a year or two - if you aren't already acquainted with
>those techniques (say, from Java or C#). "
>Stroustrup parla di due anni partendo da ZERO. E partendo da zero un
>periodo di due anni e' il minimo che ci si possa aspettare per passare
>da zero a programmatore.
>"Is that then the time it takes to learn C++? Maybe, but then again,
>that is the timescale we have to consider to become better designers
>and programmers. If a dramatic change of the way we work and think
>about building systems isn't our aim, then why bother to learn a new
>language? Compared to the time required to learn to play the piano
>well or to become fluent in a foreign (natural) language, learning a
>new and different programming language and programming style is easy."

Mi sbaglierò, ma somiglio molto a quelli che, usando solo il martello,
vedono chiodi dappertutto.

Non sei interessato a scambiare, in ambito didattico, uno strumento
che la storia ha decretato come sovraingegnerizzato e decisamente a
bassa produttività con uno più produttivo di diversi ordini di
grandezza. Suppongo ragioni in modo simile anche per un lavoro da
compiere. ahiahiahiahiii....

>> Va da se che è un lignuaggio da usare con le pinze, date le sue
>> particolarità.
>
>tutti i linguaggi hanno particolarita' e tutti vanno usati con cura e
>attenzione.

Con quella frase dal contenuto imbarazzantemente generico che vorresti
provare?

Alcuni linguaggi necessitano di maggiore attenzione a dettagli che ti
allontanano dal problema da risolvere, di più codice boiler plate, di
refactoring più pesante e difficoltoso, di capirne la complessità per
non spararsi in un piede subito subito, di portare addosso le
cicatrici prima di poter dire che se ne è esperti, di pensare a basso
livello quando se ne potrebbe fare ampiamente a meno, etc...

Se per te cose così non sono discrimintanti... :O

>> >... We teach programming first and treat our chosen programming
>> >language as secondary, as a tool. Our general approach can be used
>> >with any general purpose programming language. ....
>> >At the end of this book, will you be an expert at programming and at C+
>> >+? Of course not! When done well, programming is a subtle, deep, and
>> >highly skilled art building on a variety of technical skills. You
>> >should no more expect to be an expert at programming in four months
>> >than you should expect to be an expert in biology, math, in a natural
>> >language,or at playing the violin in four months, or in half an year,
>> >or a year. What you should hope for and what you can expect if you
>> >approach this book seriously, is to have a really good start that
>> >allows you to write relatively simple useful programs, to be able to
>> >read more complex programs and to have a good conceptual and practical
>> >background for further work.".
>> >Credo che questo chiuda la discussione.
>>
>> Ok, capisco che non ti smuovi, chiudi pure qui nessun problema :)
>
>non e' questione di non smuoversi. E' questione che se nemmeno il
>parere supportato da chiari esempi e ragionamenti di uno dei maggiori
>esperti viventi di programmazione non ti convince che e' una perdita
>di tempo mettersi a classificare i linguaggi come buoni o non buoni
>per imparare a programmare visto che ogni linguaggio ragionevolmente
>"general purpose" va bene.. e che qui si sta parlando di imparare a
>programmare non di diventare un language lawyer...beh allora non vedo
>cosa altro potrebbe convincerti.

Non sono io a non essere convinto dal noto esperto inventore della
cosa su cui si discute (rotfl), sei tu che ignori il parere di tanti
altri esperti di quel livello

>> Nota però che io ti parlo di esperienze di molte persone al top,
>> condivise da un mare di gente. Sono oramai in pratica più i grandi che
>> abbracciano l'alto livello, rifuggendo la complessità di C++, CL e
>> simili che quelli che ci vanno giù a testa bassa ignorando cosa la
>> storia ci insegna[2].
>
>ahem.. che ci insegnerebbe esattamente la storia???

Che fai, sfotti? :)

>I grandi comunque non rifuggono affatto da un bel niente,
>semplicemente mantengono una mente aperta e studiano il maggior numero
>di strumenti possibile, in modo da poter utilizzare quello piu'
>appropriato al tipo di problema che devono risolvere.

E perchè non lo fai pure tu? E' paradossale sostenere il C++ come
strumento didattico e linguaggio altamente produttivo e poi dire che
si deve usare lo strumento appropriato al tipo di problema da
risolvere. E' una contraddizione in termini, e non te ne rendi conto
forse perchè a tutt'oggi non hai ancora provato alternative.

Sono sempre stati degli scemi tutti gli esperti del linguaggio (e ce
ne erano/sono molti di bravi) su it.comp.lang.c++ per avere nelle faq
roba del tipo:

<cite>
0) Vorrei imparare il C++, e` necessario conoscere prima qualche altro
linguaggio oppure posso imparare direttamente questo?

R) Il C++ e` un linguaggio estremamente ricco e complesso, e come
tale puo` non essere il piu` adatto da imparare come primissimo
linguaggio di programmazione; esso e` stato progettato (come il
suo precursore "C") per l'uso da parte di programmatori esperti e
"scafati". Molti altri linguaggi sono stati progettati
specificamente per insegnare ai principianti a programmare: alcuni,
come il Pascal, guidano molto il principiante obbligandolo ad
imparare ed applicare una rigorosa disciplina; altri, come Rexx,
Python, e Basic, sono invece (in diversa misura e con diverse
filosofie) "tolleranti" e "di manica larga". L'uno, l'altro, o
entrambi questi approcci potrebbero essere piu` produttivi per
imparare a programmare che non tuffarsi alla "nuotare o affogare"
nel pelago del C++.
</cite>

E consideri didatticamente ineccepibile usare un linguaggio per cui è
consigliato avere da subito a disposizione multipli libri per sapere
"what is legal" e "what is moral" onde evitare di fare sonore cazzate?

>> Tu invece mi riporti l'intro di un libro (che avevo già deciso di
>> prendere perchè mi interessa non poco
>
>ottima idea.

Sicuro. Rispetto immensamente Stroustrup da leggere e studiare
qualunque cosa dica, anche se è evidente che per alcuni versi con il
C++ ha fallito e di molto pure.

>> [2] Tante le storie, come Steve Yegge che parla del sistema Amazon e
>> di quanto C++ abbia reso un incubo la loro codebase da tante decine di
>> milioni di righe di codice
>
>beh, non sara' mica anche il caso di considerare che la loro codebase
>da incubo sia una conseguenza della loro incapacita' invece che del C+
>+?

Dipende, se hai la certezza che siano tutti incapaci ad Amazon ti
credo... rotfl

>Questo mi sembra il caso del tennista che sbaglia un colpo
>importante e se la prende con la racchetta lanciandola a terra..
>Non sara' piu' colpa di Yegge che del C++ se la codebase di amazon e'
>diventata:
>"a huge mountain of poop, the biggest mountain you've ever seen, and
>your job is to crawl into the very center of it, every time you need
>to fix something."

Ah si, il colpo sotto rete del tennista con lo sviluppo di un sistema
software davvero complesso e articolato portato avanti per decenni da
un mare di gente diversa (tutti incapaci in C++, sicuramente).

Davvero un efficace parallelo, non c'è che dire.

>Termino con questa citazione di Yegge:
>"C++ is dumb, and you can't write smart systems in a dumb language.
>Languages shape the world. Dumb languages make for dumb worlds."

>Penso che riassuma tristemente il livello del personaggio ...

*Tu*, invece, chi saresti scusa? Il tuo livello? Sempre bravi a
parlare male degli altri, eh? ;)

E, soprattutto, sono di basso livello anche
Martelli/Eckel/Koening/Martin/etc... e tutti gli altri che hanno fatto
esperienza della poca produttività ed enorme complessità del C++[1]
rispetto a soluzioni vhll più consone alla grande maggioranza dei
tasks incontrati nella vita media di chi crea software?

Conclusioni: che devo pensare, che Stroustrup è l'unico che ha capito
qualcosa e tutti gli altri si sbagliano?.

Senza offesa, possiamo chiudere qui per me. Sono praticamente
argomenti del decennio scorso e non è produttivo starne ancora qui a
parlare :)

[1] e non solo, anche di altri strumenti come i già citati CL e chi
più ne ha più ne metta, tanto per chiarire che si parla di esperienze
tecniche e non chiacchiere da infedeli di questa o quella religione
digitale :)

[ Auf dieses Posting antworten ]

Antworten