nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Re: impara a programmare in 10 anni

Von: riccardo (riccardo.odraccir@gmail.com) [Profil]
Datum: 08.07.2009 13:20
Message-ID: <32d56e38-7dad-4dd7-a8b5-b67c1c64db2d@b15g2000yqd.googlegroups.com>
Newsgroup: it.lavoro.informatica
On Jul 7, 11:39 pm, gh <g...@nospam.gmail.com> wrote:


> Una cifra impressionante di "persone istruite" escono
dall'università
> incapaci di scrivere il "fizzbuzz", non è una novità. E'
che a 'ste
> persone l'istruzione non ha fornito, come ovvio che sia, tutto il
> resto in automatico e non è detto che sapranno/vorranno farlo da soli.

questo e' un argomento a favore di una revisione del modus operandi
dell'universita' e non sul ruolo e l'importanza dell'educazione nella
professione informatica.
(io ho frequentato sia quella americana che quella italiana, e ti
posso dire che fino al 2000 circa la differenza era questa:
quella americana era molto meglio organizzata, strutturata,
finanziata, ma permettereva , a chi veramente lo voleva di uscirne
senza aver imparato gran che. Quella italiana era estremamente mal
organizzata, stutturata e finanziata, ma permetteva a chi veramente lo
voleva di uscire con un ottima preparazione e non permetteva almeno
nelle facolta' scientifiche di uscirne non avendo imparato gran che.
Dopo le "riforme" direi che l'universita' italiana ha mantenuto lo
stato di pessima organizzazione, struttura e risorse, ma permette di
uscirne facilmente senza aver imparato nulla. In sostanza ha
brillantemente copiato l'unico aspetto negativo dei college
americani..)


> >no no io la vedo la "full picture" eccome.. sono d'accordo sulla
> >maggior parte delle cose che dice Norvig, solo darei piu' peso a una
> >buona istruzione. Anche solo perche' e' un processo che ti abitua a
> >studiare e a migliorarti.
>
> 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.


> 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".


> >Stroustrup ha appena scritto un libro con cui si ripropone di
> >insegnare a programmare utilizzando il C++ e pensi che ritenga il C++
> >una scelta sbagliata come primo linguaggio? :)
> >Continui a far confusione tra imparare un linguaggio da cima a fondo e
> >imparare a programmare.
>
> Forse mi sono espresso in maniere contorta, riformulo.
>
> Stroustrup dice è difficile padroneggiare il C++. Non è in discussion
e
> il saperlo da cima a fondo, cosa notoriamente impossibile in C++[1] e
> quindi comunque a suo sfavore in ogni caso.

appunto. Qui non stiamo parlando di quale linguaggio sia piu'
difficile da imparare da cima a fondo ma di quale possa essere adatto
per imparare a programmare. Il C++ va benissimo.


> Per dirla con altre parole, essere produttivi in C++ è davvero dura,
> la curva di apprendimento è alta (quei due anni indicati da lui sono
> per essere pienamente produttivi, mica per conoscerlo da cima a fondo!
> magari!! se in due anni uno conosce tutto C++ è meglio di
> Alexandrescu!), la disciplina richiesta nel praticarlo è costosissima
> al limite del vantaggioso, i benefici nell'usarlo vanno attentamente
> ponderati e via dicendo.

scusa ma veramente non capisci quello che leggi.
"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."

> 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.


> >... 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.

> 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???
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.

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

ottima idea.

> [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+
+? 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."
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 ...


[ Auf dieses Posting antworten ]

Antworten