IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Des développeurs avouent leurs « péchés » de programmation
Pour s'ériger contre un processus d'entretien technique qu'ils estiment brisé

Le , par Stéphane le calme

56PARTAGES

30  0 
Un certain nombre de développeurs ont pris Twitter d’assaut pour attirer l’attention des professionnels, en particulier des recruteurs, sur le processus d’entrevue qui peut s’avérer éreintant dans leur domaine et repose fortement sur des questions techniques.

David Heinemeier Hansson, un développeur danois père du framework web Ruby on Rails et du wiki Instiki, avait fait allusion à cette pratique des recruteurs dans ce qu’il a appelé « l’algorithme de bizutage du tableau blanc », étape de l’entretien d’embauche où les candidats sont mis à rude épreuve avec des questions techniques.

Ce style d'entrevue, largement utilisé par les grandes entreprises technologiques, notamment Google et Amazon, consiste généralement à mettre les candidats face à un tableau blanc sans qu’ils n’aient accès à un matériel de référence, scénario de travail que des développeurs ont qualifié de démoralisant, mais aussi de test irréaliste de la capacité réelle.

C’est David Heinemeier Hansson qui a ouvert le bal en déclarant : « bonjour, je m’appelle David. Je ne parviendrais pas à écrire un tri à bulles [ou tri par propagation : un algorithme de tri qui consiste à comparer répétitivement les éléments consécutifs d'un tableau, et à les permuter lorsqu'ils sont mal triés]sur un tableau blanc. Je cherche du code sur Internet tout le temps. Je ne fais pas d'énigmes ».


En guise de réponse à son Tweet, certains développeurs ont suivi le ton de cet « aveu ». Comme l’ingénieur Tim Dierks qui a déclaré « bonjour, je m'appelle Tim. Je suis un responsable d’équipe chez Google avec plus de 30 ans d'expérience en développement, pourtant j'ai besoin de chercher comment obtenir la longueur d'une chaîne Python ».


Ou encore le développeur Lukas Kollmer qui a déclaré « bonjour, je m’appelle Lukas. J’écris du code Objective-C depuis près de 8 ans, mais pourtant j’ai toujours besoin de chercher la syntaxe objc block sur Google ».

Même son de cloche chez un autre développeur qui a déclaré « bonjour, mon nom est Bruce. Je développe en Clojure depuis 7 ans déjà et j’ai toujours copié et collé les déclarations des espaces de noms, puis je les ai changées ».

« Le seul monde où vous auriez besoin de pouvoir vous souvenir d'un algorithme serait un monde post-apocalyptique, où les disques durs de tous les ordinateurs connectés à Internet seraient grillés et toutes les copies de documents universitaires fondamentaux et de manuels d'informatique auraient été réduits en cendres », a estimé le professeur Quincy Larson dans un billet de blog intitulé « l’entretien au tableau blanc est une compétence discrète, tout comme être capable de se rappeler Pi à un millier de décimales ».

Et d’expliquer que ce processus « refroidit de nombreuses personnes qui sont sous-représentées dans le domaine du développement de logiciels ». « Si vous êtes occupés à travailler et à élever des enfants, vous voulez passer autant de temps que possible à apprendre à coder et non effectuer des mémorisations par coeur qui n'auront aucune importance une fois que vous aurez commencé votre travail ».

Il arrive que les développeurs passent des jours, voire des semaines entières à se préparer à cette épreuve, motivés en partie par la peur d’être interrogés sur un algorithme qu’ils n’ont pas étudié ou qu’ils ne maîtrisent pas. « Une petite industrie a émergé qui nous rappelle le mal-être de la préparation au SAT », a expliqué Karla Monterroso, vice-président des programmes pour Code2040, une organisation pour les techniciens noirs et latinos, dans une critique de l'entrevue du tableau blanc. « Un individu peut dépenser des milliers de dollars à apprendre les normes culturelles nécessaires pour se mettre dans un bureau d'une entreprise de technologie ».

En décembre, Aline Lerner, l'un des fondateurs de Interviewing.io, un service qui permet aux développeurs de se préparer par la pratique pour des entretiens techniques et effectue même des entretiens anonymement pour certaines entreprises, a écrit un billet de blog intitulé « vous ne pouvez pas améliorer la diversité dans la technologie sans corriger l’entretien technique ».

« Après avoir tiré des données de milliers d'entretiens techniques, il est devenu clair pour nous que l'entretien technique est un processus dont les résultats sont non déterministes et souvent arbitraires », a-t-elle écrit. « Nous croyons que l'entretien technique est un processus brisé pour tout le monde, mais que les défauts dans le système ont encore plus de répercussions sur les groupes sous-représentés ».

Certaines entreprises, comme Foursquare, ont déjà abandonné l'entretien sur le tableau blanc.

Source : l'entretien technique est brisé, billet David Hansson, tweet David Hansson, billet Quincy Larson, tweet Tim Dierks, billet Aline Lerner, Foursquare

Et vous ?

Quels sont vos « péchés » de programmation ?
Partagez-vous cet avis sur le tableau blanc en entretien technique ou pensez-vous qu'il est nécessaire ? Pourquoi ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Traroth2
Membre émérite https://www.developpez.com
Le 03/03/2017 à 11:37
Personnellement, j'ai utilisé une méthode que je trouve assez efficace : annoncer un sujet de discussion technique à l'avance, dans le mail de confirmation de rendez-vous, pour l'entretien.

Fondamentalement, l'effet de surprise est toujours au détriment du candidat. Mais aussi du recruteur, puisqu'il va avoir du mal à déceler les bons candidats. En tant que recruteur, je ne veux pas savoir ce que le candidat va pouvoir imaginer en 5 minutes, mais ce qu'il peut produire en réfléchissant à tête reposée. Et si on prend un sujet un peu pointu, c'est facile de détecter ceux qui ne comprennent rien à ce qu'ils racontent. L'inconvénient, c'est que le recruteur doit être compétent aussi, mais est-ce un inconvénient ?

On peut même aller plus loin et annoncer le plan complet de l'entretien dans le mail. Moins le candidat est stressé, plus on peut voir ce qu'il vaut dans une situation proche du réel. Personnellement, je vais jusqu'à demander aux candidats de me raconter une blague, en début d'entretien (ça, ce n'est pas moi qui l'ai inventé).
15  0 
Avatar de Jarodd
Membre expérimenté https://www.developpez.com
Le 03/03/2017 à 11:02
J'ai trouvé cette initiative de "coding out" très rafraîchissante et marrante. Ca met bien en exergue le défaut du recrutement par des gens qui ne connaissent pas notre métier ni notre façon de travailler.

Et ça permet de lutter contre le syndrôme de l'imposteur qu'on peut ressentir à force d'être piégé dans les entretiens par ces questions sans sens

Sinon, qu'est-ce que le SAT ? Et par "techniciens (noirs et) latins", vous voulez dire latinos ?
10  0 
Avatar de leroivi
Membre régulier https://www.developpez.com
Le 03/03/2017 à 13:31
Perso, j'ai TOUJOURS les docs de référence de ce avec quoi je travaille ouvert, prêt à vérifier le moindre détail, que ce soit -dans mon cas- la documentation Qt, la documentation du projet courant (fait par les collègues, voire moi-même), ou même la documentation de la STD avec cppreference.

Ce style d'entretien n'est pas si délirant je pense, ce qui l'est c'est les conclusions qu'on en tire. Il faut juste pouvoir juger ce qu'on a pu observer à sa juste valeur, et ce n'est donc pas à considérer comme représentatif du travail qui pourra être effectué ensuite.

Citation Envoyé par ilatech Voir le message
Je préfère des questions du genre "Est-ce que vous avez un projet perso à me présenter ?", "Participez-vous à un projet open-source ?" ou "Faites-vous des contribution sur github ?". Là on peut beaucoup mieux juger un candidat.
Contre. On demande à un commercial ses ventes sur leboncoin ? Je suis d'accord qu'on puisse mettre ses réalisations perso en avant, mais il ne faut pas que ça en soit une norme/une obligation. Le gars qui n'a pas eu le temps, qui a dû consacrer sa vie perso à autre chose que l'info ne doit pas être pénalisé, il faut bien différencier la vie perso et professionnelle tout de même !
8  0 
Avatar de bihetq
Membre à l'essai https://www.developpez.com
Le 03/03/2017 à 14:04
Hello,

Citation Envoyé par leroivi Voir le message
Perso, j'ai TOUJOURS les docs de référence de ce avec quoi je travaille ouvert, prêt à vérifier le moindre détail, que ce soit -dans mon cas- la documentation Qt, la documentation du projet courant (fait par les collègues, voire moi-même), ou même la documentation de la STD avec cppreference.

Contre. On demande à un commercial ses ventes sur leboncoin ? Je suis d'accord qu'on puisse mettre ses réalisations perso en avant, mais il ne faut pas que ça en soit une norme/une obligation. Le gars qui n'a pas eu le temps, qui a dû consacrer sa vie perso à autre chose que l'info ne doit pas être pénalisé, il faut bien différencier la vie perso et professionnelle tout de même !
Pour la première partie, j'ai l'habitude de fonctionner de la même façon, et je trouve cela beaucoup plus intelligent de fonctionner comme cela. Nous ne sommes pas des robots nous ne pouvons pas penser à tout.

Pour la deuxième partie, je partage aussi ton point de vus. On m'a demandé lors de tous mes entretiens les différents projets personnels et autre que j'avais pu faire. A croire que pour les recruteurs nous ne sommes bon qu'à faire du code et que nous n'avons pas de vie perso... Quand je sors du boulot je n'ai pas forcément envie de me remettre dans le code en rentrant chez moi... Je préfère faire passer ma vie de famille et personnelle avant tout, et faire des projets perso, ou contribuer à des projets libre quand j'en ai le temps et l'envie.

Malgré tout, je suis aussi contre le "tableau blanc" lors des entretiens, cela peut provoquer du stress et faire perdre ses moyens à un candidat. Il vaut mieux mettre à profit la période d'essai pour voir les capacités réelle d'un développeur plutôt que de faire un choix semi arbitraire avec l'examen du "tableau blanc".
7  0 
Avatar de Matthieu Vergne
Expert éminent https://www.developpez.com
Le 03/03/2017 à 16:22
Citation Envoyé par Stéphane le calme Voir le message
Quels sont vos « péchés » de programmation ?
J'avoue, j'utilise l'auto-complétion de mon IDE. Si je me sens coupable ? Pas le moins du monde !
J'avoue, je copie et m'inspire de codes sur le net. Les problèmes de licences ? Aucun, vu que j'en tiens compte quand il y en a une et je cite mes sources sinon !

Citation Envoyé par Stéphane le calme Voir le message
Partagez-vous cet avis sur le tableau blanc en entretien technique ou pensez-vous qu'il est nécessaire ? Pourquoi ?
Tout dépend de ce qu'on entend par cet entretien technique sur tableau blanc. Je n'ai rien contre tant que l'interviewer ne cherche pas les broutilles, mais cherche à comprendre le cheminement du raisonnement, et pose des questions sur comment j'aurais fait évoluer le code au tableau dans telle ou telle condition. S'il commence à me demander si je suis sûr que c'est bien "getSize()" et non "getLength()", ou si il me fait la remarque sur une erreur d'étourderie, je lui ferai remarquer que, heureusement pour moi, je ne postule pas pour un poste de compilateur. Après tout, chacun son boulot.
6  0 
Avatar de ilatech
Membre du Club https://www.developpez.com
Le 03/03/2017 à 11:19
Citation Envoyé par Stéphane le calme Voir le message

Quels sont vos « péchés » de programmation ?
Je regarde souvent sur Internet pour trouver des exemples de codes, même pour des choses très simples. Ça me donne souvent des idées.
J'aime bien aussi le papier et le crayon.

Citation Envoyé par Stéphane le calme Voir le message

Partagez-vous cet avis sur le tableau blanc en entretien technique ou pensez-vous qu'il est nécessaire ? Pourquoi ?
C'est n'importe quoi car tout le monde fait des recherches sur Internet, dans des livres, des notes, l'appel à un ami, etc. Ce n'est pas aberrant, bien au contraire car quand on travaille dans une entreprise le but est de "produire" du code, mais pas forcément de le faire tout seul dans son coin en parfait autarcie.

Je préfère des questions du genre "Est-ce que vous avez un projet perso à me présenter ?", "Participez-vous à un projet open-source ?" ou "Faites-vous des contribution sur github ?". Là on peut beaucoup mieux juger un candidat.
4  0 
Avatar de Metalman
Membre expert https://www.developpez.com
Le 03/03/2017 à 13:34
Enfin les langues se délient...
Ouf...
Oui il y a des algos faciles à retenir, mais il y en a d'autres... zut quoi.
Même celui qui fait passer l'entretien ne serait pas toujours capable de s'en souvenir... (voire le meilleur : selon le contexte on peut avoir plusieurs algos, et le recruteur n'y pensait même pas/plus)

Merci à eux d'avoir le courage de nous l'avouer

Sinon, qu'est-ce que le SAT ?
Le SAT, c'est un examen : Studyrama : tout-savoir-sur-le-sat-scholastic-assessment-test
4  0 
Avatar de ultimatemanu
Nouveau membre du Club https://www.developpez.com
Le 03/03/2017 à 14:38
Pour ma part j'ai vécu un recrutement de rêve il y a qqs années: les mecs m'ont donné une clef USB avec tout l'environment de dev + la doc dessus et m'ont dit: vas-y, tu prends une semaine pour développer un truc, ce que tu veux, et tu nous le présente.
Bilan: cela va faire 10 ans que je travaille avec eux. D'abord en tant que salarié, et depuis quelques années comme un de leur prestataire. Que du bonheur!
4  0 
Avatar de TJ1985
Membre chevronné https://www.developpez.com
Le 10/03/2017 à 10:35
Ce type d'entretien est normalement la marque d'une grande incompétence de la part de ceux qui le font passer. Il revient à un QCM : Pas besoin de réfléchir au contenu, pourvu que les bonnes cases soient cochées.
Cette manière de faire est en contradiction totale avec ce qui m'a amené à l'informatique (analyse, conception, programmation, installation, maintenance, sans parler de la partie matérielle ni du réseau...) il y a fort, fort longtemps. Et c'est bien dommage. Depuis des décennies "on" essaie d'industrialiser le processus de création d'applications. Mais la contradiction est inhérente à l'expression : Une application est "créée", elle n'est pas usinée. Ou si on l'usine, on obtiendra un produit industriel, adapté au plus grand nombre pour 80% de ses fonctions. Ca peut suffire pour une comptabilité, qui est la même en gros pour tout le monde. Mais ensuite, industrialiser des applications métier ne fait aucun sens et aboutit au contraire à stériliser un domaine.
Bref ! Je préfère infiniment quelqu'un capable d'expliquer ses choix de développement, de me montrer ce qu'il utilise et comment il l'utilise pour écrire son code, comment il organise son poste de travail, à quel rythme il avance et d'où il tire ses ressources de référence qu'un petit robot bien calibré capable de me dégoiser le Knuth par coeur. Vous ne savez pas ce qu'est le Knuth ? Tant mieux !
Vous voulez vraiment tester ce que quelqu'un peut faire ? Donnez-lui un bout d'application à maintenir, un truc qu'il n'aura pas encore vu. Et voyez comment il s'y prend et comment il évolue. En quatre heures, vous saurez si oui ou non, et ce sera de la vraie connaissance.
Quant au péché... J'ai dû produire pas mal de code COBOL, partie en maintenance, partie de neuf. J'ai dû écrire pas loin d'un million de lignes, plutôt plus (si, si, je vous jure, ça va vite et j'ai duré longtemps). Je suis toujours incapable de démarrer un programme COBOL de rien, j'ai absolument besoin d'un patron syntaxique. Et ça ne m'a jamais, mais alors jamais posé le moindre problème !
Donc, vu d'un oeil de dinosaure, ne vous cassez pas la tête avec le tableau blanc. Si quelqu'un vous y colle, tournez les talons, vous trouverez sans doute une boîte plus intéressante pas loin dans le coin.
4  0 
Avatar de Omote
Membre averti https://www.developpez.com
Le 03/03/2017 à 15:44
Il m'arrive très souvent de recherché la solution à un problème sur internet. Avec le temps je mémorise les façons de faire et pourtant je retourne encore régulièrement pour voir si il n'y en a pas de meilleurs. StackOverflow est très pertinent sur ce point. Quelqu'un qui réutilise tout le temps la même solution peut se priver des avancés des languages.
3  0