Test de codage de présélection - Combien de temps est raisonnable? [fermé]

22

MODIFIER

Après beaucoup de réflexion et d'auto-réflexion sur le sujet, j'ai réalisé que la plupart des questions que j'ai soulevées dans cette question ne venaient que d'un point de vue personnel plutôt que professionnel. Par conséquent, les modérateurs ont mis cette question en suspens en raison de la nature très personnelle et subjective du problème dont j'ai essayé de parler. Je pensais reformuler la question, mais je ne pouvais pas vraiment trouver un moyen possible de manifester la question de manière plus objective afin qu'elle puisse faire l'objet d'une discussion où les réponses peuvent être étayées par des preuves ou des références.

Pour ceux qui sont toujours intéressés, j'essaie de résumer la discussion issue de cette question:

  • un pré-entretien de 4 heures, un test de programmation hors site n'est pas habituel mais
  • beaucoup de gens ont souligné que pour certaines entreprises, vous intervieweriez beaucoup plus longtemps que cela tous ensemble
  • c'est notre décision personnelle si nous passons un test ou non, et nous pouvons évaluer cela en fonction de notre situation et des avantages perçus d'être embauché pour l'entreprise
  • toutes les entreprises sont différentes, tout comme les gens, et il peut être parfaitement raisonnable pour une entreprise d'utiliser un test hors site plus long avant l'entrevue, si c'est ce qui correspond à ses besoins ou à sa situation

Je voulais que ma question initiale soit de savoir à quel point il est raisonnable d'attendre 4 heures de moi et comment éthique de donner un problème afin que la solution (pas le code, mais la conception) puisse éventuellement être utilisée pour l'entreprise. Comme je peux le voir maintenant, ces deux questions ne peuvent (au mieux) être explorées que dans une discussion de forum, plutôt que d'utiliser un outil communautaire de type question-réponse comme stackexchange.

Cependant, j'ai trouvé toutes vos réponses précieuses et merci du partage.

POSTE ORIGINAL

J'entrevue pour plusieurs postes, et la plupart d'entre eux comprennent une phase de présélection où je dois soumettre un test de codage avant l'entretien téléphonique ou l'entretien sur place. Je me suis à peu près habitué à cette idée, et je trouve tout à fait raisonnable que les entreprises s'attendent à ce que je fasse cela afin qu'elles puissent vérifier quel type de travail je peux produire par moi-même.

Généralement, mon expérience est que ce type d'exercices de codage sont principalement de petites tâches de programmation. Faites de la logique, implémentez peut-être un petit algorithme, ouvrez un fichier et lisez / écrivez des données, des trucs comme ça. Même la tâche la plus simple peut être mise en œuvre avec une belle séparation de la logique, des composants testables, etc., pour voir comment le candidat code, généralement dans quelle mesure il est préparé pour le type de travail qu'une entreprise veut combler.

Récemment, je suis tombé sur une entreprise qui m'a envoyé un test de codage avec une description d'une page entière de leur exercice, me demandant de résoudre un problème réel de leur entreprise (je ne veux pas dire de détails pour protéger l'entreprise, mais le test était à peu près sur ce qu'ils font). Ils ont décrit un système assez complexe à implémenter, comprenaient des données réelles et ont finalement conclu que le test de codage ne devrait pas prendre plus de 4 heures .

Est-il raisonnable de la part d'une entreprise de m'attendre à ce que je passe 4 heures à travailler sur sa mission factice pendant mon temps libre, avant même de me dire bonjour? (le recruteur m'a envoyé le test de codage)

Ne vous méprenez pas, je suis motivé pour trouver un nouvel emploi et de nouveaux défis, mais la plupart des entreprises s'attendent à ce que je passe un maximum de 1 à 2 heures sur une tâche comme celle-ci, et de telles tâches ont toujours été beaucoup moins compliquées.

Ce que je suis venu en conclusion avec cette société, c'est que:

1) Ma motivation n'est pas bonne et ils recherchent probablement quelqu'un d'autre

2) Ils ne respectent pas leurs futurs employés de s'attendre à ce que de si longs tests de codage fassent même sans leur dire bonjour

3) Ils veulent juste donner un des problèmes sur lesquels ils travaillent et voir s'il y a un jeune gars enthousiaste qui le résoudrait gratuitement pour eux (encore une fois, ne vous méprenez pas, je ne suis pas un théoricien du complot mais j'ai entendu de telles histoires ...)

Selon vous, dans quelle mesure une entreprise peut-elle raisonnablement s'attendre à ce que les candidats passent du temps sur leurs tests de codage factices sans leur parler? Quelle est votre expérience en général?

Aston
la source
Semi-connexe: lieu de
travail.stackexchange.com/questions/6978/…
Votre commentaire est juste. Cependant, je suis intéressé par ce que vous pensez de combien il est raisonnable de s'attendre à ce que quelqu'un passe 4 heures sur une tâche de présélection.
Aston
1
C'est une proposition économique dont le caractère raisonnable est défini par ce que le marché supportera. Cela va fluctuer avec les conditions. Si c'est le marché d'un employé (c.-à-d. Beaucoup d'entreprises qui recherchent peu de candidats), il y aura moins de tolérance pour ce genre de chose que lorsque c'est le marché d'un employeur. J'ai passé un total de douze heures à interviewer pour le poste que j'occupe actuellement parce que les avantages potentiels de le faire ont été clairement définis dès le départ. Dix ans plus tard, ils avaient raison, et chaque minute que j'y consacrais était un investissement rentable.
Blrfl
3
Si vous interviewez jamais dans l'une des principales sociétés de logiciels, vous êtes souvent transporté par avion vers leur emplacement (qui était de 10 heures de voyage pour moi), puis passez une journée de 8 heures (ou deux, ce n'est pas inconnu) programmation / conception / interviewer. Je soupçonne que la question est de savoir si vous percevez ou non que l'entreprise a le poids nécessaire pour l'exiger.
Steven Evers
1
D'après mon expérience avec les «principales sociétés de logiciels», la première étape a été un entretien téléphonique d'une heure, ce qui est juste. Ce qui me manque ici, c'est qu'ils m'attendent 4 heures de travail sans aucune contribution de leur part. J'ai réfléchi un peu plus et j'ai pensé qu'ils n'avaient peut-être pas trop de temps et s'ils aiment quelqu'un, ils l'embaucheraient à peu près à partir de ces 4 heures de travail. Dans ce cas, je peux comprendre leur approche (cela se rapporte à la réponse de Dunk).
Aston

Réponses:

24

Permettez-moi de prendre le parti de l'entreprise pendant un moment, car les autres réponses ne l'ont pas encore été. Il serait presque impossible de construire une base de code utilisable à partir d'un ensemble de soumissions de tests de codage de 4 heures de personnes dont les qualifications sont complètement inconnues. La création d'une spécification suffisamment détaillée, la vérification des réponses et son intégration au reste de votre code prendraient plus de 4 heures. Sans oublier les projets logiciels les plus utiles au niveau de l'entreprise nécessitent des milliers d'heures de travail. L'idée de bâtir une entreprise en divisant cela en incréments de 4 heures avec des semaines de temps d'exécution chacun est franchement ridicule.

Donner un problème réel de l'entreprise est l'un des meilleurs moyens de déterminer si quelqu'un sera bon, choquant, pour résoudre les problèmes réels de l'entreprise. Je le fais fréquemment dans les entretiens (bien que je demande des principes de conception généraux et non 4 heures de code), et à chaque fois, cela a été un problème que j'ai déjà résolu. Si je ne l'avais pas déjà résolu, le test perdrait presque toute sa valeur probante.

La question de savoir si un test de 4 heures en vaut la peine est une décision personnelle. On m'a toujours appris à considérer la recherche d'un emploi à temps plein comme un emploi à temps plein. Lorsque vous êtes au chômage ou sous-employé et que vous passez 8 heures par jour à chercher du travail, un test de codage de 4 heures n'est rien. J'ai consacré beaucoup plus de temps à des tâches telles que le nettoyage de langues rouillées, l'écriture de programmes de portfolio et la personnalisation de CV pour des postes spécifiques.

D'un autre côté, certains des meilleurs travailleurs ont déjà un emploi rémunéré et ne recherchent que par hasard de meilleures opportunités. Les personnes dans cette situation sont peu susceptibles de passer par le rigamarole d'un test de 4 heures, à moins que l'occasion ne soit excellente. Cependant, c'est le problème de l'entreprise, pas le vôtre.

En ce qui concerne le discernement de ce que signifie l'attitude de l'entreprise envers ses employés, je ne pense pas que vous puissiez vraiment dire quoi que ce soit, à part qu'ils sont probablement fatigués de traiter avec des candidats non qualifiés, à un degré qu'ils sont prêts à jeter sur les bons et les mauvais.

Karl Bielefeldt
la source
De plus, le PO a déclaré que le test ne devrait pas prendre plus de 4 heures. Je pense que si le test prend un candidat = <4 heures, il ne serait probablement pas intéressé de toute façon.
Tombatron
Merci d'avoir répondu. Peut-être que je suis le deuxième type qui n'a pas facilement 4 heures à consacrer à une tâche comme celle-ci, alors peut-être qu'ils recherchent quelqu'un d'autre, qui en a. Et oui, donner un problème réel est bénéfique pour les raisons que vous avez mentionnées, et je suis tombé sur de telles tâches, comme lorsque j'ai interviewé pour une société de télévision, je devais faire un calculateur d'abonnement à une chaîne, quand pour une société FX, je devais résumer monnaie d'un fichier CSV, et c'est juste, mais cette entreprise est allée un peu trop loin dans leurs attentes pour moi. Peut-être juste pour moi.
Aston
3
Je pense que c'est un peu simpliste. Toutes les solutions n'ont pas besoin de s'intégrer à d'autres systèmes - cela pourrait être un processus d'analyse de données, par exemple. Et bien que le code ne puisse pas être utilisé directement par l'entreprise, le design pourrait très bien être utilisé. Le processus de test devrait être superficiel par conception, et je pense que plus d'une heure, c'est trop.
Kirk Broadhurst
2
Traiter une recherche d'emploi comme un emploi à temps plein n'est raisonnable que si vous êtes au chômage. Si vous travaillez mais testez le marché pour voir si quelque chose de mieux est disponible, ce niveau d'engagement n'est pas pratique, sauf à court terme, car vous allez juste vous épuiser.
Dan Neely
11

Non, pas typique , pourquoi résolvez-vous leurs problèmes gratuitement? (4 heures)

1 heure est typique pour un test de programmation. Dans le passé, notre test de programmation comportait 4 questions. Les 3 premières questions ont pris 1/2 heure, la dernière 1/2 heure. Nous avons également donné le test aux embauches existantes en interne pour nous assurer que nous étions dans le délai prévu et le test était juste et ajusté en conséquence.

Les premières questions étaient de type "Fizz Buzz" pour éliminer les personnes qui ne pouvaient pas programmer. Ils sont devenus de plus en plus durs. La dernière question était un exercice de résolution de problèmes. Généralement, nous avons essayé de limiter la quantité de code écrit à quelques centaines de lignes (au total) et de ne pas exiger de trucs astucieux. Nous avons également noté des personnes sur la gestion des erreurs, le style, la syntaxe, l'organisation, etc.

En règle générale, les bons candidats ont terminé en moins de temps que prévu. Parfois, les gens ont demandé du temps supplémentaire, ce que nous avons autorisé en raison du stress lié à la participation à un quiz, mais nous avons plafonné tout le monde à une certaine limite. Le quiz était dans l'environnement de développement actuel et les gens avaient accès à Internet pour obtenir des informations de référence. Nous avons également dépassé les attentes du quiz pour chaque candidat.

À un moment donné, nous avons discuté de l'incorporation de notre base de code (monde réel) dans le quiz, mais nous avons finalement rejeté cela en raison de préoccupations concernant le code copié / volé / etc (notre patron était un peu paranoïaque). Finalement, nous sommes juste allés avec un séparé quiz.slndans une machine de développement isolée.

Enfin, nous avons trouvé qu'il était difficile de trouver un test qui soit juste, mais ni trop dur ni trop facile. Nous avons toujours interrogé nos candidats sur le quiz après l'avoir pris et avons recueilli leurs commentaires pour le peaufiner pour les futurs candidats.

Jon Raynor
la source
Merci d'avoir répondu. Vos méthodes semblent être justes. J'aime l'idée de questions faciles et de questions difficiles, car elle donne au candidat une bonne idée de ses performances, même sans autre explication. Disons que je fais les 3 tâches faciles et que je ne peux pas faire la dernière, je ne me sentirais pas comme un échec, mais je pourrais également reconnaître que je dois m'améliorer. Ce qui me dérangeait vraiment dans mon cas, ce sont les 4 heures d'attente hors site, avant même que l'entreprise ne me parle.
Aston
@Aston - De plus, si vous n'avez pas répondu à la dernière question, cela ne vous disqualifie pas automatiquement. Peut-être que vous ne seriez pas embauché comme programmeur mais peut-être ailleurs. À certaines occasions, des candidats ont été embauchés pour d'autres postes (soutien, AQ). Nous avons d'abord interviewé les gens, suivi du quiz. Je suppose que vous pourriez d'abord interroger et exclure immédiatement cette personne, mais peut-être que vous manquez certains candidats potentiellement bons, mais non programmés.
Jon Raynor
8

Je trouve que les tests de codage en interview sont de toute façon une charge de tosh. Personne ne code autre chose que la routine la plus simple sous pression sans l'environnement et les outils habituels, donc les résultats que vous obtenez sont au mieux douteux.

Ce que j'ai trouvé comme de très bons tests de la capacité d'un programmeur, c'est de lui donner du code de projet et de lui demander de le revoir, cela fonctionne très bien si le code a plusieurs bogues évidents, plusieurs problèmes de code évidents et quelques pratiques douteuses. Un bon codeur vous les expliquera tous et discutera avec vous des raisons pour lesquelles certains codes ne sont pas «incorrects» mais pourraient être améliorés pour faciliter la maintenance. Un mauvais programmeur trouvera un bug et s'arrêtera.

Tout travail qui s'attend à ce que vous fassiez un test qui prend plus d'une demi-heure n'a tout simplement pas passé autant de temps à élaborer un bon test ciblé qui leur donne plus qu'une vague idée de vos compétences. (la plupart des entreprises ont du mal à passer du temps à travailler sur la configuration préalable à l'entretien).

Si on me donnait un test comme vous l'avez fait, j'écrirais la réponse en pseudo-code. Cela devrait être suffisant pour démontrer ma compréhension du codage et de la conception, sans passer par toutes les phases de compilation, de construction et de test que vous feriez pour un projet de travail normal.

gbjbaanb
la source
1
Je suis désolé si je n'ai pas été clair, mais j'ai fait référence à un test qui a lieu avant l'entretien, donc je peux le faire moi-même à la maison.
Aston
1
néanmoins, je le ferais de toute façon en pseudo-code. Soit ils veulent que je réfléchisse à la façon de résoudre un problème, soit ils veulent du travail gratuit de votre part. Dans ce dernier cas, ce ne sera pas un endroit où vous voulez travailler.
gbjbaanb
@gbjbaa: OU le scénario le plus probable est qu'ils veulent voir le type de travail que vous faites. À cet égard, les tâches triviales ne suffisent pas. Le pseudo-code ne le coupera pas. De plus, je parie qu'il a fallu plus de 4 heures pour définir le problème, le faire réviser, affiner et approuver. Donc, étant donné qu'ils auraient pu mettre en œuvre cela par eux-mêmes en moins de temps qu'il n'en a fallu pour demander, pourquoi pensez-vous qu'ils recherchent un travail gratuit? Si la tâche a pris une semaine ou deux, je pourrais voir votre point, mais 4 heures? De plus, j'ai interviewé trop de gens qui étaient bons pour exprimer des pensées et qui ont fini par être très mauvais pour résoudre des problèmes.
Dunk
1
Je suis toujours un peu méfiant si la tâche est trop proche d'une situation réelle. J'ai entendu des histoires où les gestionnaires organisaient des entretiens uniquement dans le but d'obtenir des conseils de personnes plus intelligentes sur la façon de résoudre un problème particulier. Ce n'est pas qu'ils ne l'ont pas résolu eux-mêmes, mais ils étaient impatients de voir comment quelqu'un d'autre pourrait le résoudre. Finalement, ils ne voulaient embaucher personne, mais c'est une autre histoire.
Aston
3

Vous n'avez peut-être pas 4 heures, mais quelqu'un plus intéressé par leur entreprise le fera certainement. J'ai été embauché essentiellement sur la base d'une tâche similaire qu'une entreprise m'a demandé de faire au préalable uniquement pour cette tâche. Apparemment, écrire du code propre et compréhensible, des cas de test approfondis et une documentation de conception compréhensible et cohérente est une anomalie. En fait, voir quelqu'un le faire a époustouflé. Quoi qu'il en soit, tous ceux à qui j'ai parlé lors de l'entrevue m'ont félicité pour ce que j'ai fait et j'ai senti que je ne devais impressionner personne dans l'entrevue parce qu'ils avaient déjà pris leur décision. Il s'agissait simplement de ne pas leur donner une raison de dire non en faisant quelque chose de stupide.

Donc, même si je conviens que 4 heures représentent un investissement en temps assez important, cela signifie également que la tâche est de taille suffisante pour que vous ayez l'occasion de vraiment montrer de quoi vous êtes capable. Votre travail peut très bien en dire plus que jamais dans une situation d'entrevue réelle.

En remarque: j'ai essayé une chose similaire récemment mais en utilisant un problème beaucoup plus petit et je ne suis pas satisfait des résultats. Les petits problèmes sont trop triviaux pour démontrer suffisamment les connaissances de la personne. De plus, les problèmes triviaux ont tendance à exiger de la personne qu'elle reconnaisse un truc / détail nécessaire pour résoudre le problème. Ainsi, il y a un certain équilibre entre prendre trop de temps d'une personne et ne pas en retirer de réels avantages car la tâche est trop banale. Je pense qu'une tâche de 4 heures est probablement la bonne quantité de temps pour être suffisamment complexe pour que les candidats démontrent leurs compétences et ne pas être si longue que personne ne s'en soucierait.

Tremper
la source
Merci d'avoir répondu. Après un peu de réflexion sur soi, votre réponse et une tentative de détourner l'attention de moi-même vers l'entreprise, je peux voir comment cela pourrait être raisonnable de leur point de vue. Peut-être que leur processus est à peu près tout, obtenir les 4 heures de travail et s'ils aiment quelqu'un, ils inviteraient et feraient une offre. Peut-être ont-ils eu de mauvaises expériences antérieures selon lesquelles les gens étaient bons dans les petites, mais pas sur des tâches plus importantes, ou ils ont passé beaucoup trop de temps à interviewer des gens qui ne sont pas devenus de bons candidats. Je pense encore 4 heures un peu trop, mais je pourrais le faire ...
Aston
1

J'ai fait un test de codage de 6 heures à un moment donné. Quand j'ai fait ce test, j'avais une confiance assez élevée que je serais embauché - bien que cela se soit réalisé, je n'étais pas du tout satisfait du suivi.

Évidemment, avoir beaucoup d'employeurs qui demandent chacun 4 heures est excessif. Ce que la personne recherchait dans le test que j'ai fait était mon style de codage - j'ai été embauché parce que le mien était «le plus proche» du sien. Dans ce contexte, examinez le problème sous cet angle: premièrement, est-ce un problème intéressant que la résolution vous vaut dans tous les cas? Après tout, vous pourriez apprendre quelque chose de précieux.

Deuxièmement, si vous pouvez «réussir» le test, cela signifie-t-il que vous êtes embauché? Si ce n'est pas assez évident, vous devez décider s'il y a d'autres raisons de le faire de toute façon.

Troisièmement, ils pourraient estimer que cela prend «4 heures», mais vous pourriez découvrir différemment. Savent-ils vraiment combien de temps cela devrait prendre? La réponse est probablement non. Par conséquent, ils vont continuer à tester les gens dans des délais de 4 heures jusqu'à ce qu'ils se rendent compte que cela ne tiendra pas dans quatre heures. Dans ce cas, vous perdez votre temps. La meilleure approche est alors de devenir agressif avec le responsable du recrutement et de déterminer si vous devez vous arrêter à quatre heures et leur donner ce que vous avez, ou continuer jusqu'à ce que ce soit fait et leur dire combien de temps cela a pris. En bref, il peut y avoir un test de caractère enveloppé dans cela, et simplement essayer de l'accepter selon leurs conditions peut révéler l'inexpérience.

Meredith Poor
la source