Lorsque je donne un cours, j’aimerais pouvoir estimer rapidement le niveau de mes interlocuteurs sur un certain nombre de sujets.
Naïvement, on pourrait se dire qu’il suffit de proposer un petit questionnaire du genre : » Notez de 1 à 10 votre connaissance des sujets X, Y et Z « .
Quelqu’un avec qui je discutais de cette notation me faisait remarquer qu’en général, elle ne marche pas.
Les gens ne jouent pas le jeu selon lui et pour résumer on aurait :
– les débutants mettent 2,
– les moyens mettent 8,
– les très bons mettent 5.
Pour moi, le problème doit venir de la graduation de 1 à 10.
J’imagine une autre échelle, expliquée celle-là, qui pourrait peut-être mieux marcher.
Pour bien comprendre, détaillons là avec un exemple très simple : le traditionnel « Hello world ! ». La question devient donc :
Connaissez-vous ‘Hello world !’ ?
Niveau 0 : « Jamais entendu ce truc là, c’est un acteur américain ? »
Il y a des gens qui ne comprennent pas l’anglais.
Niveau 1 : « Ça a un rapport avec la choucroute ? »
Il y a des non-informaticiens qui comprennent l’anglais. Ils pensent que ça veut dire « Bonjour le monde ! » et ne comprennent pas le rapport.
Niveau 2 : « J’ai déjà entendu/lu ce truc là et je sais de quoi il s’agit »
Il y a des gens qui ont un collègue dont le beau-frère a un fils qui a essayé de lui expliquer l’informatique. Ils comprennent donc qu’il s’agit d’un programme simple affichant « Hello world ! ».
Niveau 3 : « Je connais, j’ai déjà lu quelques articles »
Le collègue en question qui se rappelle quelque chose comme :
main(des trucs là) {
System.print("Hello world!")
}
Niveau 4 : « J’ai testé quelques tutoriels pour mieux comprendre »
Le beau-frère en question qui se rappelle un peu des explications et de quelque chose comme :
public main(String args) {
System.println("Hello world");
}
Niveau 5 : « Je l’ai utilisé il y a longtemps mais j’ai un peu oublié, ça a dû changer depuis »
Le fils du beau frère mais qui est passé depuis à une nouvelle technologie du moment, ce qui donne :
define main(String[] args) {
System println "Hello world"
}
Niveau 6 : « J’en fais depuis 2 ans »
Le typique du « Bah, attend ! Je suis né avec ! J’en fais tous les jours ».
public static void main(String[] args) {
System.out.println("Hello world ");
}
Sur une notation de 1 à 10, il se mettra 8.
Pas 10, pour ne pas paraître prétentieux.
Pas 9, au cas où il y aurait un piège dans la question.
Niveau 7 : « Je connais suffisamment pour percevoir l’étendue de ce que je ne sais pas »
Bizarrement celui-ci a certainement une très bonne compréhension mais va se mettre une note de 5.
Il sait ce qu’est System.out, pourquoi il peut utiliser println ou print dessus, ce qu’implique le static et il sait même qu’il peut aussi ajouter un throws RuntimeException. Mais il sait aussi qu’il n’a pas compris comment marche le bytecode en dessous ou le mécanisme des exceptions ni même pourquoi précisément cette méthode-là est utilisée sur la classe indiquée via la ligne de commande. Peut-être n’a-t-il jamais entendu parler des ClassLoader ou de l’internalisation des strings constantes par le compilateur java, …
Niveau 8 : « Je le refais en un weekend ! »
Notez que c’est souvent pas si sûr qu’il y arrive ni même que le résultat soit aussi bien.
Niveau 9 : « Je l’ai refait en un weekend ! »
Bon, au moins c’était pas du flan mais faut voir si c’est vraiment aussi bien.
Niveau 10 : « C’est moi qui l’ai fait ! »
Chapeau bas ! (ça fait toujours quelque chose de rencontrer une célébrité)
ça tombe bien, l’échelle va jusqu’à 10. Hein ? quoi ? il y a d’autres niveaux ?
Niveau 11 : « Regarde, je te le refais en mieux en une journée ! »
Transcript show: 'Hello world !'
(désolé, il fallait bien que je glisse Smalltalk quelque part pour garantir que ce billet vient de moi)
ou
ou
ou (celui là je l’adore)
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<++++++++++++ +++.>.+++.——.——–.>+.>.
Pour mieux comprendre, une de mes pages préférées de Wikipédia : http://fr.wikipedia.org/wiki/Hello_world
Notez que la comparaison est souvent faussée car ce n’est pas tout à fait équivalent mais ça traduit quand même le côté « j’ai parfaitement compris tout ça, je connais tout ça, je peux même t’en apprendre avec des concepts et des mécanismes que tu soupçonnes même pas ».
Niveau 12 : « J’ai expliqué la ‘vie’ au gars qui vient de le refaire en une journée »
Alan, c’est vous ? (Kay ou Turing ?)
A quoi ça peut servir cette échelle ?
Et vous ? Vous êtes à quel niveau de compréhension du Hello World ?
Dans le même esprit, une autre classification des développeurs
Auteur : Jean-François Lefevre