La question est classique, mais le débat est revenu plusieurs fois ces dernières semaines ou moi au d'autres collègues avons du faire passer quelques entretiens. C'est une question bien entendu très ouverte, donc je vous laisse vous défouler dans les commentaires :)

Très personnellement, je ne pense pas que l'on puisse juger quelqu'un à la somme de ses connaissances. Mieux vaut une tête bien faite qu'une tête bien pleine comme disait l'autre. Donc, contrairement à ce qu'on pourrait penser, même si par curiosité je vais demander, je ne vais pas attendre de quelqu'un qu'il sache tout de l'agilité, des principes SOLID, de DDD etc. etc. Je vais sans doute me moquer encore plus des connaissances encore plus techniques comme les détails d'mplémentation de tomcat ou ses différents connecteurs. Mais alors qu'est-ce qui importe? Ce qui importe, c'est que tous les éléments que je viens de citer peuvent s'apprendre. C'est donc mon premier grand point: savoir et vouloir apprendre.

Ensuite, à mon sens ce qui fait le plus la qualité d'un développeur c'est la qualité de son code. Oh la belle phrase. Qu'est-ce que ça veut dire? Essentiellement pour moi qu'il est maintenable. Comment rend on le code maintenable? Essentiellement en lui donnant du sens. Ca a peut être l'air tout con comme ça, mais j'ai très personnellement le sentiment qu'en France le code est très mal vue, et que globalement la grande majorité des formations que nous recevons sont à base de "le code c'est le mal, mais plus tard vous serez chef de projet et vous en ferez plus". A partir de là pourquoi dépenser des efforts dans quelque chose qui est apparemment par définition imbitable et chiant?

Mais je digresse, pour résumer en deux principes, voilà finalement ce que je recherche:

  • amélioration continue
  • donner du sens au code

Ce qui me plaît dans ces deux principes, c'est qu'ils permettent de juger tant les débutants que les vieux routiers. Une fois que ces deux qualités sont identifiées, il suffit d'estimer "l'avancement" sur le chemin. Par exemple, donner du sens au code commence par bien nommer ses variables, et continue (bien) plus tard par DDD.