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?
Antworten:
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.
quelle
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.sln
in 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.
quelle
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.
quelle
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.
quelle
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.
quelle