Pre-Screening-Codierungstest - Wie lange ist das sinnvoll? [geschlossen]

22

BEARBEITEN

Nach gründlichem Nachdenken und Nachdenken über das Thema wurde mir klar, dass die meisten Probleme, die ich in dieser Frage ansprach, eher aus persönlicher als aus beruflicher Perspektive kamen. Daher haben die Moderatoren diese Frage wegen der sehr persönlichen, subjektiven Natur des Problems, über das ich zu sprechen versuchte, zurückgestellt. Ich habe überlegt, die Frage umzuformulieren, aber ich konnte nicht wirklich einen Weg finden, die Frage objektiver zu manifestieren, damit sie Gegenstand einer Diskussion sein kann, in der Antworten mit irgendwelchen Beweisen oder Referenzen belegt werden können.

Für diejenigen, die noch interessiert sind, versuche ich, eine Zusammenfassung der Diskussion zu geben, die aus dieser Frage hervorgegangen ist:

  • ein 4 stunden vorgespräch, offsite programmiertest ist aber nicht üblich
  • Viele Leute wiesen darauf hin, dass Sie für einige Unternehmen viel länger als alles zusammen interviewen würden
  • Es ist unsere persönliche Entscheidung, ob wir einen Test machen oder nicht, und wir können dies basierend auf unseren Umständen und den wahrgenommenen Vorteilen einer Einstellung für das Unternehmen bewerten
  • Alle Unternehmen sind anders als die Menschen, und es kann durchaus sinnvoll sein, dass ein Unternehmen einen längeren Offsite-Test vor dem Vorstellungsgespräch durchführt, wenn dies für seine Bedürfnisse oder Umstände geeignet ist

Ich wollte, dass meine ursprüngliche Frage lautet , wie vernünftig es ist , 4 Stunden von mir zu erwarten und wie ethisch es ist, ein Problem auszusprechen, damit die Lösung (nicht der Code, sondern das Design) möglicherweise für das Unternehmen verwendet werden kann. Wie ich jetzt sehen kann, können diese beiden Fragen (bestenfalls) nur in einer Forumsdiskussion untersucht werden, anstatt ein Frage-Antwort-Community-Tool wie stackexchange zu verwenden.

Ich fand jedoch alle Ihre Antworten wertvoll und danke für das Teilen.

ORIGINAL POST

Ich interviewe für mehrere Positionen und die meisten beinhalten eine Vorab-Screening-Phase, in der ich einen Codierungstest einreichen muss, bevor das Telefoninterview oder das Vor-Ort-Interview stattfinden würde. Ich habe mich ziemlich an diese Idee gewöhnt und finde es ziemlich vernünftig, dass Unternehmen dies von mir erwarten, damit sie überprüfen können, welche Art von Arbeit ich selbst produzieren kann.

Generell habe ich die Erfahrung gemacht, dass diese Art von Codierungsübungen meist kleine Programmieraufgaben sind. Mach ein bisschen Logik, implementiere vielleicht einen kleinen Algorithmus, öffne eine Datei und lese / schreibe Daten, sowas. Selbst die einfachste Aufgabe kann mit einer netten Trennung von Logik, prüfbaren Komponenten usw. ausgeführt werden, um zu sehen, wie der Kandidat codiert, im Allgemeinen, wie gut er auf die Art von Job vorbereitet ist, den ein Unternehmen ausfüllen möchte.

Kürzlich bin ich auf eine Firma gestoßen, die mir einen Codierungstest mit einer ganzseitigen Beschreibung ihrer Aufgabe geschickt hat und mich gebeten hat, ein echtes Problem ihres Geschäfts zu lösen (ich möchte keine Einzelheiten zum Schutz der Firma nennen, sondern den Test war ziemlich genau das, was sie tun). Sie beschrieben ein ziemlich komplexes zu implementierendes System mit realen Daten und kamen schließlich zu dem Schluss, dass der Codierungstest nicht länger als 4 Stunden dauern sollte .

Ist es vernünftig von einem Unternehmen zu erwarten, dass ich in meiner Freizeit 4 Stunden an ihrer Dummy-Aufgabe arbeite, noch bevor sie zu mir Hallo sagen würden? (der Personalvermittler hat mir den Codierungstest geschickt)

Verstehen Sie mich nicht falsch, ich bin motiviert, einen neuen Job und neue Herausforderungen zu finden, aber die meisten Unternehmen erwarten, dass ich maximal 1-2 Stunden für eine solche Aufgabe aufbringe, und solche Aufgaben waren schon immer weitaus weniger kompliziert.

Was ich als Fazit mit dieser Firma gezogen habe, ist, dass entweder:

1) Meine Motivation ist nicht gut und wahrscheinlich suchen sie jemanden anderen

2) Sie respektieren ihre zukünftigen Angestellten nicht, wenn sie erwarten, dass solch lange Codierungstests auch ohne sie zu begrüßen sind

3) Sie wollen nur eines der Probleme herausgeben, an denen sie arbeiten, und sehen, ob es einen begeisterten jungen Mann gibt, der es für sie kostenlos lösen würde (verstehen Sie mich auch nicht falsch, ich bin kein Verschwörungstheoretiker, aber ich habe es solche Geschichten gehört ...)

Wie viel ist Ihrer Meinung nach vernünftig, wenn ein Unternehmen erwartet, dass Kandidaten Zeit für ihre Dummy-Codierungstests aufwenden, ohne mit ihnen zu sprechen? Was ist Ihre Erfahrung im Allgemeinen?

Aston
quelle
Ihr Kommentar ist fair. Es interessiert mich jedoch, was Sie davon halten, wie viel es vernünftig ist, zu erwarten, dass jemand 4 Stunden für eine Voruntersuchung aufbringt.
Aston
1
Es ist ein wirtschaftliches Unterfangen, dessen Angemessenheit davon abhängt, was der Markt tragen wird. Das wird mit den Bedingungen schwanken. Wenn es sich um den Markt eines Arbeitgebers handelt (dh viele Unternehmen streben nach wenigen Kandidaten), wird dies weniger toleriert als der Markt eines Arbeitgebers. Ich habe insgesamt zwölf Stunden für die Position, die ich jetzt innehabe, interviewt, weil die potenziellen Vorteile von vornherein deutlich gemacht wurden. Zehn Jahre später hatten sie Recht, und jede Minute, die ich damit verbrachte, war eine lohnende Investition.
Blrfl
3
Wenn Sie jemals bei einem der großen Software-Unternehmen ein Interview geführt haben, werden Sie oft zu dessen Standort geflogen (was für mich 10 Stunden Reisezeit bedeutete) und verbringen dann einen 8-stündigen Tag (oder zwei, was nicht ungewöhnlich ist) mit Programmieren / Entwerfen / interviewen. Ich vermute, die Frage ist, ob Sie der Meinung sind, dass das Unternehmen die Macht hat, dies zu fordern.
Steven Evers
1
Meine Erfahrung mit "großen Softwareunternehmen" war, dass die erste Phase ein einstündiges Telefoninterview war, und das ist fair. Was ich hier vermisse, ist, dass sie 4 Stunden Arbeit von mir erwarten, ohne dass sie etwas dazu beitragen. Ich habe ein bisschen mehr nachgedacht und mir gedacht, dass sie vielleicht nicht zu viel Zeit haben und wenn sie jemanden mögen, würden sie ihn nach diesen 4 Stunden Arbeit so ziemlich einstellen. In diesem Fall kann ich ihren Ansatz verstehen (dies bezieht sich auf Dunks Antwort).
Aston

Antworten:

24

Lassen Sie mich einen Moment auf die Seite des Unternehmens treten, da die anderen Antworten noch nicht so weit sind. Es wäre nahezu unmöglich, eine brauchbare Codebasis aus einem Konglomerat von 4-stündigen Codierungstests von Personen zu erstellen, deren Qualifikationen völlig unbekannt sind. Das Erstellen einer ausreichend detaillierten Spezifikation, das Überprüfen der Antworten und das Integrieren in den Rest Ihres Codes würde länger als 4 Stunden dauern. Nicht zu vergessen, dass die nützlichsten Softwareprojekte auf Unternehmensebene Tausende von Arbeitsstunden erfordern. Der Gedanke, ein Geschäft aufzubauen, indem man es in 4-Stunden-Schritte mit jeweils wochenlangen Bearbeitungszeiten aufteilt, ist offen gesagt lächerlich.

Ein echtes Geschäftsproblem zu vermitteln, ist eine der besten Methoden, um festzustellen, ob jemand in der Lage ist, auf schockierende Weise echte Geschäftsprobleme zu lösen. Ich mache dies häufig in Interviews (obwohl ich nach allgemeinen Gestaltungsprinzipien und nicht nach 4 Stunden Code frage), und jedes Mal war es ein Problem, das ich bereits gelöst habe. Wenn ich es nicht bereits gelöst hätte, würde der Test fast alle Beweiskraft verlieren.

Ob sich ein 4-Stunden-Test für Sie lohnt, ist eine persönliche Entscheidung. Mir wurde immer beigebracht, das Suchen nach Vollzeitarbeit als Vollzeitjob zu behandeln. Wenn Sie arbeitslos oder unterbeschäftigt sind und 8 Stunden am Tag nach Arbeit suchen, ist ein 4-Stunden-Codierungstest nichts. Ich habe viel länger damit verbracht, rostige Sprachen aufzufrischen, Portfolio-Programme zu schreiben und Lebensläufe für bestimmte Positionen anzupassen.

Andererseits sind einige der besten Arbeitnehmer bereits erwerbstätig und suchen nur beiläufig nach besseren Möglichkeiten. Es ist unwahrscheinlich, dass Menschen in dieser Situation die strengen Anforderungen eines 4-Stunden-Tests erfüllen, es sei denn, die Gelegenheit ist hervorragend. Das ist jedoch das Problem des Unternehmens, nicht deins.

Was die Einstellung des Unternehmens gegenüber seinen Mitarbeitern angeht, kann man meiner Meinung nach so oder so nichts sagen, außer dass sie es wahrscheinlich satt haben, mit unqualifizierten Bewerbern in einem Maße umzugehen, das sie zu werfen bereit sind einige der guten mit den schlechten aus.

Karl Bielefeldt
quelle
Auch das OP sagte, dass der Test nicht länger als 4 Stunden dauern sollte. Ich denke, wenn der Test einen Kandidaten <4 Stunden dauert, wären sie wahrscheinlich sowieso nicht interessiert.
Tombatron
Danke für die Antwort. Vielleicht bin ich der zweite Typ, der nicht so leicht 4 Stunden Zeit für eine solche Aufgabe hat, also suchen sie vielleicht jemanden, der dies tut. Und ja, ein reales Problem zu geben ist aus den von Ihnen genannten Gründen von Vorteil, und ich bin auf solche Aufgaben gestoßen, z. B. als ich für ein Fernsehunternehmen interviewt habe, dass ich einen Kanalabonnement-Rechner erstellen musste, und als ich für ein FX-Unternehmen eine Zusammenfassung brauchte Währung aus einer CSV-Datei, und das ist fair, aber diese Firma ging ein wenig zu weit von ihren Erwartungen für mich. Vielleicht nur für mich.
Aston
3
Ich denke, das ist ein bisschen simpel. Nicht alle Lösungen müssen in andere Systeme integriert werden - dies kann beispielsweise ein Datenanalyseprozess sein. Und obwohl der Code möglicherweise nicht direkt von der Firma verwendet wird, könnte das Design sehr gut verwendet werden. Der Testprozess sollte von Natur aus oberflächlich sein, und ich würde denken, dass mehr als eine Stunde zu viel ist.
Kirk Broadhurst
2
Eine Jobsuche als Vollzeitjob zu behandeln, ist nur dann sinnvoll, wenn Sie arbeitslos sind. Wenn Sie arbeiten, aber den Markt testen, um festzustellen, ob etwas Besseres verfügbar ist, ist dieses Maß an Engagement nur kurzfristig praktikabel, weil Sie einfach ausbrennen.
Dan Neely
11

Nein, nicht typisch , warum löst du ihre Probleme kostenlos? (4 Stunden)

1 Stunde ist typisch für einen Programmiertest. In der Vergangenheit bestand unser Programmiertest aus 4 Fragen. Die ersten drei Fragen dauerten eine halbe Stunde, die letzten eine halbe Stunde. Wir haben den Test auch bei bestehenden Mitarbeitern im Haus durchgeführt, um sicherzustellen, dass wir uns im erwarteten Zeitrahmen befanden und der Test fair war und entsprechend angepasst wurde.

Die ersten paar Fragen waren vom Typ "Fizz Buzz", um Leute auszusondern, die nicht programmieren können. Sie wurden immer härter. Die letzte Frage war eine Aufgabe zur Problemlösung. Im Allgemeinen haben wir versucht, die Menge des geschriebenen Codes auf ein paar hundert Zeilen (insgesamt) zu beschränken, und es sind keine cleveren Tricks erforderlich. Wir haben auch Leute in Bezug auf Fehlerbehandlung, Stil, Syntax, Organisation usw. bewertet. Die Fragen bezogen sich nicht auf unser Geschäft, sondern auf die Fähigkeiten und Technologien, in denen die aktuelle Plattform geschrieben wurde.

In der Regel endeten großartige Kandidaten in kürzerer Zeit als zugeteilt. Manchmal baten die Leute um zusätzliche Zeit, die wir wegen des mit der Teilnahme an einem Quiz verbundenen Stresses einplanen konnten, aber wir haben alle an ein bestimmtes Limit gebunden. Das Quiz befand sich in der aktuellen Entwicklungsumgebung und die Benutzer hatten Zugriff auf das Internet, um Referenzinformationen zu erhalten. Wir haben auch die Erwartungen an das Quiz bei jedem Kandidaten besprochen.

Einmal haben wir darüber gesprochen, unsere Codebasis (reale Welt) in das Quiz einzubeziehen, aber wir haben dies schließlich aufgrund von Bedenken, dass der Code kopiert / gestohlen / usw. wurde, verworfen (unser Chef war ein bisschen paranoid). Irgendwann sind wir einfach mit einer separaten quiz.slnin eine isolierte Entwicklungsmaschine gegangen .

Schließlich fanden wir es schwierig, einen Test zu finden, der fair war, aber weder zu schwierig noch zu einfach. Wir haben unsere Kandidaten immer nach dem Quiz gefragt und ihr Feedback eingeholt, um es für zukünftige Kandidaten zu verfeinern.

Jon Raynor
quelle
Danke für die Antwort. Ihre Methoden scheinen fair zu sein. Ich mag die Idee einfacher und schwieriger Fragen, weil sie dem Kandidaten ein gutes Gefühl dafür gibt, wie gut er es macht, auch ohne weitere Erklärung. Nehmen wir an, ich mache die drei einfachen Aufgaben und kann die letzte nicht. Ich würde mich nicht als Versager fühlen, aber ich könnte auch erkennen, dass ich mich verbessern muss. Was mich in meinem Fall wirklich gestört hat, sind die 4 Stunden Erwartung außerhalb des Standorts, noch bevor das Unternehmen mit mir sprechen würde.
Aston
@ Aston - Auch wenn Sie die letzte Frage nicht beantwortet haben, hat sie Sie nicht automatisch disqualifiziert. Vielleicht würden Sie nicht als Programmierer eingestellt werden, aber vielleicht woanders. In einigen Fällen wurden Kandidaten für andere Positionen eingestellt (Support, QS). Wir haben zuerst die Leute interviewt, gefolgt vom Quiz. Ich nehme an, Sie könnten zuerst ein Quiz durchführen und diese Person sofort ausschließen, aber vielleicht verpassen Sie einige potenziell gute technische, aber nicht programmierbare Kandidaten.
Jon Raynor
8

Ich finde, Codierungstests im Interview sind sowieso eine Last von Tosh. Niemand codiert etwas anderes als die einfachste Routine unter Druck ohne die üblichen Umgebungen und Werkzeuge, so dass die Ergebnisse, die Sie erhalten, bestenfalls zweifelhaft sind.

Was ich als wirklich gute Tests für die Fähigkeiten eines Programmierers herausgefunden habe, ist, ihm einen Projektcode zu geben und ihn zu bitten, diesen zu überprüfen. Dies funktioniert sehr gut, wenn der Code mehrere offensichtliche Fehler, mehrere offensichtliche Codefehler und einige fragwürdige Vorgehensweisen aufweist. Ein guter Programmierer wird Ihnen alle Informationen mitteilen und mit Ihnen besprechen, warum ein Code nicht „falsch“ ist, sondern zur Vereinfachung der Wartung oder Ähnlichem verbessert werden könnte. Ein schlechter Programmierer wird einen Fehler finden und anhalten.

Jeder Job, der von Ihnen erwartet, dass Sie einen Test durchführen, der länger als eine halbe Stunde dauert, hat nicht einmal so lange damit verbracht, einen guten, zielgerichteten Test zu erstellen, der mehr als nur eine vage Vorstellung von Ihren Fähigkeiten vermittelt. (Die meisten Unternehmen finden es sehr schwierig, Zeit mit der Vorbereitung auf das Vorstellungsgespräch zu verbringen.)

Wenn ich einen Test bekommen würde, wie Sie ihn hätten, würde ich die Antwort in Pseudocode schreiben. Dies sollte ausreichen, um mein Verständnis von Codierung und Design zu demonstrieren, ohne die gesamte Kompilierungs-, Erstellungs- und Testphase durchlaufen zu müssen, die Sie für ein normales Arbeitsprojekt benötigen.

gbjbaanb
quelle
1
Es tut mir leid, wenn ich nicht klar war, aber ich habe auf einen Test verwiesen, der vor dem Interview stattfindet, damit ich ihn zu Hause alleine machen kann.
Aston
1
trotzdem würde ich es pseudocode machen. Entweder wollen sie meine Gedanken zur Lösung eines Problems, oder sie wollen freie Arbeit von Ihnen. In letzterem Fall ist dies kein Ort, an dem Sie arbeiten möchten.
gbjbaanb
@gbjbaa: ODER das wahrscheinlichere Szenario ist, dass sie die Art der Arbeit sehen möchten, die Sie tun. Insofern reichen triviale Aufgaben nicht aus. Pseudo-Code wird es nicht schneiden. Ich wette, es hat mehr als 4 Stunden gedauert, um das Problem zu definieren, es zu überprüfen, zu verfeinern und zu genehmigen. Angesichts der Tatsache, dass sie dies selbst in kürzerer Zeit hätten umsetzen können, als es nötig gewesen wäre, zu fragen, warum würden Sie glauben, dass sie freie Arbeit suchen? Wenn die Aufgabe eine oder zwei Wochen gedauert hätte, könnte ich Ihren Standpunkt sehen, aber 4 Stunden? Außerdem habe ich zu viele Leute interviewt, die gut darin waren, Gedanken auszudrücken, und die am Ende sehr schlecht darin waren, Probleme zu lösen.
Eintauchen
1
Ich bin immer ein bisschen misstrauisch, wenn die Aufgabe einer realen Situation zu nahe kommt. Ich habe Geschichten gehört, in denen Manager nur Interviews veranstalteten, um von immer klügeren Leuten Tipps zur Lösung eines bestimmten Problems zu erhalten. Es ist nicht so, dass sie es nicht selbst gelöst hätten, aber sie waren gespannt, wie jemand anderes es lösen würde. Am Ende wollten sie niemanden einstellen, aber das ist eine andere Geschichte.
Aston
3

Sie haben vielleicht keine 4 Stunden Zeit, aber jemand, der mehr an seiner Firma interessiert ist, wird es mit Sicherheit tun. Ich wurde im Wesentlichen aufgrund einer ähnlichen Aufgabe eingestellt, die ein Unternehmen von mir verlangt hatte, bevor ich die Aufgabe alleine erledigte. Offenbar ist es eine Abnormalität, sauberen und verständlichen Code, gründliche Testfälle und verständliche und kohärente Designdokumentation zu schreiben. Jemanden dabei zu sehen, hat die Leute umgehauen. Wie auch immer, jeder, mit dem ich beim Interview gesprochen habe, hat mich gelobt, was ich getan habe, und ich hatte das Gefühl, dass ich niemanden im Interview beeindrucken musste, weil sie sich bereits entschieden hatten. Es war einfach eine Sache von mir, ihnen keinen Grund zu geben, nein zu sagen, indem ich etwas Dummes tue.

Ich bin mir also einig, dass 4 Stunden eine ziemlich große Zeitinvestition sind, aber es bedeutet auch, dass die Aufgabe so groß ist, dass Sie die Möglichkeit haben, wirklich zu zeigen, wozu Sie in der Lage sind. Ihre Arbeit spricht möglicherweise mehr als je zuvor in einer tatsächlichen Interview-Situation.

Als Randnotiz: Ich habe in letzter Zeit etwas Ähnliches versucht, aber ein viel kleineres Problem verwendet, und ich war mit den Ergebnissen nicht zufrieden. Kleine Probleme sind zu trivial, um genügend Wissen der Person zu demonstrieren. Außerdem besteht die Tendenz, dass die Person bei geringfügigen Problemen einen Trick / ein Detail erkennen muss, um das Problem zu lösen. Es besteht also ein gewisses Gleichgewicht zwischen der Inanspruchnahme von zu viel Zeit und dem Verzicht auf reale Vorteile, da es sich um eine triviale Aufgabe handelt. Ich würde denken, eine 4-stündige Aufgabe ist wahrscheinlich die richtige Zeit, um komplex genug zu sein, damit die Kandidaten ihre Fähigkeiten unter Beweis stellen können und nicht so lange, bis sich niemand darum kümmert.

Dunk
quelle
Danke für die Antwort. Nach ein wenig Selbstreflexion, Ihrer Antwort und dem Versuch, den Fokus von mir auf das Unternehmen zu lenken, kann ich sehen, wie vernünftig dies aus ihrer Sicht sein könnte. Vielleicht ist es ihr Prozess, die 4 Stunden Arbeit zu bekommen und wenn sie jemanden mögen, würden sie einladen und ein Angebot machen. Vielleicht hatten sie in der Vergangenheit schlechte Erfahrungen gemacht, dass die Leute gut in kleinen, aber nicht in größeren Aufgaben waren, oder sie haben viel zu viel Zeit damit verbracht, Leute zu interviewen, die nicht gute Kandidaten waren. Ich denke immer noch, 4 Stunden ein bisschen zu viel, aber ich könnte es tun ...
Aston
1

Ich habe einmal einen 6-stündigen Codierungstest gemacht. Als ich diesen Test absolvierte, war ich ziemlich zuversichtlich, dass ich eingestellt werden würde - obwohl dies der Fall war, war ich mit dem weiteren Vorgehen nicht allzu zufrieden.

Offensichtlich ist es übertrieben, viele Arbeitgeber zu haben, die jeweils nach 4 Stunden fragen. Nach was die Person in dem Test suchte, den ich machte, war mein Kodierungsstil - ich wurde angestellt, weil mein 'am nächsten' zu seinem war. Betrachten Sie in diesem Zusammenhang das Problem aus dieser Perspektive: Ist es zunächst ein interessantes Problem, das sich für Sie auf jeden Fall lohnt, es zu lösen? Immerhin konnte man etwas Wertvolles lernen.

Zweitens: Wenn Sie den Test bestehen können, heißt das, dass Sie angestellt sind? Wenn dies nicht offensichtlich ist, müssen Sie entscheiden, ob es andere Gründe gibt, dies trotzdem zu tun.

Drittens wird geschätzt, dass es vier Stunden dauert, aber Sie werden es möglicherweise anders herausfinden. Wissen sie wirklich, wie lange das dauern soll? Höchstwahrscheinlich lautet die Antwort nein. Daher werden sie die Leute innerhalb von vier Stunden weiter testen, bis sie feststellen, dass es nicht mehr in vier Stunden passt. In diesem Fall verschwenden Sie Ihre Zeit. Der beste Ansatz ist dann, aggressiv mit dem Einstellungsmanager umzugehen und herauszufinden, ob Sie nach vier Stunden aufhören und ihnen das geben sollten, was Sie haben, oder fortzufahren, bis es erledigt ist, und ihnen mitzuteilen, wie lange es gedauert hat. Kurz gesagt, es kann eine Charakterprüfung geben, die darin enthalten ist, und der bloße Versuch, sie zu akzeptieren, kann Unerfahrenheit aufzeigen.

Meredith Poor
quelle