Le vélo sans petite culotte

jeudi, septembre 22, 2005

Pas de raccourcis.

Je suis tombé sur un site à mon goût ce matin: www.norvig.com, la page de Peter Norvig, Director of Search Quality chez Google.

J'ai atterri sur l'article '05 Annual Performance Review: Albert Einstein, une parodie de révision annuelle de performance pour l'employé de bureau des brevets, ALbert Einstein. Assez comique.
On the other hand, famous physicists are beginning to visit the offices here in Bern; Albert you must make sure that any hours spent in talking to them are subtracted from your time card and made up for later. You are responsible for making sure these visits do not cause a distraction for others in the office.
[...]
You wrote that "A storm broke out in my mind" this year. Let me remind you that our Employee Assistance Plan (EAP) covers up to three psychiatric treatments, should you find them necessary.


Cependant, sur ce site un autre article a attiré mon attention: Teach Yourself Programming in Ten Years. Et en plus, il y a un lien vers une traduction française: Apprenez à programmer en dix ans. Extrait:
Des chercheurs (Hayes, Bloom) ont mis en évidence qu'il faut environ dix ans pour devenir expert dans une multitude de domaines aussi variés que le jeu d'échecs, la composition musicale, la peinture, le piano, la natation, le tennis ou la recherche en neuropsychologie et en topologie. Il ne semble pas y avoir de raccourci : même Mozart, prodige à l'age de quatre ans, ne commença à produire des oeuvres de premier plan que treize ans plus tard.

Il n'y aura pas de raccourci les amis. "Apprenez le Pascal en trois jours" ou "Apprenez le bengalais en 30 jours" (ça existe!), ne peuvent pas fonctionner. Norvig donne ensuite sa recette pour devenir un bon programmeur en 10 points. Sans raccourci. Points 1,2 et 7:
Intéressez vous à la programmation et faites en parce que c'est amusant. Prenez suffisamment de plaisir pour pouvoir y consacrer dix ans.

Rencontrez d'autres programmeurs, lisez leurs sources. C'est plus instructif que n'importe quel livre théorique ou cours.

Apprenez au moins une demie douzaine de langages. Choisissez un langage qui supporte l'abstraction de classe (comme Java ou C++), un qui supporte l'abstraction fonctionnelle (comme Lisp ou ML), un qui supporte l'abstraction syntaxique (comme Lisp), un qui supporte les spécifications déclaratives (comme Prolog ou C++ Templates), un qui supporte les coroutines (comme Icon ou Scheme) et un qui supporte le parallélisme (comme Sisal).


Via Wolfgang