Quelle est votre définition du « vrai développeur » et comment le dénichez-vous ?
Un blogueur expose son point de vue

Le , par Idelways, Expert éminent sénior
Mise à jour du 23/11/2010

Nous avons passé en revue hier (lire ci-avant) un billet du blogueur Steven Benner. Son article a suscité sur Développez.com de nombreuses réactions et un débat intéressant.

Mais il a une suite.

Après s'être attaqué (d'une manière assez caricaturale) aux catégories des développeurs, l'auteur expose, dans un billet plus recherché, sa propre définition du « vrai développeur », comprendre les qualités qui doit réunir un bon développeur.

Selon lui, les vrais développeurs sont ceux qui peuvent apprendre vite, apprendre par la pratique, et ne jamais arrêter d'apprendre.

La définition de Benner ne serait donc pas incompatible avec les développeurs qui utilisent du code trouvé sur Google (ou Bing). Bien au contraire.

Ces développeurs, en arrivant à trouver et à adapter rapidement des solutions à leur travail font justement preuve de capacités d'apprentissage et d'adaptation.

Pour trouver les vrais développeurs, Benner donne quelques pistes. Parmi lesquelles, il recommande de mettre les candidats à l'épreuve mais sur des compétences de haut-niveau, non pas sur des patrons de conceptions ou d'obscures problèmes algorithmiques.

Des problèmes théoriques, utilisés par certains recruteurs pour départager les candidats, feraient passer à côté de certains "vrai développeurs". Car ces derniers peuvent de ne pas arriver à se rappeler de solutions à des problèmes qu'ils ne rencontrent que rarement, voire jamais.

En revanche, il déconseille de recruter les développeurs qui s'intéressent plus à l'informatique théorique qu'à l'expérience effective. Benner les considère même comme "une épine perpétuelle dans le pied de l'industrie du développement".

Source : le blog de Steven Benner

Et vous ?

Êtes-vous d'accord avec la définition de Benner ?
Quelle est votre propre définition du vrai développeur et comment faites-vous pour les dénicher ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de pseudocode pseudocode - Rédacteur https://www.developpez.com
le 23/11/2010 à 19:46
Il revient à ma mémoire une définition d'un de mes professeurs. C'était dans un autre contexte, mais c'est applicable à l'opinion de Steven Benner.

Face à un problème :

- Les mauvais développeurs croient connaitre la bonne méthode

- Les bons développeurs connaissent déjà la bonne méthode

- Les grands développeurs ne connaissent pas la bonne méthode, mais savent comment la trouver
Avatar de air-dex air-dex - Membre émérite https://www.developpez.com
le 23/11/2010 à 19:55
Citation Envoyé par Idelways Voir le message

Selon lui, les vrais développeurs sont ceux qui peuvent apprendre vite, apprendre par la pratique et ne jamais arrêter d'apprendre.

[...]

Êtes-vous d'accord avec la définition de Benner ?
Totalement d'accord ! Le développement, c'est la loi de l'évolution : si tu restes sur tes acquis, tu meurs (ou tu va faire de la bureaucratie/du management, autre forme d'évolution). Les développeurs d'il y a plus de 20-25 ans ont dû laisser le Fortran, le COBOL et autre Lisp de côté pour rester dans la course. De même, les développeurs actuels devront dire un jour adieu à Java, C# et Python (voire C++ ?) pour peut-être le langage D et Google Go.

Étrangement, il n'y a que le C qui arrive à traverser les époques. Jusqu'à ce qu'il soit décrété comme étant "trop vieux pour l'Informatique" ?
Avatar de cs_ntd cs_ntd - Membre éprouvé https://www.developpez.com
le 23/11/2010 à 20:21


Mort de rire quand j'ai vu les 5 classifications.

Indéniablement dans la catégorie 1 et 5, c'est affolant...

C'est plus fort que moi... Par exemple, si jamais je sens, dans un bout de code, que ya une ligne de trop, la moindre instruction inutile, je peux passer des heures (des jours ) dessus, pour trouver THE solution, parfaite, belle brillante, absolument magnifique...
Il faut comprendre, même si ça implique un truc du genre v^=~(0xAF << (i >> 3));


Perfectionnsite jusqu'au bout des ongles... Capable de passer des heures à ré-indenter un code qui desfois met des TAB de 4 espaces et des TAB de 3 espaces ^^
Et bien sur fondamentalement incapable de rendre n'importe quoi à l'heure, ni de rendre quelque chose si ce n'est pas parfait, à moins de me faire violence, ou de n'avoir d'autre choix

Tout le contraire de moi dans la vie "normale", je met le bazar partout ou je passe

Quand à la catégorie 5, c'est exactement ça... Je passe plus de temps à réfléchir comment faire plutôt que de le faire vraiment...
Si on me laisse faire, je re-cré à chaque projet un nouveau "framework" de travail, ultra-générique avec des hacks dans tous les sens (au sens : code non-documenté qui, si on le supprime, empêche le fonctionnement), portable toussa toussa.
Bref un truc qui permettra de coder à l'avenir de manière plus performante, et plus rapide , chose qui prend bien sûr 300 fois le temps de développement du projet... .

Je crois que je suis relativement "lourd" pour les gens qui travaillent avec moi

Et je suis aussi d'accord avec la manière dont il sépare les "bons" développeur des "mauvais", mais je pense que celà peut s'appliquer de manière plus générique :
- Il y a ceux qui ont envie d'apprendre, qui sont curieux, qui cherchent à savoir le pourquoi du comment, cherchent à résoudre eux-même les choses.
- Et il y a ceux qui se contentent de vivre sur leurs aquis, ne se posent pas de questions, et qui estiment qu'ils "savent" des choses et que c'est bien suffisant comme ça.

Je pense que ça se retrouve dans la vraie vie. En gros ya les Hackers et les Autres...
Mais c'est plus un état d'esprit concernant un domaine, plutôt qu'une aptitude naturelle.

Je pense qu'un "jeune" développeur, curieux, touche à tout, qui expérimente (càd : essaye d'inventer des solutions à ses problèmes de manière intelligente) etc... sera toujours meilleur en un sens que quelqu'un qui à apris la norme et qui se contente de l'appliquer, ou que quelqu'un qui se contente de dire :

Regarde, si je divise par 2 c'est trop petit, alors je vais diviser par 1.5 parcequ'on sera plus proche du résultat attendu...
(je déteste les gens comme ça )
Avatar de Guilp Guilp - Membre éprouvé https://www.developpez.com
le 23/11/2010 à 20:50
Moi je suis souvent de ceux qui doivent reprendre le code de quelqu'un d'autre...

Donc forcément, je suis extrêmement anti hacks ou cheats, de code "bordel"!! J'insulte haineusement ces programmeurs environ 20 fois dans la journée pour me faire perdre (à moi, à mes collègues et à tout le monde) des centaines d'heures... Eux qui ont crû économiser quelques petites heures à engendrer un code bordélique et ultra crade plutôt qu'un code un minimum propre...

Je ne suis pas un perfectionniste pour autant, je fais en sorte de rendre mon travail à l'heure, je fais des compromis... Mais avec un code un tant soit peu propre et réutilisable avec si possible aucun hack ! (et si il y en a un, je le documente à mort).

Bref, je ne sais pas ce qu'est un "vrai" développeur, mais selon mon humble avis, un mauvais développeur est un développeur qui code sans réfléchir.

(Et on peut coder "directement" dans un projet sans pour autant que ça soit irréfléchi. Simple exemple : en s'inspirant d'une méthode agile. Mais des classes bordéliques et fourre-tout remplies de hack en tout genre... Le cauchemars!!)

ps: lors d'une mise à jour d'un article (comme c'est le cas ici), y a-t-il moyen de mettre un lien qui va directement au post de mise à jour sur son fil de discussion forum? S'il y en a un, je n'arrive jamais à le trouver (alors qu'avant, il était souvent dans le texte même de la mise à jour de l'article). merci ^^
Avatar de epsilon68 epsilon68 - Membre éprouvé https://www.developpez.com
le 23/11/2010 à 21:56
Citation Envoyé par cs_ntd Voir le message
Je crois que je suis relativement "lourd" pour les gens qui travaillent avec moi
on se connait?
Avatar de sevyc64 sevyc64 - Modérateur https://www.developpez.com
le 23/11/2010 à 22:09
Je me reconnais très bien dans ce que dit ce Steven Benner autant dans le premier que dans le second post.

Si j'en crois son classement, certes exagéré mais pas si loin de la réalité que ça, je suis à la fois dans la première et dans la cinquième catégorie, suivant les circonstances, avec une préférence pour la cinquième et une haine viscérale de la quatrième catégorie que l'expérience mais surtout l'age n'arrange pas.

Citation Envoyé par pseudocode Voir le message
Il revient à ma mémoire une définition d'un de mes professeurs. C'était dans un autre contexte, mais c'est applicable à l'opinion de Steven Benner.

Face à un problème :

- Les mauvais développeurs croient connaitre la bonne méthode

- Les bons développeurs connaissent déjà la bonne méthode

- Les grands développeurs ne connaissent pas la bonne méthode, mais savent comment la trouver
Je suis donc un grand développeur, alors

JE hais les tests qu'il faut parfois passer en entretien, pondre un bon de code, comme ça sur le pouce sans pouvoir préparer, ni réfléchir, comme si on avait tout en mémoire, comme si développer c'était comme réciter les tables de multiplications à l'école primaire.
Et généralement j'échoue.
Avatar de el_slapper el_slapper - Expert éminent sénior https://www.developpez.com
le 24/11/2010 à 10:47
autant son premimer post me parait caricatural au possible, autant j'apprécie le fond du deuxième : l'important, c'est de savoir s'adapter. Se couler dans les pratiques locales, ou du moment.

Pour les tests : j'ai été amené à en faire, et à réfléchir au sujet, face à une hiérarchie traumatisée(à juste titre) par quelques recrutements hautement malheureux. J'aurais aimé pouvoir testé l'adaptabilité des gens, mais j'avais pour contrainte "un QCM, pas plus de 15 minutes, on est pas là pour faire chier les gens pendant 2 heures". Je me suis donc limité à un petit test sur les bases techniques utilisées en local, juste pour vérifier que les gens qui annoncent "15 ans d'expertise dont 12 en COBOL" sont capables de comprendre un code basique dans ledit langage.

Eh bien ça a suffit à éliminer la moitié des candidats..... Pour l'autre moitié, ceux qui n'avaient pas bidonné leur CV(parceque mon test, il ne vole vraiment pas haut), ils ont gardé la méthode "standard" : le courant doit passer(en bref, à la tête du client). C'est évidemment suboptimal, mais il est difficille d'évaluer réellement quelqu'un en quelques minutes.

D'ou ma conclusion : un test pour éliminer les boulets, c'est pertinent. Un test pour trouver la perle rare, c'est de la clownerie.
Avatar de ymajoros ymajoros - Membre habitué https://www.developpez.com
le 24/11/2010 à 12:14
Je ne sais pas ce qu'est un vrai développeur, mais je sais ce qu'est un vrai bloggueur de seconde zone ;-) C'est du n'importe quoi : que des avis (stéréotypés), pas de faits.

Sur le fond : prétendre que les théoriciens sont à éviter... C'est un peu simpliste.
Avatar de dtravailloux dtravailloux - Membre à l'essai https://www.developpez.com
le 24/11/2010 à 13:00
Un vrai développeur, puisque c'est de ça qu'il s'agit est celui qui sait souffrir..en silence..

[mode 10ème degré]
pris entre les demandes délirantes des commerciaux, les délais du chef de projet intenables, un salaire de misère, une reconnaissance proche de zéro....il doit faire preuve d'abnégation ou tout envoyer bouler et faire autre chose...

Après tout, il m'a fallut 4 ans pour me rendre compte de la situation et cela fait déja 6 ans déja que je suis parti vers d'autres horizons. Maintenant que je suis de l'autre côté, j'ai pas l'impression que cela ait changé beaucoup...
[/mode 10ème degré]

bon courage les gars !
Avatar de Astraya Astraya - Membre expérimenté https://www.developpez.com
le 24/11/2010 à 13:37
Quelle est votre définition du « vrai développeur » et comment le trouvez-vous ?
Un vrai développeur ça serai avant tout un développeur qui ne ce dit pas tout savoir, fait des erreurs, les comprends, les corriges et en refait d'autres etc... Un personne qui avance par l'échec, pas en lisant des articles...
Contacter le responsable de la rubrique Accueil