Jâai fait ma mantra de « Laziness, Impatience & Hubris », câest Ă dire « Paresse, Impatience & Hubris » et je pense que cela mĂ©rite une explication.
Le plus beau compliment quâon mâait fait sur le plan professionnel
En lâan de grĂące 2004, jâĂ©tais en Ă©cole dâingĂ©nieur en informatique Ă lâENSIMAG (Grenoble). En cours dâalgorithmique, la classe planchait sur un exercice un peu velu. Les tenatatives de solutions ne dĂ©bouchaient sur rien. Je commence Ă cogiter sur comment contourner le problĂšme posĂ© pour en rĂ©soudre un plus simple.
Tout Ă coup, je me retourne en sursaut en entendant la voix de ma professeure :
Jean-Michel, ça fait un moment que je vous observe.
Et je dois vous dire quelque-chose.
Oops
Vous ĂȘtes trĂšs fainĂ©ant.
âŠVous ferez un trĂšs bon ingĂ©nieur
Elle avait fait mouche.
Quelles sont vos trois qualités et trois défauts?
On a tous entendu au moins une fois cette question idiote en entretien dâembauche.
Et la rĂšgle gĂ©nĂ©rale, câest « Ă question idiote, rĂ©ponse idiote » :
Ou mĂȘme un retour Ă lâenvoyeur :
Je vais vous rĂ©pondre, mais le temps que je mette mes idĂ©es en ordre, moi aussi jâai une question pour vous:
Selon vous, quelles sont les trois questions les plus pénibles à poser en entretien?
Et câest de bonne guerre.
Mais ce nâest pas parce que la question est idiote quâon ne peut pas lui donner une rĂ©ponse intelligente !
La réponse de Larry Wall
La réponse de Larry Wall, linguiste américain et créateur du langage de programmation Perl, est lapidaire, surprenante et profonde.
Dans la langue de Shakespeare
đŹđ§ Most of you are familiar with the virtues of a programmer. There are three, of course: « Laziness, Impatience and Hubris »
Soit dans la langue dâun alsacien mourant -âAch, châexpireâ :
đ«đ· Les trois nobles verttus du programmeur sont :
« La paresse, lâimpatience et lâhubris »
Alors ce nâĂ©tait pas dans le cadre dâun entretien dâembauche heureusement.
Qui ferait un bon programmeur ? đ€
Larry Wall cherchait Ă dresser le portrait robot de qui est fait ou non pour devenir un programmeur.
Câest un sujet hantĂ© par tellement de mythes⊠Oui ce nâest pas fait pour tout le monde. En mĂȘme temps, beaucoup sâauto-persuadent quâelles ne parviendraient pas Ă faire ce mĂ©tier, alors que si La pire phrase que jâentends Ă©tant sans doute celle-ci :
đ€ Ah, mais moi je peux pas devenir programmeur, je suis nul-le en maths. đ€
Je sais que pour beaucoup de gens, mon mĂ©tier est mystĂ©rieux. Mais rĂ©flĂ©chissez deux secondes. Si il y a une chose que Ă peu prĂšs tout le monde sait câest que câest un milieu aujourdâhui trĂšs masculin.
Hélas.
Si le critĂšre le plus important câest le niveau en maths, pourquoi il nây a pas une majoritĂ© de femmes?
Alors si câest pas les maths, câest quoi les critĂšres pour savoir qui peut devenir un bon programmeur?
Et deuxiĂšme questinon : non mais allo quoi ? Comment ça la paresse, lâimpatience et lâhubris pourraient ĂȘtre des vertus ? Tâes un programmeur et tu sais pas que ce sont des dĂ©fauts? Non. mais allo quoi ?
On va faire coup double en répant à ces deux questions légitimes avec une seule vidéo de Larry Wall.
La vidéo
Faut regarder la vidĂ©o, elle est cool⊠Mais je sais, vous ĂȘtes dans le mĂ©tro et ça capte pas, ou alors les gens sont super bruyants dans votre cafĂ©, ou encore mieux vous avez besoin de sous-titres pour votre handicap auditif.
Pas de souci, je vous fait une transcription :
âCeci est une blagueâ⊠ou presque
What skills or characteristics do you need to be a great programmer?
Laziness, Impatience and hubris.
These originated as sort of a joke in the first edition of what we call the Camel Book, the book that teaches the Perl programming language.
And in a sense, these are the three virtus of a programmer.
A lazy person will try always to find some way to do something, will always be looking for ways to do something faster, more efficiently.
And if you really want to control the world, thatâs really sort of a hubristic notion. Excessive pride. The kind of thing Zeus zaps you for having.
But it really was sort of a jokeâŠ.
In the japanese edition of the translated edition of the Camel Book, they had to add âLaziness, Impatience and Hubris. This is a jokeâ. Because they thought people could take it seriously.
But really ⊠what makes someone a good programmer is much more than those three things.
Les hobbits feraient dâexcellent programmeurs
If you have either read Lord of the Rings or seen the movies, you know about Hobbits. Well : Hobbits manifest many of the virtues you need as a programmer.
You need to have persistence when the going is rough to keep slogging through. A kind of innate stubborness. In an happy way, not in a mean way.
You have to be smart enough to outwit your ennemies occasionally.
You have to be able to be social, you have to be able to deal with a group of team members. Some of which are like you, they are other hobbits. Some of which are elves, dwarfes. Or even men.
They think very diffirently from you.
So you have to contribute your part as a hobbit, but also be able to understand other things. The day is long passed where programming was done individually. Almost all programming is done in teams.
So for example you need to be litterate. You have to be able to read documentation. And to write documentation that others can understand.
But mostly you need to be just slightly insane, in the way hobbits are. Where they can view the long term, where the goal is to go back to your cosy village. But also at the same time, they can forget about all that and deal only with the problem they have at hand.
Increase your dynamic range
On more concrete terms, you may be telling a computer to do various things. On one hand you have to be aware of what happens at a low level. But if you are aware of that all the time, you are going nuts. So you have to shutdown and work on high-level abstractions.
And doing both simultanously gives the best results in programming. If you ignore one of those, you end up messing up.
So thatâs what you really need.
A hobbit is lazy in a very industrious way.
A hobbit is impatient in a very patient way.
A hobbit is proud in a very humble way.
It sort of sounds contradictory. But to the extent that you can increase your dynamic range on all of those âŠ. you will be a better programmer.
Alors câest bien vu, câest drĂŽle, ce que vous voulez, mais pour moi cela va plus loin, cela a du sens.
FAQ: câest quoi lâhubris?
Lâhubris, câest le trop plein dâambition qui pousse celui qui lâhabite Ă sa perte.
Lâhubris, câest NapolĂ©on. AprĂšs avoir vaincu plusieurs coalitions, il a assurĂ© sa maĂźtrise de toute lâEurope continentale. Mais il ne peux pas sâempĂȘcher dâenvahir un pays alliĂ©, lâEspagne. AprĂšs ce dĂ©sastre il ne peut pas sâempĂȘcher dâenvahir un autre pays alliĂ©, la Russie. Vous savez oĂč cela le mĂšne : en plein milieu de lâocĂ©an atlantique. Hubris.
Lâhubris est un concept trĂšs important dans la mythologie grecque, et si ce sujet vous titille, je vous renvoie Ă cet article dĂ©licieux dâEmma
Pourquoi jâen ai fait ma mantra
Jâai mis la devise « Laziness, Impatience & Hubris » sur les diffĂ©rents sites oĂč je suis prĂ©sent sur internet parce que je pense quâelle dit quelquechose dâimportant sur moi.
Si je reprends les trois vertus dans le sens inverse :
lâhubris chez moi, câest la quĂȘte du sens, câest de mâen tenir obstinĂ©ment Ă vouloir travailler sur des projets qui en ont un minimum. Et croyez moi dans mon secteur câest loin dâĂȘtre une sinĂ©cure !
lâimpatience : Des amis non-informaticiens sont rĂ©guliĂšrement surpris quand je les vois batailler avec les sites web mal foutu chez SFR etc. Je leur dis « Ben dis donc, tu es courageux ! Moi jâaurais abandonnĂ© depuis longtemps ». Souvent ils pensent que je blague mais pas du tout ! Par contre, jâai aussi appris que lâimpatience a un cĂŽtĂ© obscur. Lâeffort que je fais aujourdâhui câest de rĂ©server lâimpatience aux outils, mais dâĂȘtre Ă lâinverse trĂšs patient avec les humains. Bonne illustration du principe « increase your dynamic range ».
la paresse : jâassume aujourdâhui crĂąnement ma part consĂ©quente de paresse. Programmer câest automatiser. Quand jâĂ©tais jeune jâĂ©tais horrifiĂ© des sketches de travail Ă la chaine prĂ©sentĂ© par Charlie Chaplin dans sa satire « Les Temps Modernes ».
Depuis on a automatisĂ© les trucs chiants et rĂ©pĂ©titifs, et il nây a aucune raison de subir la mĂȘme chose dans le monde numĂ©rique. Donc la paresse est une source de productivitĂ©.
Mais au delĂ de cela, il sâagit de la source sacrĂ©e de ma crĂ©ativitĂ©.
Et je veux dire Ă la maniĂšre dâErasme:
Je te salue ma paresse!