Frage:
Eine Programmieraufgabe macht Kandidaten Angst, sollten wir sie fallen lassen?
bobo2000
2016-02-02 20:44:21 UTC
view on stackexchange narkive permalink

Es ist das erste Mal, dass ich HR mache, und wir suchen einen Entwickler. Der Auswahlprozess besteht aus drei Runden: technisches Telefoninterview, Programmieraufgabe (0,5 - 1 Std. Herausforderung) und schließlich ein Interview mit dem oberen Management und mir.

Das Problem, das ich habe, ist das, wenn ich gebe Einige Kandidaten (meistens frisch Absolventen mit 1 oder 2 technischen Praktika bereits ) erledigen die Programmieraufgabe nicht nur nicht innerhalb des vorgegebenen Zeitrahmens (einer Woche), sondern ich auch nicht Hören Sie noch einmal von ihnen, es sei denn, ich folge ihnen.

Ich denke darüber nach, die Programmieraufgabe aufzugeben, aber ich denke wirklich, dass dies helfen kann, festzustellen, wer die in ihrem Lebenslauf aufgeführten Sprachen wirklich kennt.

Wie kann ich unseren Einstellungsprozess verbessern?

AKTUALISIEREN, DA DIESE FRAGE VERÖFFENTLICHT WURDE

Zum größten Teil werden viele Kandidaten von den Programmiertests abgeschreckt, was sehr frustrierend ist, da ich VIELE Kandidaten durchgehen muss, um einen zu finden, der dazu bereit ist. Trotzdem habe ich einige gefunden, die bereit sind, dies zu tun, und im Allgemeinen Folgendes festgestellt:

a) Es zeigt, dass sie eine gute Einstellung gegenüber dem Unternehmen und der Rolle haben, wenn sie dies tun sind bereit, die Extrameile zu gehen, um sie abzuschließen.

b) Sie haben Programmierfähigkeiten. Sicher, sie haben betrogen, aber wenn sie es erneut versucht haben, ist eine gute Einstellung für uns viel wichtiger, da sie viel einfacher zu handhaben sind.

Ich habe seitdem einen Diplom-Entwickler eingestellt, der es versucht hat und hat die Übung erfolgreich abgeschlossen. Er hat auch alle zusätzlichen 'Bonuspunkte' für die Aufgabe abgeschlossen. Es ist noch zu früh, um sagen zu können, wie gut er in seiner Rolle ist, da er erst vor kurzem angefangen hat.

In einigen Fällen vermeide ich es , Entwicklern die Übung zu geben, wenn sie dies bereits getan haben Ein starkes Portfolio für gute Marken und eine Erfolgsbilanz. Da er, um in die großen Marken einzusteigen, seine eigenen Eingangstests durchführen müsste.

ZWEITES UPDATE, DA DIESE FRAGE VERÖFFENTLICHT WURDE

Der Diplom-Entwickler hat sich als Star-Mitarbeiter herausgestellt. Wir haben ihn behalten und ihm einen Gehaltsaufstieg gegeben.

Wenn jemand nicht die nötigen Mittel hat, um eine Aufgabe für ein Vorstellungsgespräch zu erledigen, würde ich nicht erwarten, dass er als Mitarbeiter Aufgaben erledigt. Es wäre anders, wenn Sie Feedback erhalten würden, dass die Aufgabe für den angegebenen Zeitrahmen zu schwierig ist, aber ich gehe davon aus, dass sie überhaupt kein Feedback geben. Aus welchem ​​Land kommen Sie / nehmen Sie Kandidaten auf? So oder so glaube ich nicht, dass das Entfernen eines Tests zur Beschäftigung in diesem Fall ein gültiger Weg ist. Klingt so, als würden Sie die falschen Kandidaten verfolgen.
Aus meiner eigenen Erfahrung als Einsteiger-Entwickler ist die Nachfrage so hoch, dass ich jeden Interviewprozess mit einem Online-Programmiertest überspringen und leicht ein gutes Angebot erhalten kann (Hinweis: kein technisches Interview mit Programmierfragen, was Sie sollten Ich beziehe mich auf einen 2-4-stündigen Test, der in meiner eigenen Zeit durchgeführt wurde und nach dem ich möglicherweise nie wieder etwas hören kann. Es genügt zu sagen, dass die Nachfrage nach tatsächlich erfahrenen Personen wahrscheinlich sogar noch höher ist. Warum durch Ihre Reifen springen, wenn sie jede Woche, wenn nicht jeden Tag, E-Mails von Personalvermittlern erhalten?
Ich vermeide Interviews mit Programmieraufgaben, es sei denn, der Job ist überdurchschnittlich. Ich sehe keinen Grund, ein paar Stunden an ein Unternehmen zu verlieren, für das ich ein Interview führe, wenn man bedenkt, dass ich ohne Tests viele Interviews bekommen kann.
Kommentare sind nicht für eine ausführliche Diskussion gedacht. Diese Konversation wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/35199/discussion-on-question-by-bobo2000-a-programming-task-is-scaring-off-candidates).
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/35242/discussion-between-technik-empire-and-bobo2000).
Vertrauen Sie mir, Sie wollen Kandidaten verscheuchen, die nicht programmieren können. Möglicherweise möchten Sie den Inhalt und / oder den Ansatz für die Präsentation überarbeiten (z. B. sie zu einem Interview vor Ort einladen, sie mit einem Programmierer koppeln und sie eine Stunde lang mit einer Workstation und einem Pair-Programm in einem Raum sitzen lassen die Übung). Aber es ganz loszuwerden ist eine sehr schlechte Idee.
Persönlich sehe ich es nicht als rote Fahne, wenn Kandidaten im Rahmen ihres Interviews keinen Code haben. Wenn potenzielle zukünftige Kollegen ohne technische Fähigkeiten an den Arbeitsplatz kamen und ich dabei helfen werde, ihren Code zu pflegen, könnte dies schlechte Zeiten sein. Darüber hinaus ist dies einer der Punkte im [Joel-Test] (http://www.joelonsoftware.com/articles/fog0000000043.html).
Ich glaube, dass die Quelle Ihrer Kandidaten entscheidend ist. Personalvermittler interessieren sich für den einfachen Ausweg. Vor Ort werden sie (hansomly) dafür bezahlt, dass die Menschen von den Sozialversicherungszahlungen befreit werden. Deshalb konzentrieren sie sich dort auf ihre Bemühungen. Wenn Sie keine SS erhalten, sind sie einfach nicht interessiert (Zitat "Verschwenden Sie nicht Ihre Zeit, verschwenden Sie nicht unsere Zeit".) Folglich werden mein Abschluss und meine 40-jährige Erfahrung potenziellen Arbeitgebern niemals von Personalvermittlern präsentiert - und die meisten Arbeitgeber bestehen darauf, ausschließlich Personalvermittler einzusetzen.
Dieser Blog-Beitrag über ["Technische Interviews bringen mich zum Weinen"] (http://blog.pamelafox.org/2013/09/technical-interviews-make-me-cry.html) von einem Ex-Google Now Khan Academy-Entwickler denkt dass eine Aufgabe, für die Sie eine Woche Zeit haben, bei weitem die beste Möglichkeit ist, technische Interviews zu führen.
@FreeAsInBeer Ich mache genau das Gegenteil. Ich glaube, dass ein Mitarbeiter nur beurteilt werden kann, wenn er eine sinnvolle Arbeit leistet. Deshalb möchte ich lieber einem Unternehmen beitreten, das für eine Probezeit anstellt, als mit jemandem festzuhalten, der nicht entlassen werden kann, weil "er einen abstrakten Test übertroffen hat, also muss er es sein gut in völlig unabhängigen realen Szenarien ". Was ich bei einem Junior besonders suche, ist, dass sein Code für den Rest des Teams leicht zu lesen und zu warten ist, nicht dass er das P-vs-NP-Problem an seinem ersten Arbeitstag löst.
@Agent_L ja eine Probezeit zu haben ist immer eine gute Idee, und das machen wir hier. Das Problem ist, dass Sie, wenn Sie herausgefunden haben, dass sie nicht gut sind, 3-4 Monate Gehalt und Zeitverlust verbracht haben. Lohnt es sich?
Was sagt Ihnen eine Code-Herausforderung über einen Kandidaten? Nichts. Selbst wenn Sie es im Rahmen eines regelmäßigen Interviews im Büro tun, werden Sie entweder a) ihnen ein triviales Problem präsentieren, das Ihnen nichts sagt, oder b) Sie ihnen ein Problem präsentieren, das nicht vernünftig sein kann innerhalb weniger Minuten abgeschlossen * es sei denn, der Kandidat hat es zuvor gesehen. * Was Ihnen wiederum nichts sagt. "Bestimmen Sie, ob eine verknüpfte Liste eine Schleife enthält" ist eine solche "Gotcha" -Frage, die seit 30 Jahren unangemessen ist und die Inhaber von Comp-Sci-PHDs stumpft, aber die Lösung ist einfach, sobald sie bekannt ist.
Sie folgen [diesem] (http://blog.codinghorror.com/how-to-hire-a-programmer/) nicht zufällig, oder? In einer idealen Welt ist es sicher die perfekte Möglichkeit, Programmierer aus Sicht des Arbeitgebers einzustellen, aber die meisten talentierten Programmierer werden vor # 5 verschwunden sein. Niemand möchte, dass seine Zeit mit etwas verschwendet wird, das nicht garantiert ist (und erwähnen wir nicht, dass in den USA ein derart schwieriger Einreisevorgang letztendlich durch die zweiwöchige Kündigungsfrist untergraben wird, die vor der Entlassung einer Person üblich ist).
@Cat'r'pillar, weil Sie dann wissen, dass Sie mit Leuten zusammenarbeiten, die die Fähigkeiten haben, den Test zu bestehen, und dass es dort eine gewisse Herausforderung geben wird. Wenn Sie überhaupt nicht so sehr an der Stelle interessiert sind, gibt es natürlich keinen Grund, zu einem Vorstellungsgespräch zu gehen.
@Draco18s nicht unbedingt, können Sie "einfache" Aufgaben entwickeln, die viel Technologie verwenden, um ein Beispiel zu geben, ein Feedback-Formular, in dem die Daten an einen Server gesendet werden. Das allein erfordert AJAX, Jquery, Javascript, CSS, HTML und JSON. Wenn der Kandidat das kann, ist es sicher nicht die komplexeste Sache, die ich je gesehen habe. Dann weiß er, dass er alle oben genannten Technologien bis zu einem gewissen Grad kennt, was das Risiko verringert.
@bobo2000 Oder Sie können den Kandidaten direkt fragen oder sich sein Portfolio ansehen. Wenn sie sich auf eine Full-Stack-Position bewerben und über Full-Stack-Erfahrung verfügen, was sagt Ihnen die Code-Herausforderung tatsächlich, dass Sie es noch nicht wussten?
@Draco18s, das Teil des Problems ist, wenn ich Bewerbungen erhalte, haben sie oft kein Portfolio oder kein Github-Konto
@bobo2000 Haben sie eine Arbeitshistorie? Ist eine ihrer Referenzen ein Manager aus einer ähnlichen Position wie zuvor? Wenn "Nein", dann sind sie zu jünger für die Position, für die Sie einstellen, und die Code-Herausforderung sagt Ihnen nichts. Sofern Sie in diesem Fall keinen Nachwuchsentwickler einstellen, benötigen diese nicht alle diese Fähigkeiten.
@Draco18s Ich stelle gerade Absolventen mit ein oder zwei technischen Praktika ein. Um ehrlich zu sein, ist es nicht immer der beste Ansatz, einen früheren Manager zu fragen, wenn der Bewerber nicht mit ihm zurechtkommt, aber ansonsten ein fähiger Programmierer ist.
@bobo2000 Zwischenmenschliche Beziehungen sollten ausgeschlossen werden können, wenn nach technischen Fähigkeiten gefragt wird. Eine Code-Herausforderung ist immer noch das falsche Werkzeug für den jeweiligen Job. http://www.nomachetejuggling.com/2014/06/24/the-worst-programming-interview-question/
@Draco18s nicht alle Manager sind ethisch korrekt - ich habe einmal mit einem gearbeitet, der ziemlich rachsüchtig war, weshalb ich das, was sie sagen, mit einer Prise Salz nehme.
@bobo2000 Wenn der Manager rachsüchtig sein wird, wird der Kandidat ihn nicht als Referenz aufnehmen. Ich meine es ernst.
@aroth, aber diese Art von Aufgabe „schreckt“ nicht aufgrund ihrer Fähigkeiten ab, sondern wählt Personen aus, die ihre Zeit nicht so sehr schätzen und möglicherweise die Qualität der Kandidaten beeinträchtigen
@Draco18s Wenn es Ihr einziger Job ist, haben Sie manchmal nicht viel Auswahl.
@bobo2000 Auch wenn dies der Fall sein mag, sagt Ihnen die Code-Herausforderung immer noch nichts. Es gibt keine objektiv korrekte Antwort für alle Personen, die an der Überprüfung der Antwort beteiligt sind.
@JamesRyan oder es wählt diejenigen Kandidaten aus, die wirklich für Sie arbeiten möchten.
@bobo2000 nein, es unterscheidet nicht zwischen denen, die wirklich für Sie arbeiten wollen und denen, die wirklich für jemanden arbeiten wollen. Und außerdem wissen sie noch nicht, ob sie gerne für Sie arbeiten werden, bis sie tatsächlich für Sie gearbeitet haben. Nein, Sie wählen auch auf diese Weise keine begeisterten, glücklichen Mitarbeiter aus.
Sie können in 1 Stunde 90% von dem lernen, was Sie in mehreren Stunden wollen. Den Rest wirst du erst sehen, wenn sie ein paar Wochen Zeit hatten, sich einzuleben und deine Arbeitsweise zu erlernen (oder auch nicht). Diese langwierigen Herausforderungen sind Zeitverschwendung und offen gesagt unhöflich, Menschen dazu zu bringen, durch Reifen zu springen. Unternehmen wie Facebook und Google haben Tausende von Bewerbern, die Sie abschneiden müssen.
@RonBeyer Wenn ich als Kandidat glaube, dass die Aufgabe zu viel Zeit in Anspruch nimmt, werde ich keine Zeit damit verbringen, Feedback zu geben. Wie kommt mir das zugute? Fahren Sie einfach mit der nächsten Gelegenheit fort. Ist meine Entscheidung gut oder schlecht für das Unternehmen? Weiß nicht, ist mir egal. Verbringen Unternehmen viel Zeit damit, Kandidaten Feedback zu geben, mit denen sie nicht fortfahren möchten?
Ich habe gesehen, wie Codierungstests richtig durchgeführt wurden - aber ** nicht ** als Filterpass vor dem Interview. An einem Ort, an dem ich gearbeitet habe, ** nach ** 80% der technischen Interviews, wurde ich in einen Raum mit einer VM-Entwicklungsumgebung, einem Anforderungsdokument und einer Testsuite gebracht, die speziell für den (eher spezialisierten) Job erstellt wurden, den sie waren mich einstellen für; Als es fertig war, hatten alle Ingenieure Gelegenheit, nach meinen Entscheidungen zu fragen. Dies war (1) respektvoll gegenüber meiner Zeit (sie baten mich nicht, Zeit zu verbringen, bis sie meine eigene versenkt hatten), und (2) zeigten Anstrengungen von ihrer Seite (Aufbau dieses Werkzeugs für eine Position, die sie nur besetzten) .
... wenn ein Codierungstest so strukturiert ist, dass die Ingenieure des Unternehmens ihre eigene Zeit darauf verwenden - und er wird erst nach vorherigen Interviews präsentiert -, lautet er weniger als "Wir respektieren Ihre Zeit als Kandidat nicht". und mehr als "Wir kümmern uns wirklich * wirklich * um den Aufbau eines hochqualifizierten Engineering-Teams". Ich nahm diesen Job an (der in einem Geschäft war, in dem es ein erstklassiges Team gab), nachdem ich an vielen anderen Orten vorbeigekommen war, an denen ich den Code-Test vor dem Telefonanruf nicht respektiert hatte.
Wenn Sie erwarten, dass der Kandidat für Sie programmiert, zahlen Sie ihn für seine Zeit. Nur weil sie einen Job suchen, heißt das nicht, dass sie noch keinen Job haben oder dass ihre Zeit nicht wertvoll ist. Wenn Sie darüber nachdenken, verbrennen Sie bereits Geld in Bezug auf die Arbeitszeit der Mitarbeiter, nur um sie zu interviewen. Sie fordern den Kandidaten also auf, noch 2 bis 4 Stunden zu „interviewen“, und sparen sich dennoch die Zeit, die Sie in den Arbeitsstunden der Mitarbeiter für weitere 2 bis 4 Stunden gekostet hätten. Wenn Sie den Kandidaten für die Stunden der Testcodierung bezahlen, geben Sie kein Geld mehr aus.
@CharlesDuffy-Tests vor Ort funktionieren nur, wenn sich der Kandidat im selben Land befindet. Wenn Sie Kandidaten im Ausland interviewen, die eine Rolle in Großbritannien suchen, ist dies keine praktische Lösung.
@bobo2000, das Kandidaten aus einem anderen Land aus der Ferne interviewt, ist sehr selten und wird im Allgemeinen nur durchgeführt, wenn sehr spezielle Fähigkeiten erforderlich sind. Das Risiko, dass sie Probleme beim Umzug haben, ist viel zu hoch und in den meisten Fällen gibt es einen ebenso guten lokalen Bewerber.
@JamesRyan ist es eigentlich nicht, viele Absolventen machen insbesondere technische Praktika im Ausland und besuchen die besten Schulen. Ich habe ein paar Tage ein Interview mit einem Cambridge-Absolventen geführt.
@bobo2000, der diesen Unsinn auf Absolventen zieht, ist noch schlimmer, weil sie nicht die Erfahrung haben, zu testen. Auch wenn sie ein Cambridge-Absolvent sind, würden sie in Großbritannien für Jobs interviewen, bevor sie die Uni beenden, also denke ich, dass Sie Müll reden.
@JamesRyan Viele der Absolventen, die ich interviewe, haben 1 oder 2 technische Praktika absolviert. Tatsächlich ist der Cambridge-Absolvent derzeit in Hongkong und macht eines. Im Rahmen seines Praktikums baut er eine RESTful API auf.
Mussten Sie eine zweistündige HR-Aufgabe erledigen, um zu beweisen, dass Sie gut in HR sind, bevor Sie eingestellt wurden?
@DA. Es ist nicht meine berufliche Rolle, ich bin ein PM. Ich mache es einfach, da es sonst niemanden gibt, der es macht ... und das ist neben dem Punkt, wenn Sie ein selbstbewusster Programmierer sind und daran interessiert sind, für das Unternehmen zu arbeiten, was ist die große Sache? Wenn überhaupt, wenn sie es nicht tun, werden sie wahrscheinlich ausgesondert, da sie nie so sehr daran interessiert waren, für das Unternehmen zu arbeiten (oder nicht so sicher in ihrer Codierungsfähigkeit waren).
@bobo2000 weist darauf hin, dass die meisten Menschen keine Fachleute benötigen, die mehrstündige „Tests“ durchführen, um „ihren Wert zu beweisen“. Im Idealfall erhält man ein gutes Bild des Kandidaten aus Interviews, Lebensläufen, Portfolios, Ausbildung und Referenzen. Dass wir von Entwicklern verlangen, dass sie dies tun, ist im Allgemeinen wirklich seltsam.
@DA und was machen Sie, wenn sie kein Portfolio, kein Github-Konto, sondern nur einen Lebenslauf mit einer Reihe unbekannter Unternehmen haben? Woher weißt du, dass der Typ bei x, y gut geschriebenen Code geschrieben hat?
@bobo2000 wendet dies auf * jeden * Beruf an
@DA. Ich habe mir gerade einen Lebenslauf eines früheren Mitarbeiters angesehen, der entlassen wurde, nachdem ich seit seinem Eintritt in das Unternehmen viel darüber gehört hatte. Er hatte alle Fähigkeiten auf Papier, TDD / BDD, Ruby on Rails, Rspec, aber als es darauf ankam, wurde er entlassen, weil er arm war ... die schlechte Einstellung kostete die Rekrutierungszeit, die Ressourcen und den Code von schlechter Qualität das wurde seitdem umgeschrieben. Damals gab es keinen Screening-Prozess. Entwickler werden viel zu gut bezahlt, um nicht überprüft zu werden. Wenn sich jemand beworben hat und schlecht im Admin war, ist das weniger eine große Sache, da er kein digitales Haus baut
@bobo2000 wendet dies jedoch erneut auf JEDEN Fachmann an. Woher wissen Sie, dass ein Arzt gut operiert? Woher weißt du, dass ein Pilot gut Flugzeuge fliegen kann? Ich sage nicht, dass Tests schlecht oder gut sind. Ich möchte nur darauf hinweisen, dass es seltsam erscheint, dass Entwickler einer der wenigen Berufe zu sein scheinen, in denen wir das starke Bedürfnis haben, sie immer zu testen. Ich würde argumentieren, dass die Einstellung eines Entwicklers, der auf dem Papier gut aussah, aber in Wirklichkeit nicht der Fall war, ein Versagen des Einstellungsmanagers war, der möglicherweise die Referenzen nicht vollständig überprüfte oder kein ausführliches Interview gab. Ein letzter Punkt ist, dass eine Person in einem Test großartig abschneiden kann und dennoch die tägliche Metrik nicht erfüllt
@DA. weil ein schlechtes Entwicklungsteam ein Tech-Start-up ruinieren kann, bei dem die Qualität des Produkts ein Schlüsselfaktor für seinen Erfolg ist. Ohne jegliche Art von Tests kann der Entwickler das Interview prahlen. Referenzen können voreingenommen sein (ihr Freund könnte die Referenz geben) und obwohl ich der Meinung bin, dass ein Test sowieso nicht die Antwort ist, erhalten Sie in Kombination mit einem technischen Telefoninterview wahrscheinlich eine wirklich gute Vorstellung von den Fähigkeiten der Kandidaten. Es geht darum, das Risiko einer schlechten Einstellung zu verringern, nicht zu beseitigen.
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/35560/discussion-between-da-and-bobo2000).
Möchten Sie eine Kopie eines der Beispiele zeigen? Ich bin wirklich neugierig, wie schwer es ist. Wie reichen die Kandidaten ihre Ergebnisse ein? Ich finde https://ideone.com eine großartige Möglichkeit, einfache Tests durchzuführen. Sie erstellen eine Vorlage mit der "Eingabe", sie fügen ihren Code ein und geben Ihnen die Quelle und die "Ausgabe". Halten Sie sich an die Einsendungen, um zu sehen, ob die Kandidaten nur von CareerCup oder StackOverflow kopiert werden. Versuchen Sie, große 1-Stunden-Probleme in 3-5 Teile aufzuteilen, damit die Kandidaten nicht das Gefühl haben, dass es sich um eine Alles-oder-Nichts-Prüfung handelt.
@Dogbert Kann es nicht öffentlich veröffentlichen, aber die Art und Weise, wie ich den Test strukturiere, besteht darin, die Kernaufgabe zu haben und die Kandidatenbonuspunkte für zusätzliche Aufgaben zu vergeben. Für den Javascript-Test wurde beispielsweise der Test mit Jquery, Javascript, CSS, HTML und Ajax abgeschlossen, wobei Bonuspunkte für den Abschluss des Tests in einem JS-Framework wie AngularJS vergeben werden. Der Test selbst wird eine sehr einfache Funktionalität sein. Ich habe kürzlich einen Bewerber die Aufgabe in AngularJS erledigen lassen, obwohl dies nicht erforderlich war, sehr beeindruckt von seiner Einstellung. Stellte ihn sofort ein.
@Dogbert Ich denke auch, dass die Hauptsache, die ich suche, darin besteht, dass jemand es zumindest versucht, da es mir eine gute Vorstellung von seiner Einstellung zur Rolle gibt und wie sehr sie es wollen.
@bobo2000 Interessant, dass Kandidaten den Test nicht einmal versuchen würden. Nun, vielleicht ist es ein besserer Filtermechanismus als Sie ursprünglich gedacht haben. :) :)
@Dogbert, der den Test am Ende als gut für uns erwiesen hat - hat schließlich jemanden gefunden, der es versucht und gut abgeschlossen hat (mit Bonuspunkten), hat sich als wirklich gute Einstellung herausgestellt. Er braucht sehr wenig Training, keine Schmerzen, um damit fertig zu werden, und ist auf dem richtigen Weg.
@bobo2000 Gut zu hören! Ich hoffe, dass dieser Ansatz für Ihr Unternehmen weiterhin gut läuft.
Das ist genau meine Erfahrung auch. Ich mache den Programmiertest beim Interview auf einem Whiteboard, was normalerweise ungefähr eine Stunde dauert. Etwa 90% der Kandidaten scheitern daran. Die restlichen 10% sind es absolut wert, die anderen 10% nicht einzustellen. Wir machen das auch mit hochrangigen Kandidaten, erwarten aber einen höheren Standard.
Der Markt ist auf der Seite der erfahrenen Entwickler, die diese trivialen dummen Tests überspringen können.
@SuperUberDuper Ich gebe den Programmiertest nicht an erfahrene Entwickler weiter, wenn sie ihre Fähigkeiten bereits in ihrem Lebenslauf unter Beweis gestellt haben, indem sie eine starke Erfolgsbilanz bei seriösen Marken vorweisen können.Anders sieht es jedoch bei Praktikanten / Absolventen aus, bei denen ihnen häufig kommerzielle Erfahrung fehlt. Daher ist es wichtig, herauszufinden, ob sie über Potenzial verfügen und welche Grundlagen bereits vorhanden sind, um sie zu formen.Es sagt auch viel über ihre Einstellung zum Job aus, wenn sie sich eine Auszeit nehmen und den Test abschließen können.
@bobo2000 genau, gute Punkte
@RonBeyer Ich denke, Sie machen einen unfairen Vergleich.Als Mitarbeiter haben Sie sich zu dieser Arbeit verpflichtet, Sie haben einen Vertrag mit dem Unternehmen und Sie werden für Ihre Zeit bezahlt.Als einfacher Befragter besteht jedoch weder implizit noch explizit eine Verpflichtung zu einer beruflichen Beziehung, weder von Ihnen noch vom Unternehmen.Die Weigerung, eine mehrstündige Programmieraufgabe im Rahmen eines Interviews durchzuführen, unterscheidet sich daher stark von der Ablehnung eines ähnlichen Mitarbeiters durch einen Mitarbeiter.
@RaduMurzea Der Schlüssel besteht darin, einen Programmiertest zu entwerfen, der 30 Minuten bis 1 Stunde dauert.Wenn sich der Kandidat nicht darum kümmert, werden wir ihn ablehnen, da er viel über seine Einstellung zur Rolle aussagt.
Audition-Projekte unterscheiden sich von der Kodierung von Interviewfragen.Zumindest ein Projekt kann interessantere Aufgaben beinhalten und * Ihnen * die * Freiheit * geben, zu entscheiden, was und wie etwas implementiert werden soll.Codierungstests sind normalerweise sehr konzentriert und ehrlich gesagt ziemlich langweilig.
"Gute Einstellung zum Unternehmen und zur Rolle" - Stellen Sie sich vor, der Befragte bekommt 10 solcher Aufgaben pro Woche und jedes Unternehmen denkt das Gleiche.Aus seiner Sicht hat der Interviewer keinen Kontakt zur Realität.
@Pithikos Viele Unternehmen haben heutzutage technische Interviews.Google ist sehr streng. Wir sind nicht Google Nein, aber das bedeutet nicht, dass wir unsere Standards senken sollten, indem wir keinen technischen Überprüfungsprozess haben, der das Risiko erhöht, eine schlechte Einstellung einzustellen.
@Pithikos hat auch gerade überprüft, Facebook hat eine Interview-Codierungsaufgabe zum Mitnehmen für eine Position
Es ist in Ordnung, während des Interviews eine sehr kurze (5-10 Minuten) Codierungsübung zu geben, aber Sie können nicht erwarten, dass die Leute eine Stunde ihrer Zeit verschwenden.Die Befragten wissen nicht, dass nur sehr wenige Personen es vervollständigen.Unter dem Strich können Sie sich überlegen, was Sie wollen, aber wenn sie nicht etwas Außergewöhnliches an Ihrem Unternehmen sehen, werden sie nicht aus dem Ruder laufen, um Ihnen zu gefallen, und nicht nur mit einer geringen Chance, dass Sie sie unter den potenziell zehn zurückrufenoder Hunderte von Menschen, die den gleichen Test absolviert haben.Sie gehen einfach weiter zur nächsten Firma.
Außerdem ist mir gerade aufgefallen, dass Sie ihnen den Test am Telefon geben!Versetzen Sie sich für einen Moment in ihre Lage.Sie haben dich nicht einmal getroffen.Sie wissen nichts über Ihr Unternehmen und Sie verschwenden bereits ihre Zeit mit dem, was sie als sinnlose Spiele ansehen.Wie würden Sie in dieser Situation reagieren?Sie erwähnen Google und Facebook, und es tut mir sehr leid, dass ich es Ihnen mitteilen muss, aber Sie sind weder Google noch Facebook.Außergewöhnliche Unternehmen können es sich leisten, von ihren Bewerbern außerordentliche Anstrengungen zu verlangen, gewöhnliche Unternehmen nicht.Sie können nichts tun, außer damit umzugehen.
@Demonblack Ja, absolut, dies bedeutet, dass wir weniger Kandidaten bekommen werden, aber deshalb haben wir, wenn wir jemanden einstellen, die Wahrscheinlichkeit einer schlechten Einstellung verringert und stellen im Allgemeinen Leute ein, denen es an Erfahrung mangelt, die aber extrem motiviert sind zu lernen.Es dauert nur länger, und für diejenigen, die von ihren Fähigkeiten überzeugt sind, stört es sie nicht im geringsten.
@bobo2000 Dann denke ich, dass mir hier etwas fehlt. Übrigens, ich denke, mit Ihrer Methode haben Sie auch eine geringere Wahrscheinlichkeit für eine gute Einstellung, aber das ist nebensächlich.Wenn Sie tatsächlich das bekommen, was Sie wollten, worum geht es dann?
Zu der Zeit, als ich diese Frage gestellt habe (vor einem Jahr), hatten wir Probleme mit diesem Prozess, und meine Frage war, ob es ein zu schwerer Ansatz war, aber ich habe ihn seitdem optimiert und er funktioniert jetzt einwandfrei.
Ehm kurze Frage, wie kann ein Programmierer bei einer Aufgabe schummeln.80% unserer Arbeit besteht darin, Code aus dem Internet zu erhalten.
24 antworten:
#1
+280
Shane
2016-02-03 01:27:37 UTC
view on stackexchange narkive permalink

Sie benötigen einen Programmiertest. Aber es sollte 5-10 Minuten sein. 30 Minuten oben. Es gibt keinen 2-Stunden-Test, der Ihnen genau sagt, wie gut ein Programmierer ist. Sie werden nicht in der Lage sein zu sagen, ob sie ständig wartbaren Code schreiben oder ob sie immer richtig kommentieren oder ob sie unlesbare Unordnung von "cleveren" Lösungen für Probleme usw. finden. In 2 Stunden sind Sie das Einzige Um dies zu erreichen, müssen Sie herausfinden, wer gerade über die Kenntnis einer Sprache / Programmierung lügt.

Es sei denn, Sie sollten in der Lage sein, Betrugsfälle in weit weniger als 2 Stunden zu erkennen. 5 Minuten Schreiben von FizzBuzz und 2-3 kurze Fragen zu sprachspezifischen Funktionen zeigen Ihnen, ob sie absolut wertlos sind. Und das ist ungefähr das Beste, was Sie in einem Vorstellungsgespräch tun können.

Lassen Sie mich Ihnen sagen, was ich denken würde, wenn ich eine zweistündige Prüfung für das Privileg erhalten würde, ein Vorstellungsgespräch zu führen:

"Entweder denken diese Leute, dass dies einen Wert hat, was bedeutet, dass sie keine Ahnung haben, was sie tun, oder sie wissen, dass dies Zeitverschwendung ist, aber aus irgendeinem Grund (wahrscheinlich blindlings nach der Bürokratie der Personalabteilung) sind sie dazu bereit Verschwenden Sie die Zeit der Kandidaten, bevor der Kandidat überhaupt eingestellt wird. Stellen Sie sich vor, mit was sie davonkommen können, wenn sie mich bezahlen.

Auf jeden Fall möchte ich dort nicht arbeiten. "



Es gibt noch eine andere Sache, die Kandidaten vertreiben könnte : Die Länge Ihres Interviewprozesses. Sie haben Leute, die ein Telefoninterview machen. Dann ein Test zum Mitnehmen, für den sie eine Woche Zeit haben. Dann gehen Sie die Tests durch. Anschließend erstellen Sie ein Gesichtsinterview mit dem Management. Dann (nehme ich an) machst du ein paar Gesichtsinterviews. Dann kriegst du den Kerl zurück, den du einstellen möchtest. Was braucht das? 2 Wochen? Länger?

In dieser Zeit habe ich bereits 3 Angebote erhalten. Ich habe einen angenommen und fange nächste Woche an. Glaubst du, ich mache deinen 2-stündigen Test?

Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/35223/discussion-on-answer-by-shane-a-programming-task-is-scaring-off-candidates-shou) .
* Aber es sollte 5-10 Minuten sein. 30 Minuten oben. * - Es muss nicht so kurz sein, aber wenn sie es vor Ort tun, bevor sie abreisen, erhöht sich die Abschlussrate. Es spielt keine Rolle, ob es sich um eine 2-stündige Herausforderung handelt, wenn Sie sie im Haus durchführen lassen. Sie werden nicht nach Hause kommen und entscheiden, dass sich die Mühe nicht lohnt eingehenderer Test mit weniger Aufwand zur Bewertung der Ergebnisse. Und wenn es 3-4 Wochen dauert, um einen Einstellungsprozess zu durchlaufen, habe ich bereits woanders angefangen.
Ich habe nichts gegen längere Interviewprozesse - ich denke, das variiert ein bisschen. Es ist eine Frage, ob Kandidaten einen Job überall oder bei Ihrem Unternehmen wollen. Geben Sie mir ein oder zwei Wochen Zeit, um meine Hausaufgaben zu machen und herauszufinden, ob / wo ich umziehen möchte und wie viel das kosten wird, und ich nehme das Angebot eher an. Eile mich, und ich könnte nicht.
Nein, Sie brauchen keine Programmiertests. Was Sie brauchen, ist Probezeit.
@Agent_L Ein Mitarbeiter, der 40.000 US-Dollar verdient, kostet (durchschnittlich) 16.000 US-Dollar. Ein Mitarbeiter, der 80.000 US-Dollar verdient, kostet 120.000 US-Dollar. Das ist ein * verrückter * Betrag, den Sie für eine Testphase zahlen müssen, um die Hälfte Ihrer Kandidaten auszusondern, wenn Sie stattdessen einen kostenlosen 5-Minuten-Test geben könnten. Im Ernst, warum um alles in der Welt sollten Sie jemanden einstellen und ihn für einige Wochen / Monate bezahlen, um herauszufinden, dass er in seinem Lebenslauf gelogen hat? Warum das tun, wenn Sie 5 Minuten damit verbringen können, ihnen keinen Cent zu zahlen, um dasselbe herauszufinden?
Sie müssen jedoch wissen, wie vertraut sie mit der Plattform sind, auf der sie arbeiten sollen. Je nachdem, welche Erfahrung Sie benötigen, kann der Umfang der Konzeption und Architektur, die für Ihren Test erforderlich sein kann, stark variieren.
@Shane WAS? Sie bezahlen sie nur dafür, wie viel sie gearbeitet haben. Wenn sie gelogen haben, ist es in den ersten Tagen offensichtlich und dann lässt du sie los (ohne zu erwähnen, dass er, wenn er es geschafft hat, dich im Interview zu täuschen, ihn als Verkäufer anstellt). 40.000 USD / Jahr sind lediglich 158 USD pro Tag. Was Sie angeführt haben, sind die Kosten für die Einstellung einer falschen Person, die nur auf Testlösungsfähigkeiten beruhen. Und es dauert Monate, um zu erkennen, dass er kein Teamplayer ist. Ihre Lösung kostet 16.000 US-Dollar, nicht meine.
@Agent_L: Die Kosten einer fehlgeschlagenen Einstellung sind weitaus höher als die falsch ausgegebenen Löhne. Dazu gehören beispielsweise die Notwendigkeit, die Einstellung erneut vorzunehmen, sowie der gesamte Administrator, der mit dem Hinzufügen einer Person zu Ihren Mitarbeitern verbunden ist. Ich weiß nicht, woher Shane's Zahlen kamen, aber sie scheinen nicht unvernünftig. Wahrscheinlich sind diese 16.000 * zusätzlich * zu dem Gehalt, das für die schlechte Einstellung gegeben wurde. Wenn Sie alternative Lösungen vorschlagen, waren Sie vermutlich ein Einstellungsmanager oder haben in irgendeiner Funktion im Zusammenhang mit der Einstellung gearbeitet?
Es scheint mir, dass eine Probezeit, um einen Job zu bekommen, viele mittelmäßige / schreckliche Programmierer anziehen würde, während die sehr guten 1-2 Monate lang nicht für Sie arbeiten werden, um * nach * herauszufinden, ob sie eingestellt sind. Nur meine Meinung
* "Es muss nicht so kurz sein, aber wenn sie es vor Ort machen, bevor sie abreisen, erhöht sich die Abschlussrate. ..." * - Ich persönlich würde sie es tun lassen, bevor sie vor Ort eingeladen werden. Lassen Sie sie es tun, wenn sie einen Lebenslauf einreichen. Warum Zeit mit Kandidaten verschwenden, die nicht den Mindest- oder Grundstandards entsprechen?
@Agent_L hängt davon ab, wo Sie arbeiten. In einigen Ländern, wenn Sie einen Job beginnen, können Sie nicht nur für den Kerl nach 2 Tagen, es kann Wochen oder Monate dauern und in der Zwischenzeit müssen Sie sie bezahlen.
@Agent_L Ich lebe in einem dieser Länder, in denen es wirklich schwierig ist, jemanden nach seiner Einstellung zu entlassen. Sie müssen einen formellen Prozess durchlaufen, der Monate dauert.
Es ist erwähnenswert, dass dieselben Prinzipien für * alle * Tests gelten, nicht nur für Programmiertests. ** Alle "Hausaufgaben" -Tests diskriminieren vielbeschäftigte und gefragte Personen ** und neigen dazu, die falschen Dinge zu testen (Domänenwissen, das am Arbeitsplatz erlernt werden kann, nicht * Fähigkeiten *, die dies nicht können). Ich hatte genau das Gleiche in einem Team, das Grafikdesigner mit einer mehrstündigen Hausaufgabe "Design X in unserem Markenstil" rekrutierte, die [ich durch eine Art Fizz-Buzz im Interview für kreatives Denken ersetzt habe] (http: //graphicdesign.stackexchange.com/questions/27385/fizzbuzz-for-graphic-designers/27405#27405).
@GustavBertram Ja, ich lebe in Polen, wo es so schwierig ist, jemanden zu entlassen, dass niemand mehr einen richtigen Arbeitsvertrag bekommt. Vordefinierter Vertrag, Übertragung von Rechten an geistigem Eigentum, Vertrag zur Ausführung einer bestimmten Aufgabe, Gelegenheitsarbeitsvertrag - die Möglichkeiten sind endlos. Alles, was Sie brauchen, ist der gegenseitige Wille, Einschränkungen zu umgehen.
@Shane, Die Kosten für eine schlechte höhere Statistik sind sehr interessant. Hast du eine Quelle dafür? Ich glaube Ihnen und stimme zu, dass schlechte Einstellungen viel kosten, aber die Zahlen haben mich als hoch empfunden. Vielen Dank!
Ich verstehe nicht alle Leute, die sagen, dass @Agent_L falsch ist und teurer wird.Es wird eine Gerichtsverhandlung durchgeführt, damit sie Sie aus irgendeinem Grund entlassen können, und sie mussten Ihnen nur ein Monatsgehalt zahlen.Man könnte sagen, der Einstellungsprozess kostet Geld usw., aber niemanden einzustellen kostet ihn auch Geld.
@chessofnerd https: // www.standardforsuccess.com / wp-content / uploads / 2015/08 / Employee_Turnover_Infographic_8.27_2.pdf
@EpicKip Sie stellen also jemanden ein, der einen Job erledigt.Nehmen wir an, ihr monatliches Gehalt beträgt 1000 US-Dollar.Anstatt produktiv zu sein und 2000 Dollar Gewinn für das Unternehmen zu erwirtschaften, tun sie nichts.Dann dauert es einen Monat, um jemanden neu zu finden.Mit einer guten Miete könnte das Unternehmen nach Umsatz und Gehalt 4000 Dollar in der Tasche haben.Stattdessen sind es 1000 Dollar Schulden aus der Ausgabe des Gehalts.Das sind 5000 Dollar, die das Unternehmen verloren hat.Es gibt noch andere Faktoren, wie zum Beispiel, wie Sie bei der Arbeit effizienter werden, je länger Sie im Job sind, aber das ist im Wesentlichen das Wesentliche.
@Shane Sie können nicht alles von einem Test finden.Ich bin Programmierer und jeder Ort, der (zumindest in den Niederlanden) anstellt, wird Sie aufgrund einer einmonatigen Testversion einstellen (sie haben ein Interview und vielleicht einen sehr kleinen Test).Und wenn Sie aufgrund eines langen / falschen Einstellungsprozesses niemanden einstellen, kostet das Unternehmen mehr Geld für Überstunden.
"Sie haben ein Interview und vielleicht einen sehr kleinen Test" Uhh, ja.Das ist genau der Teil, über den wir hier sprechen.Die Frage bezieht sich auf diesen Interviewteil und darauf, ob vielleicht ein sehr kleiner Test durchgeführt werden soll oder nicht.Und mein erster Absatz geht ausführlich darauf ein, wie "man bei einem Test nicht alles finden kann".Da Sie aus den Niederlanden kommen, gibt es vielleicht eine gewisse Sprachbarriere?Aber ich würde vorschlagen, dass Sie die Frage und meine Antwort noch einmal lesen, weil ich denke, wir sind uns mehr einig als wir hier nicht einverstanden sind.
@Shane, [Ein Codierungstest identifiziert auch nicht den wichtigsten Aspekt eines Programmierers: ob er lernfähig ist oder nicht.] (Http://www.brandonsavage.net/why-coding-tests-are-a-schlechte Interviewtechnik /)
@Draco18s Erster Absatz: "* Eine Sache, die mir bei der Arbeitssuche in letzter Zeit aufgefallen ist, ist die Anzahl der Unternehmen, die darauf bestehen, dass Sie ihnen ein Codebeispiel nach Spezifikation schreiben. Nicht irgendein Codebeispiel, sondern eine voll funktionsfähige, vollständige Anwendung. Diesist aus mehreren Gründen absurd. * "Er fährt fort:" * Joel Spolsky spricht darüber, wie wichtig es ist, Entwickler zu bitten, während ihres Interviews Code zu schreiben. Er geht aber auch detailliert darauf ein, wie er dies in seiner eigenen Firma interpretiert:Er bittet die Leute, während des Interviews Funktionen zu schreiben. * "Dies ist identisch mit dem, was ich sage.1/2
@Shane Quick, schreiben Sie mir auf ein Whiteboard eine Funktion, die bestimmt, ob eine einfach verknüpfte Liste eine Schleife enthält oder nicht.Gehen.Sie können auch die Datenstruktur nicht ändern oder eine neue Liste erstellen.
2/2 Abschließend sagt er: "* Stellen Sie in einem Interview einige technische Fragen, für die Code erforderlich ist. *" Die Beschwerde, die er über Codierungstests einreicht, bezieht sich auf die Art von Test, nach der das OP gefragt hat.Diese Antwort empfiehlt dasselbe.Ich bin auch anderer Meinung, dass es zeigt, dass sie nicht lernen können.Es zeigt, dass sie zumindest etwas gelernt haben.Ihr Codierungsstil ist nicht "Google für Codebeispiele und Hoffnung".Abgesehen davon, dass Sie die Fähigkeit zeigen, Programmieren 101 gelernt zu haben, kann nicht viel, was Sie im Interviewprozess tun, jemandem zeigen, der im Laufe der Zeit lernt.Zumindest würde ich gerne hören, wie Sie das in ein paar Minuten klären können.
Ja, das wäre eine anständige Frage - vorausgesetzt, Ihr Shop arbeitet mit Technologien, die verknüpfte Listen verwenden.Obwohl ich persönlich kein Fan von künstlichen Grenzen bin, wie Sie sie dort haben.
Ein längerer Test zum Mitnehmen vor dem ersten persönlichen Gespräch ist ein Witz.
#2
+197
Lawrence Aiello
2016-02-02 20:51:11 UTC
view on stackexchange narkive permalink

Lassen Sie mich zunächst sagen, dass die Einstellung von Mitarbeitern im Allgemeinen eine erbärmlich ungenaue Wissenschaft ist und Sie unabhängig davon, was Sie versuchen, verschiedene Ergebnisse erzielen. Trotzdem hatte ich das Gefühl, ich sollte meine Gedanken dazu teilen.

Ich denke, Programmierübungen sind eine Pleite, vor allem, weil Sie Leute finden, die verzweifelt sind und viel zu viel Zeit haben, um sie zu absolvieren. Wenn sie einen Vollzeitjob haben, müssten Sie sich fragen, wie viel Zeit / geistige Energie sie von ihrem derzeitigen Arbeitgeber benötigen, um für jemanden zu arbeiten, der sie nicht einmal bezahlt. Möchten Sie, dass sie Ihnen solche Dinge antun?

Wenn sie gut sind, führen sie höchstwahrscheinlich Interviews mit vielen Arbeitgebern. Ratet mal, welche sie priorisieren werden? Diejenigen, die nicht darum bitten, Projekte abzuschließen, bevor sie überhaupt mit einem technischen Manager telefonieren.

Es gibt auch das Problem des Plagiats. Sicher, sie werden im persönlichen Interview herausgefunden, aber bis dahin haben Sie bereits die Zeit von (vermutlich) hochbezahlten Personen in der Firma verschwendet, die diese Person interviewt.

Meine aktuelle Firma hat dies getan es ist gut, und dies ist der Weg, den ich in Ihrer Position gehen würde. Geben Sie ihnen eine kleine Aufgabe, die nur etwa 90 bis 120 Minuten dauern sollte, und sagen Sie ihnen, dass sie in den Kommentaren begründen sollen, warum sie diese Art der Problemlösung gewählt haben. Dies ist etwas, das in einer Nacht erledigt werden kann und Ihnen einen Einblick in ihr Denken gibt.

Ich kann Ihnen jetzt sagen, dass ich ihnen danke, wenn ich ein Projekt bekomme, das mehr als 8 Stunden dauert, aber ich bin nicht interessiert. Ich habe einen guten Job und ein Leben. Wenn ein Manager dies als Problem ansieht, bedeutet dies, dass er sich nicht um meine Vereinbarkeit von Beruf und Privatleben bei der Arbeit kümmert (insbesondere, wenn er sich nicht interessiert, bevor ich es habe). Kein Unternehmen außer vielleicht Google, Apple oder Facebook könnte damit durchkommen.

Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/35225/discussion-on-answer-by-lawrence-aiello-a-programming-task-is-scaring-off-candid) .
@Aron Es ist wirtschaftlich nicht sinnvoll, sie für die Durchführung des Tests zu bezahlen, da wir viele Entwickler interviewen. Gleichzeitig bin ich offen für Vorschläge, wie der Prozess verbessert werden kann. Meine einzige Sorge ist, wenn ich das nicht getan habe und wir am Ende eine schlechte Einstellung machen, weil sich herausstellt, dass das Programm nicht funktioniert (es ist passiert), wird es uns auf lange Sicht viel mehr kosten.
Nicht einverstanden mit anderen hier und +1, wünschte ich könnte mehr und mehr, weil "Ich denke, Programmierübungen sind eine Pleite". Sie gehen ein bisschen zurück, indem Sie eine Programmierherausforderung vorschlagen, aber immer noch. Ich stimme Ihnen zu, sie sind lächerlich und funktionieren überhaupt nicht, weil ich neben vielen Leuten gearbeitet habe, die diese Tests anscheinend bestanden haben, aber inkompetent sind. Tatsächlich haben viele Leute, mit denen ich zusammengearbeitet habe, ihre eigentliche Arbeit nicht gemacht, sondern saßen da und studierten Fragen vom Typ Interview, damit sie sich für andere Programmierjobs im Job bewerben konnten. Dieser Prozess muss sterben.
Google und Facebook haben beide * stark * optimierte Rekrutierungsverfahren und verwenden im Rahmen dieser Verfahren keine Tests zu Hause.
Dies muss geschrieben worden sein, bevor der Fragesteller die Länge des Tests geklärt hat, da es jetzt eine schreckliche Antwort ist.
@stannius Das stimmt nicht. Facebook * hat * ein Projekt zu Hause als Teil seines Interviewprozesses. Ich habe es genommen
"Geben Sie ihnen eine kleine Aufgabe, die vielleicht nur 90 bis 120 Minuten dauern sollte." Dies scheint nach Ihrer eigenen Beschreibung * schlimmer * zu sein als eine Programmieraufgabe, die 30 bis 60 Minuten dauert, mit der sie derzeit beauftragt sind.
Google hat auch eine Programmbewertung für zu Hause (online und zeitgesteuert). Obwohl es nicht lange dauert.
Nun, entweder ist es ein neuer Prozess (im letzten Jahr), er wird nicht für ihre Büros in der Gegend von Seattle verwendet, oder sie lassen nicht jeden dazu kommen.
@stannius - Nach meiner Erfahrung haben Sie Recht, was den Testteil zum Mitnehmen betrifft, zumindest für Google. Sie werden Sie jedoch dazu bringen, während des Interviews Code zu schreiben. Wiederholt. In der Regel auf einem Whiteboard und vor mehreren verschiedenen Interviewern (die alle Mitglieder des Entwicklungsteams sind). Außerdem heißt es in der Antwort nicht "Übungen zum Mitnehmen sind eine Pleite", sondern "Programmierübungen sind eine Pleite". Welches ist sehr unterschiedlich. Sowohl Google als auch Facebook verwenden absolut Programmierübungen, wenn sie Programmierer interviewen. Dieser Teil dieser Antwort ist einfach falsch.
@aroth Ich bezog mich in diesem Zusammenhang auf Programmierübungen zum Mitnehmen, nicht auf Übungen, die während des Interviews auf einem Whiteboard durchgeführt wurden. Ich würde das für jedes Unternehmen erwarten, das ich interviewe, egal was passiert.
Erinnerst du dich an die Leute in der High School, die überhaupt nicht schlau waren? Ja, diese Leute werden in irgendeiner Form mit Ihnen zusammenarbeiten. Sie können Programmierer, Ärzte, Anwälte, Klempner, Professoren sein, wie Sie es nennen - es gibt dumme Leute, die diesen Job machen. Das Problem ist, dass es zu viele Jobs gibt, um sie zu besetzen, und nicht genug engagierte, fleißige, kluge Leute, um sie zu besetzen. Deshalb bekommt man die Lügner, die Betrüger, die Braunnasen in jedem Bereich in jeder Art von Arbeit. Ich habe Horrorgeschichten von Programmierern gehört, die buchstäblich nicht einmal einen Computer einschalten können. Keine Möglichkeit, dagegen anzukämpfen.
90-120 Minuten?Wenn Sie mir gesagt haben, dass ich im Rahmen des ersten Interviews * zwei Stunden * eine Übung machen soll, hoffen Sie besser, dass Ihre ausgeschriebenen Gehaltszahlen bemerkenswert höher sind als die der Konkurrenz, weil ich sonst gehe und alle anderen, die es nicht sind.t arbeitslos.Nur verzweifelte Menschen akzeptieren diese Art von Zeitverschwendung, und auf Kosten der Ungerechtigkeit sind diese eher nicht die besten Programmierer.
Sie würden also nicht jemanden einstellen, der Vollzeit und auch an anderen persönlichen oder Open-Source-Projekten arbeitet?Sie werden niemanden dazu bringen, 100% seiner Programmierbandbreite für Ihr Unternehmen auszugeben.Ich hoffe, sie konnten ihren Kindern bei den Hausaufgaben helfen.
#3
+110
sevensevens
2016-02-03 01:58:13 UTC
view on stackexchange narkive permalink

Nach meiner Erfahrung beseitigen Take-Home-Projekte keine schlechten Programmierer und lassen gute Programmierer wahrscheinlich einen Job finden, bei dem sie nicht durch einen Reifen springen müssen, um mit dem Personalchef zu sprechen. stark>

Denken Sie so darüber nach. Ein guter Programmierer kann leicht telefonische und persönliche Interviews erhalten. Jeder zusätzliche Reifen, durch den sie springen müssen, bedeutet, dass sie den einfacheren Weg gehen und von jemand anderem interviewt (und eingestellt) werden, der genauso viel bezahlt. Wenn Sie Leute dazu bringen, durch Reifen zu springen, stellen Sie sicher, dass sie sehen, dass es sich von Anfang an lohnt.

Ein schlechter Entwickler kann so lange dauern, wie er möchte. Sie werden nicht sehen, dass sie 4x so lange dauern; Sie sehen nur den abgeschlossenen Test. Sie werden auch nicht sehen, dass sie zu Google oder ihrem Freund gehen, um Hilfe mit einer if -Anweisung zu erhalten.

Meine letzte Firma hat dies getan, und die überwiegende Mehrheit der Leute, für die wir uns gemeldet haben Ein persönliches Interview schlug fehl Fizz Buzz (ca. 65%). Ich denke, dies ist passiert, weil wir versehentlich gute, beschäftigte Leute ausgesondert haben, die kein Interview eines anderen Unternehmens brauchten, und gleichzeitig ein einfaches Interview vor schlechten Programmierern baumeln ließen.

Was ich Ich denke, wir hätten es stattdessen tun sollen.

Anstatt den Leuten eine Aufgabe zum Mitnehmen zu geben, die 15 bis 20 Minuten dauerte, hätten wir ein 15 bis 20 Minuten langes Skype-Interview führen sollen, in dem wir Fragen stellten wie Fizz Buzz. Dies hätte die gleiche Zeit in Anspruch genommen, aber ich hätte wahrscheinlich die schlechten Programmierer vor einem zweistündigen persönlichen Interview ausgesondert.

FYI -> Hier ist ein sehr detailliertes Artikel über Fizz-Buzz und allgemeine Interviewpraktiken.

Ich wurde einmal gebeten, eine Programmieraufgabe auf hackerearth.com abzuschließen und persönliche Daten einzugeben, um mich zu registrieren. Es war eine sofortige Abschaltung. Darüber hinaus war die Programmieraufgabe selbst kein verlässlicher Indikator für die Leistungsfähigkeit. Ich bin damit einverstanden, dass sich solche Aufgaben zum Mitnehmen nicht wirklich lohnen.
Das einzige Mal, dass ich jemals eine Programmieraufgabe zum Mitnehmen erledigt habe, hat mich der Personalchef verfolgt, weil ich keinen Tag Zeit hatte, mich umzudrehen. Danach entschied ich mich, ob ich wieder einen Take-Home-Auftrag bekommen sollte, um zu sagen, dass ich nicht an dem Job interessiert war.
Nur die Zeit reicht nicht aus, um eine Aufgabe ordnungsgemäß auszuführen.
Das Problem bei der Codierungspraxis für Fizz-Buzz-Interviews ist, dass Sie Zahlen haben, die beide durch 3 und 5 teilbar sind. Das ist das erste, was mir in den Sinn kommt, und wie möchten Sie die Reihenfolge in diesen Situationen? Es sei denn, Sie möchten nur Daten.
@Chad was gibt es zu bestellen? http://coliru.stacked-crooked.com/a/bab3aa8f4ea44fcd
@TechnikEmpire Sie haben Zahlen, die beide durch 3 und 5 teilbar sind. Sie erhalten also sowohl Fizz als auch Buzz, die in einer Iteration ausgegeben werden. Die Reihenfolge, in der einer der beiden zuerst kommt, hängt davon ab, wie Sie Ihre Teiler bestellen, z. B. 3 zuerst oder 5 zuerst. Etwas, das ich in Ihrem Codebeispiel gesehen habe, haben Sie genau das Gleiche getan.
@Chad oh okay, wusste nur nicht was du meinst.
@TechnikEmpire übrigens nur zum Spaß habe ich es Old School gemacht. http://coliru.stacked-crooked.com/a/31dc2f5cbbc0e76b
@TechnikEmpire Ich habe es wirklich genossen, Ihren Code zu lesen, interessant zu sehen, wie weit C ++ gekommen ist.
@Chad Schön. Das ist mir fremd, weil ich in meinem Leben noch nie printf verwendet habe. lol
Bitte erzählen Sie mir mehr über diese "Wenn" -Anweisungen - sind es diejenigen, die einen Velociraptor-Angriff verursachen?
@CodeJockey Ja, wenn Aussagen böse sind, halten Sie sich an die 10000000 willkürlichen "Standards", die zufällige Leute und Unternehmen erfinden, um zu entscheiden, wer elitärer ist als der nächste. Geeze, du hast den Test für das Interview nicht bestanden. Du musst ein schlechter Programmierer sein (das ist offensichtlich Sarkasmus).
Meine Lieblingsmethode für FizzBuzz, wenn ich die Wahl meiner Sprache habe (keine Mathematik, wenn Anweisungen oder technisch sogar Schleifen): `filter fb {@ ($ _," Fizz "," Buzz "," FizzBuzz ") [0+ (@ (2) [$ _- Übereinstimmung '[^ 05] $']) + (@ (1) [$ _- nicht übereinstimmen '(^ ([369] [0369]? | [258] [147] | [ 147] [258])) $ '])]} 1..100 | fb`
@CodeJockey: Und ich möchte Sie bitten, eine Version zu schreiben, die ich verstehen kann.
@gnasher729 - deshalb würden Sie mir entweder keine Wahl der Sprache geben, oder Sie würden mich (wenn Sie die Zeit hätten) bitten, zu erklären, wie mein Beispiel funktioniert.In meinem Beispiel dort oben (PowerShell) verwenden Sie anstelle von Mathematik (dh mehr als einfache Addition und Multiplikation) reguläre Ausdrücke.Anstelle von if-Anweisungen verwenden Sie die automatische Auswahl des Array-Index.Anstelle einer Schleife verwenden Sie eine Reihe von Ganzzahlen, die in einen Filter geleitet werden.
@gnasher729 - Dies ist die besser lesbare Version, die ich zu Rosetta Code hinzugefügt habe, wenn Sie interessiert sind: http://rosettacode.org/wiki/FizzBuzz#Filter.2C_Piping.2C_Regex_Matching.2C_Array_Auto-Selection
Sie haben mein gesamtes Problem mit besonders schwierigen Whiteboard-Programmierproblemen erklärt.Großartige Programmierer werden sich nicht darum kümmern, es zu studieren - sie schwimmen bereits in Angeboten.Ehrgeizige, aber mittelmäßige Programmierer wissen, dass sie im Nachteil sind und lernen werden.Das Endergebnis dieser Art von Tests - das ist das Endergebnis des meisten Interview-Unsinns - ist, dass das Signal im Rauschen völlig verloren geht.
@CodeJockey Sie würden sowohl den Wartbarkeitstest als auch den Smartass-Test nicht bestehen :-) Nur (etwas) Witze über Letzteres;Ersteres ist jedoch äußerst wichtig."Clevere" Lösungen werden bei der Codeüberprüfung abgeschossen
#4
+71
CPerkins
2016-02-03 04:03:10 UTC
view on stackexchange narkive permalink

Eine kontrastierende Ansicht von jemandem in den Gräben auf beiden Seiten dieser Frage. Ich vermute, dass diese Antwort zu Abstimmungen führen wird, aber es ist eine gut informierte Meinung, die sich über mehrere Jahrzehnte in diesem Geschäft entwickelt hat. Weil ich das gerne mache, schreibe ich immer noch jeden Tag Code für meinen Lebensunterhalt und als Hobby in meiner "reichlichen Freizeit", aber ich war auch der endgültige Entscheider bei der Einstellung von ein paar Dutzend Programmierern und habe geholfen, Interviews zu führen und beraten bei der Einstellung einer ziemlich großen Anzahl mehr.

Lawrence hat Recht: Einstellung ist absolut ungenau. Aber mit der Zeit werden wir besser. Kurze Herausforderungen bei der Programmierung vor Ort sind mehr als nur persönliche Chats, mehr als nur Trivia-Fragen. Dies gilt nicht nur für das Können, sondern auch für die Einstellung.

Beachten Sie, dass ich "kurz" . Wir geben den Kandidaten einen Laptop mit einer ordnungsgemäß installierten Eclipse (unserer gewählten IDE), wenn sie zum Vorstellungsgespräch kommen. Richtig eingerichtet bedeutet, dass sie Zugriff auf die JDK-Quelle haben, aber kein Internet haben. Sie werden gebeten, während des Tests keine Mobiltelefone zu verwenden. Sie haben eine Stunde Zeit, um zwischen null und fünf Probleme zu lösen, angefangen bei "FizzBuzz" bis hin zu einer Komplexität in der Größenordnung eines einfachen Multithread-Produzenten / Multi-Consumer-Systems.

Niemand hat jemals alle fünf in einer Stunde gelöst, und ich erwarte nicht, dass es jemals jemand tun wird (ich kann Lösungen für fünf in weniger als einer Stunde schreiben, aber natürlich habe ich die Probleme gesehen und gelöst alles vorher, also bin ich kein fairer Test).

Übrigens haben wir angeblich erfahrene Programmierer gehabt, die FizzBuzz nicht richtig gemacht haben. Lassen Sie mich das noch einmal sagen: Wir hatten eine Handvoll Kandidaten, die FizzBuzz nicht richtig abgeschlossen haben. Normalerweise, indem Sie den Anweisungen nicht folgen, aber die Spezifikation lesen, ist ein wesentlicher Bestandteil des Entwicklerseins.

Wir lassen sie hier vor Ort Code schreiben, anstatt ihnen aus verschiedenen Gründen Hausaufgaben zu machen, teils wegen des Betrugsrisikos, teils um jedem Kandidaten die gleiche Chance zu geben, die Probleme zu lösen. Wir wechseln auch Probleme innerhalb und außerhalb des Herausforderungssatzes und diskutieren anschließend Lösungen mit Kandidaten.

Ich fühle mich in dieser Frage äußerst stark. Ich habe noch nie gesehen, dass ein Kandidat aufgrund unseres Programmiertests eine Stelle abgelehnt oder den Interviewprozess abgebrochen hat. Dies kann jedoch dadurch beeinflusst werden, dass wir den Personalvermittlern, die uns bedienen, mitteilen, dass der Prozess die Programmierung vor Ort umfasst. Daher sehen wir die Kandidaten möglicherweise nicht, die glauben, dass es "unbezahlte Arbeit" ist, gebeten zu werden, eine Stunde Code zu schreiben. Wenn ja, gute Befreiung. Wenn sie denken, dass eine Stunde Codierung eher "Arbeit" ist als eine Stunde der Beantwortung von Trivia-Fragen, oder wenn ihre Antworten auf Testprobleme irgendetwas Nützliches hervorbringen können, brauche ich ihre Einstellung nicht.

Wir hatten einmal einen Kandidaten, der sich über den Test beschwerte, weil er dachte, er sei zu älter, um sich beweisen zu müssen (das ist keine Spekulation - er sagte es). Und er hat die Herausforderungen gut gemeistert und hatte alle Erfahrungen, die wir wollten. Aber er war ein schrecklicher Angestellter: Er dachte anscheinend auch, er sei zu hochrangig, um Anweisungen zu geben oder zu lernen, und letztendlich mussten wir ihn gehen lassen.

Eines der Dinge, die ich ' Wir haben im Laufe der Jahre entschieden, dass jedes Unternehmen, das nicht testet, mich mit geringerer Wahrscheinlichkeit als Mitarbeiter bekommt. Wie ihre Antworten auf Fragen wie das, was sie für die Quellcodeverwaltung usw. verwenden, sagt mir ein Unternehmenstest viel darüber aus, wie gut sie im Geschäft mit Softwareentwicklung sind.

Also, was sollten Sie tun? Sie sollten das tun, was für Ihr Unternehmen funktioniert. Mein Rat ist jedoch, die Tests fortzusetzen, sie jedoch vor Ort durchzuführen das Interview. Sagen Sie ihnen im Voraus, dass dies Teil des Prozesses ist, und tun Sie dies, bevor sie sich mit dem oberen Management treffen (aber Sie sollten sie zuerst treffen, um sie zu beruhigen). Und wirklich: Überspringen Sie das Interview mit dem oberen Management, wenn sie scheitern. Sorgen Sie sich nicht um die Beliebtheit bei Kandidaten oder Postern im Internet. Die Kosten für eine schlechte Miete sind viel schlimmer als die Kosten für die Verzögerung, bis Sie eine gute Miete machen .

Ich erwarte keine Abstimmungen. Sie stimmen perfekt mit den anderen Antworten überein und sprechen sich für kürzere Tests vor Ort und gegen lange Tests zu Hause aus. Das einzige, mit dem ich persönlich nicht einverstanden bin, ist die Klausel "kein Internet". Für Entwickler ist das Internet eines der grundlegenden Werkzeuge ihres Fachs. Wenn Sie es wegnehmen, sehen Sie, wie gut sie ohne Internet auskommen, was für 99% der Entwicklungsjobs irrelevant ist.
@Peter Es ist möglicherweise sogar besser, den Internetzugang zuzulassen und zu sehen, wohin sie führen. Gehen sie zu StackOverflow, um etwas zu überprüfen? Kommen sie hierher, um sich zu beschweren? (Natürlich sollte eine solche Überwachung dem Programmierer ausdrücklich mitgeteilt werden und seine Zustimmung erfordern, um Kontroversen weiterhin zu vermeiden.)
Ehrlich gesagt widerspricht Ihre Antwort überhaupt nicht den anderen Antworten / der allgemeinen Stimmung. IMO gibt es einen (großen) Unterschied zwischen "Machen Sie diese Aufgabe in Ihrer eigenen Zeit, um einen Schuss auf diese Position zu bekommen" (OP aktueller Prozess) und "Lassen Sie uns gemeinsam Ihre Fähigkeiten und Ihre Passform für das Unternehmen bewerten" (was Sie vorschlagen) .
Bei meinem derzeitigen Arbeitgeber machen wir etwas Ähnliches, und dies kommt der Antwort, die ich geschrieben hätte, am nächsten. Eine Sache, die ich hinzufügen würde (vielleicht könnten Sie sie als Option oder Hinweis für OP hinzufügen?): Wir erlauben den Internetzugang und führen die Tests als "Pair Coding" -Übung mit Teammitgliedern durch, mit denen die Person arbeiten würde. Der Codierungspartner hilft bei der Erklärung der Ziele und ist da, um Fragen zu beantworten und bei Bedarf weiterzuhelfen - d. H. Ähnlich wie sie in der Praxis zusammenarbeiten würden. Wir können nicht nur technische Fähigkeiten bewerten, sondern auch ein gutes Gefühl dafür bekommen, wie der Kandidat mit anderen zusammenarbeitet.
@NeilSlater Ich bin alles für den Ansatz vor Ort, aber was ist, wenn der Kandidat im Ausland ein technisches Praktikum macht? Ich interviewe einen Kandidaten, der sich genau in dieser Situation in Hongkong befindet und der nach seiner Rückkehr nach Großbritannien zurückkehren möchte.
@bobo2000: Wenn Kandidaten Sonderfälle sind, müssen Sie herausfinden, was zu tun ist. Ich könnte den Paarprogrammiertest für Videokonferenzen für Ihr Beispiel ausführen und etwas mehr Zeit dafür einplanen. Vielleicht ist dies die Basis für ein anderes Workplace SE Q & A? Ich denke nicht, dass die Sorge um alle möglichen Sonderfälle Sie davon abhalten sollte, einen durchdachten Standardansatz zu verfolgen, und es ist ziemlich normal anzunehmen, dass ein Teil des Interviews vor Ort am Arbeitsplatz ist.
Einverstanden mit @Peter. Wenn ich mit Ihnen ein Interview führen würde, würde mich das "kein Internet" -Ding denken lassen, dass Sie das Auswendiglernen einer API mehr schätzen als das Verstehen der Konzepte. Dies würde mich zweimal überlegen lassen, bevor ich einen Job als Angebot Ihres Unternehmens annehme. Ansonsten stimme ich der Antwort im Allgemeinen zu und der letzte Satz ist besonders wahr.
@reirab Ich war nicht klar. "Kein Internet" bedeutet nicht "Auswendiglernen der API". Jede anständige Idee (wir verwenden Eclipse) verbindet Sie mit der JDK-Quelle. Ich bin unter Windows, daher ist "Open Declaration" an die Taste F3 gebunden. Ich habe es ** oft ** getroffen. Ich wäre enttäuscht von einem Kandidaten, der dies nicht tat. "Ich habe gerade meine Antwort bearbeitet, um zu verdeutlichen, dass die JDK-Quellen dem Kandidaten zur Verfügung stehen."
@CPerkins Stapelüberlauf? Vielleicht, weil ich kein Java-Typ bin, aber zu hören, dass kein Internetzugang eine große rote Fahne für mich wäre. Ich möchte meine Zeit nicht damit verschwenden, Räder neu zu erfinden. Es sei denn, die Aufgaben sind so grundlegend (d. H. Fizzbuzz), dass jeder Programmierer sie sofort lösen könnte. Ich würde denken, Sie möchten mich sehen * Probleme lösen *, die IDE ist nur ein Werkzeug von vielen, die dafür notwendig sind.
@JaredSmith ja das bin ich, warum? Wir machen natürlich auch verbales Design, gehen durch frühere Arbeiten, all das. Aber so machen wir es. Ich bin mir sicher, dass es uns ein paar ansonsten gute Kandidaten kosten könnte. Der "kein Internetzugang" ist absichtlich. Es geht um die Fähigkeit des Kandidaten, Probleme aus seinem eigenen Wissen und Können heraus zu "lösen", unterstützt durch die JDK-Quellen, um uns (auch mich) an die Details der API zu erinnern, anstatt nach der Lösung eines anderen zu googeln oder nach einer zu fragen Freund um Hilfe.
+1 explizit für "Eines der Dinge, die ich im Laufe der Jahre entschieden habe, ist, dass jedes Unternehmen, das nicht testet, mich weniger wahrscheinlich als Mitarbeiter bekommt." Ein Unternehmen, das sich um meine Code-Fähigkeiten kümmert, erhält mit größerer Wahrscheinlichkeit meine Stimme als ein Unternehmen, das nur mein Wort über die Fähigkeiten nimmt und meine Persönlichkeit mag. Das ist auch wichtig, aber nicht ausschließlich.
@Peter Ich stimme Ihnen zu, aber nur für die schwierigeren Übungen.Niemand sollte das Internet brauchen, um FizzBuzz oder andere triviale Übungen zu lösen, aber Sie möchten keinen guten Programmierer verlieren, nur weil er sich nicht an eine obskure Syntax erinnern kann, die er einmal und nie wieder verwendet hat und die im Internet in zu finden istfünf Sekunden.Googeln ist ebenso eine Entwicklungsfähigkeit wie das Codieren selbst - ich kenne Leute, die absolut schrecklich darin sind.Sie brauchen Stunden, um nach etwas zu suchen, das in wenigen Minuten mit den richtigen Schlüsselwörtern gefunden werden kann.
#5
+41
Peter
2016-02-03 02:45:46 UTC
view on stackexchange narkive permalink

Warum keine Tests zu Hause?

Selbst wenn wir die Möglichkeit des Betrugs und den Umkehrfilter ignorieren, der gute und ehrliche Kandidaten dazu veranlasst, Unternehmen mit Codierungstests zu Hause zu meiden, ist der Wert von at Home-Coding-Tests sind begrenzt.

Wenn es sich um eine leitende Position handelt, kann ein leitender Entwickler mit Personenkenntnissen innerhalb von weniger als 10 Minuten feststellen, ob der leitende Entwickler auf der anderen Seite ist Das Ende des Telefons ist beliebig gut oder erfindet nur Sachen. Wir werden nicht genau wissen, wie gut es ist, aber wir werden genauso viel wissen, wenn nicht mehr, als uns jeder denkbare Codierungstest zu Hause sagt.

Wenn es sich um eine Junior-Position handelt Wir erwarten nicht viel technisches Know-how. Wir suchen Begeisterung, Lernbereitschaft und Talent - keines davon wird bei einem Codierungstest zu Hause festgestellt. Es gibt zu viele Dinge, die Junioren nicht vergessen dürfen. Wenn wir sie einstellen, müssen wir sie trotzdem trainieren.

Wie teste ich stattdessen?

Geben Sie ihnen als Filter nur 10 Minuten Zeit, um einen FizzBuzz zu lösen Variation vor Ort während der ersten Interviewrunde oder, wenn Sie mit guten Lebensläufen überfüllt sind und einen anderen Filter benötigen, über Skype vor der ersten echten Interviewrunde.

Sobald sie die Filter bestanden haben, Sie müssen mehr über die Codierungsfähigkeiten Ihrer Kandidaten wissen. Ich empfehle, 30 Minuten bis höchstens 2 Stunden mit Paarprogrammierung oder Codeüberprüfungen zu verbringen - echte Arbeit statt einer Übung. 1-2 mal mit verschiedenen Partnern wiederholen. Der Vorteil der Paarprogrammierung und der Codeüberprüfung besteht darin, dass der Entwickler bereits über ausreichende Kenntnisse verfügt, um einen Beitrag zu leisten.

Machen Sie sich keine Sorgen, dass der Test für jede Einstellung unterschiedlich ist - das Ziel des Einstellungsprozesses besteht nicht darin, ihn zu finden die Person, die in einigen messbaren und wiederholbaren Tests am besten abschneidet. Das Ziel ist es, eine einzelne Person einzustellen, die die Arbeit gut macht.

Sie täuschen sich selbst, wenn Sie glauben, dass jemand innerhalb von 10 Minuten feststellen kann, ob die Person am anderen Ende des Telefons gut ist.
Begeisterung und Lernbereitschaft? Was ist mit vorhandenem Wissen oder Lernfähigkeit?
@djechlin Schön zu haben, aber bei weitem nicht so wichtig für einen Junior. Wenn sie behaupten, vom Codieren begeistert zu sein und lernbereit zu sein, aber nichts wissen, würde ich natürlich ihre Begeisterung in Frage stellen. Ich habe das Glück, nie jemanden getroffen zu haben, der bereit, aber nicht lernfähig war.
lol, also funktioniert Ihr Kriterium, weil Sie es so anpassen, dass es alles bedeutet, was Sie brauchen, wenn Sie einen Kandidaten sehen, den Sie mögen oder nicht. Warum nicht einfach mit "hat Funken" oder "hat keinen Funken" gehen, es ist einfacher.
Abgesehen davon, dass ich eine fortgeschrittene Matheklasse unterrichte, habe ich * definitiv * bereitwillig, aber nicht fähig getroffen.
@djechlin Sie haben einen Punkt. Angepasst durch Einbeziehung von "Talent".
@Dunk Ich bin anderer Meinung. Ich würde 10 Minuten brauchen, um zu entscheiden, ob sie "JEDER gut" sind. Aber es würde viel länger dauern, um zu sehen, ob sie "gut genug" sind. Der Sinn von Interviewrunden besteht darin, Kandidaten schrittweise auszusondern. Was das OP getan hat, ist das Äquivalent einer "Suche nach Wertigkeit" zu schaffen.
Um ehrlich zu sein, haben viele der von uns interviewten Junioren 1 oder 2 technische Praktika absolviert, weshalb wir sie testen. Wenn Sie ein Junior sind und noch nie ein MVC-Framework verwendet oder ein Programm erstellt haben, in dem Sie die API-Integration durchgeführt haben, bin ich mir nicht sicher, ob ich sie an Bord bringen möchte. Die Zeit und die Kosten, die erforderlich sind, um jemanden von Grund auf zu schulen, machen das Unternehmen nicht lohnenswert.
+1000 für den Teil "10 Minuten am Telefon mit einem leitenden Entwickler". Wenn Sie wissen möchten, ob ein Entwickler seine Sachen kennt, schließen Sie ihn mit einem anderen Entwickler an, dessen Meinung Sie vertrauen, und er wird es schneller als jeder Test klären. * Kurze, persönliche * Tests sind in Ordnung, wenn Sie darauf bestehen (aber * weit davon entfernt * notwendig), aber die viel zuverlässigere Methode, um schlechte Kandidaten auszusortieren, besteht darin, dass ein Peer tatsächlich mit ihnen interagiert.
Ich musste zu weit scrollen, um das zu finden!
Nun, Aron, wenn Sie tatsächlich die Leute, die "gut" sind, in 10 Minuten ausmerzen könnten, dann verschwenden Sie Ihre Zeit als Entwickler. Unternehmen würden wirklich, wirklich viel Geld an Leute zahlen, die ihnen nur gute Entwickler geben könnten. Wenn Sie wirklich weiter entwickeln wollten, würden Sie wahrscheinlich an einem Tag in der Woche immer noch ein Vermögen verdienen, Entwickler zu überprüfen, und Sie hätten genug Geld, um Ihre eigene Entwicklungsfirma zu finanzieren und das zu tun, was Sie interessiert. Zumal Ihr Unternehmen nur die "guten" Entwickler einstellen würde.
In Bezug auf: "Keine Übung, die auf echtem Code basiert, sondern echte Arbeit", bedarf dies einiger Einschränkungen / Erklärungen. Es wird Sie in vielen Ländern in rechtliche Schwierigkeiten bringen, wenn Ihr * Interviewprozess * Kandidaten umfasst, die echte Arbeit leisten, die Ihrem Unternehmen wohl zugute kommen könnte, ohne dass sie dafür bezahlt werden. Es spielt keine Rolle, ob Sie der Meinung sind, dass der Betrag zu trivial ist, oder ob Sie diese Codeüberprüfung nicht verwenden - es ist tatsächliche Arbeit und viele Gesetze verlangen, dass die Kandidaten bezahlt werden (oder sogar als angestellt gelten, wenn auch vorübergehend, zu diesem Zeitpunkt). .
Ich habe 10 Jahre Erfahrung und habe einen Vertragsrollentest erhalten, für dessen ordnungsgemäße Durchführung ich 2-3 Tage gebraucht hätte. Natürlich habe ich gekichert und abgelehnt.
Sie können die (sehr) guten nicht in 10 Minuten identifizieren, aber Sie sollten in der Lage sein, die (sehr) schlechten zu identifizieren
#6
+31
Kevin Wells
2016-02-03 04:42:48 UTC
view on stackexchange narkive permalink

Hier ist ein weiterer Punkt, den ich in den vorhandenen Antworten nicht behandelt sehe (von denen ich denke, dass sie das Thema im Allgemeinen gut abdecken). Ich würde mir genau ansehen, wie lange es tatsächlich dauert, bis die Leute fertig sind. Ich hatte vier Vorstellungsgespräche, in denen ich eine Programmierübung absolvieren musste, von denen jedes anders durchgeführt wurde (und jedes seine eigenen Vor- und Nachteile hatte). Zwei der vier (Nummern 3 und 4 unten) dauerten viel länger als sie sagten, und beide gab ich wegen des schwierigen Niveaus auf. Ich habe sie unten beschrieben und aus meiner Sicht vom Besten zum Schlechtesten eingestuft.

  1. Während des technischen Interviews setzten sie mich an einen Computer, der eine reduzierte Version ihrer Codebasis und hatte Ich ließ drei relativ kurze Probleme damit lösen (einen Fehler finden und beheben, den sie absichtlich hinzugefügt hatten, ein neues Feld zu einer Infotabelle hinzufügen usw.). Sie gaben mir genau eine Stunde dafür und nach einer Stunde gingen sie meine Lösung sowie meine Herangehensweise an die Probleme durch. Dies gab ihnen mehr Einblick in mich als Programmierer, während sie meine Zeit respektierten, indem sie sie kurz und auf den Punkt brachten.
  2. Während des technischen Interviews ließen sie mich ein Problem bearbeiten, auf das sie während der Entwicklung auf einem Whiteboard gestoßen waren während in der Lage zu sein, Ideen von ihnen abzuprallen. Dies war die kürzeste Option, während sie dennoch die Möglichkeit hatten, zu sehen, wie ich Probleme bewältige und wie viel ich tatsächlich für die erforderliche Arbeit tun kann.
  3. Während des technischen Interviews (für eine Junior-Position bei Ruby on Rails Web Development) wurde ich beauftragt, eine Webanwendung von Grund auf neu zu erstellen, die zu einer Website navigiert, mehrere Formulare ausfüllt, während sie präsentiert werden, und Daten von der resultierenden Seite zu entfernen und präsentieren Sie dies dem Benutzer. Sie sagten, dies sollte eine schnelle Übung sein, und es könnte für einen hochrangigen Webentwickler gewesen sein, aber nachdem ich zu diesem Zeitpunkt nur ein Jahr Berufserfahrung hatte, verbrachte ich vier Stunden damit, alles zum Laufen zu bringen, bevor ich aufgab und ging Zuhause (alle Interviewer waren Stunden vor mir gegangen, weil es ein Nachmittagsinterview war. Sie sagten, ich sollte das fertige Programm einfach speichern, wenn ich fertig war). Dies ist eine lächerliche Aufgabe für die aufgelistete Position, gab ihnen keine Ahnung von meinen Codierungsfähigkeiten und schien mir, als wollten sie nur freie Arbeit aus dem Deal herausholen. Unnötig zu erwähnen, dass ich den Job bis zu meiner Abreise an diesem Tag noch nicht einmal haben wollte.
  4. Bevor ich überhaupt ein technisches Interview hatte, gaben sie mir den Auftrag, eine Webanwendung zu erstellen, die eine API nutzt Ihre Firma pflegte "etwas Interessantes zu tun". Das war genau so breit, wie es sich anhört. Dazu musste ich Folgendes tun, bevor ich überhaupt versuchte, die Anwendung zu erstellen: Erstellen Sie ein Entwicklerkonto für die API, laden Sie das API-Entwicklungskit herunter, erstellen Sie eine öffentlich zugängliche Webanwendung (mit einem anderen Entwicklerkonto), lernen Sie die API und erstellen Sie Daten Repository für den Zugriff mit der API. Dies dauerte natürlich viele Stunden, um loszulegen, und kurz nachdem ich mit der Webanwendung selbst begonnen hatte, bekam ich ein anderes Vorstellungsgespräch und kurz danach ein Stellenangebot, sodass ich die Arbeit an der Aufgabe einstellte. Dies ist eine verrückte Sache im Rahmen eines Interviewprozesses, denn wer möchte all diese Zeit und Mühe in die Entwicklung eines Programms investieren, um nur eine geringe Chance zu haben, im Interviewprozess weiterzumachen?
  5. ol>

    Um Ihre Frage direkter zu beantworten, sollten Sie eine Programmierübung durchführen? Ja, aber stellen Sie sicher, dass es darauf zugeschnitten ist, zu testen, was Ihnen wirklich wichtig ist, und dass der Befragte nicht viel Fremdarbeit benötigt. Möchten Sie etwas über ihr algorithmisches Denken erfahren? Geben Sie ihnen ein Algorithmusproblem. Möchten Sie mehr über ihren Codierungsstil erfahren? Geben Sie ihnen ein Codierungsproblem. Möchten Sie mehr über ihren Entwicklungsprozess erfahren? Besprechen Sie ihren Prozess mit ihnen, während sie ein Problem lösen.

Interviewer gaben auf und gingen nach Hause?! FFS, du wolltest dort sowieso nicht arbeiten. Ich wäre 2 Minuten später gegangen.
Sie gaben nicht so sehr auf, sondern gingen einfach von der Arbeit nach Hause. Nachdem sie mir den Auftrag gegeben hatten, überließen sie mich einfach meinen eigenen Geräten, um das Problem zu lösen. Da es sich um ein Nachmittagsinterview handelte und ich vier Stunden lang an dem Problem arbeitete, gingen sie nach Hause. Ein paar der Angestellten waren noch da, als ich ging, und mir wurde klar, dass es Zeit war, das Handtuch zu werfen, als diese Leute das Abendessen ins Büro bestellten
#7
+28
NotMe
2016-02-04 03:14:44 UTC
view on stackexchange narkive permalink

Lassen Sie mich mit Folgendem beginnen:

  • Ich habe Tests zu Hause erhalten, die zwischen 15 Minuten und 10 Stunden lagen.
  • Ich habe Tests erhalten Online-Tests durchlaufen.
  • Ich wurde beauftragt, die Antwort auf FizzBuzz und andere modische Internet-Tests auf Whiteboards zu schreiben.
  • Ich wurde nach dem Quadrat gegen runde Schachtabdeckungen gefragt.

Kurz gesagt, ich habe mich mit so ziemlich den verschiedenen Arten befasst, wie Entwickler gerne mit Interviews umgehen. Um ganz ehrlich zu sein - ich bezweifle ernsthaft, dass die überwiegende Mehrheit der Befragten mich überhaupt verstanden hat, was die potenziellen Ergebnisse jedes dieser Tests waren, und letztendlich nur Leute eingestellt hat, ob sie sie "mochten" oder nicht.

Vorher Wenn Sie sogar eine Stellenanzeige erstellen, sollten Sie sich hinsetzen und genau durchgehen, was Sie einstellen möchten, und "Entwickler" ist keine Antwort, zumindest keine richtige. Eine gute Antwort darauf wäre so etwas wie "Mortgage Domain Expert".

Es ist trivial, jemanden zu finden, der ein bisschen Code schreiben oder in Google nach der Anwendung eines bestimmten Musters suchen kann, verglichen mit der Suche nach jemandem, der in dem Geschäft tätig ist, in dem Sie tätig sind, und das dieses Wissen nutzen kann. Mit anderen Worten, wenn ich für eine Hypothekendokumentationsfirma anheuere, würde ich jemanden nehmen, der über den Unterschied zwischen einem 15-jährigen festen und einem ARM-Darlehen sprechen könnte, gegenüber jemandem, der in 2 Minuten einen Blasensortierungsalgorithmus schreiben könnte. Der Grund dafür ist, dass "normale" Geschäftsleute alle möglichen seltsamen Anforderungen stellen und Domain-Experten leichter auf den Punkt bringen können, was benötigt wird, während jemand, der nichts weiß, gerne Dinge hinzufügt, die nutzlos sind oder die App wirklich schlecht machen. P. >

Um zu den Fragen zurückzukehren, stellen Sie nur Go / No Go-Fragen .

Ist es wichtig, dass die Person Ihnen den Unterschied zwischen einer virtuellen und einer abstrakten Methode erkennen kann? Könnte sein, ist es normalerweise nicht. Ich würde wetten, dass ein großer Teil der Entwickler kaum weiß, wann sie diese Schlüsselwörter verwenden sollen, aber sie sind nicht Ihre Superstars, sondern die Basis, die ohne die visuellen Designer keinen Code verwenden können.

Ist Ist es wichtig zu erkennen, wann eine Abfrage für SQL Injection geöffnet ist? Für eine Sr-Position - absolut; für eine Jr. Position Nr. Dies ist etwas, das leicht trainiert und über die Codeüberprüfung gehandhabt werden kann. Daher der Grund, warum Sie die sr wollen. um es von innen und außen zu kennen - damit sie die Junioren trainieren können.

Ist es wichtig, dass sie den genauen Maximalwert eines Int32 -Datentyps kennen? Nicht normalerweise - für dieses triviale Wissen ist Google gedacht. Aber vielleicht müssen Sie auf Geräten mit eingeschränktem Speicher codieren - in diesem Fall: absolut.

Ich interviewe und stelle Entwickler ein. Ich schicke keine Heimtests - es ist zu einfach, wenn ein Freund hilft. Ich benutze keine Online-Testseiten - da das Scoring automatisiert werden muss, ist es für das Spiel trivial. Ich bitte die Kandidaten nicht, die Antwort auf fizzbuzz aufzuschreiben - fast jeder hat diesen Test gesehen und sollte die Antwort auswendig kennen. Alle anderen haben im letzten Jahr das Feld betreten und sind sowieso jr. Ich stelle auch keine Trivia-Fragen - die Möglichkeit, die Antwort zu rezitieren, bedeutet normalerweise nur, dass Sie die Frage schon einmal gehört haben.

Was ich tue, um Leute zu interviewen:

  • Ich bitte sie, ein oder zwei frühere Projekte zu beschreiben. An dieser Stelle geht es mir nur darum, es ihnen bequem zu machen und sie zum Reden zu bringen. Dies ist ein Go / No Go, denn wenn ich nicht verstehen kann, was sie sagen, kann ich nicht mit ihnen arbeiten.

  • Ich stelle ihnen einige spezifische Fragen in der Technologie, die sie benötigen. Wenn es sich um einen SQL Server handelt, werde ich nach einem Update für einen Join fragen. Wenn es HTML ist, werde ich ihnen eine 10-zeilige HTML-Datei mit ein paar CSS-Klassen geben und sie fragen, was die Ausgabe ist. Dies sind triviale Fragen an Personen mit Erfahrung in diesen Bereichen, die Prätendenten schnell ausmerzen.

  • Wenn ich nach einem Senior-Entwickler suche, stelle ich Fragen zum Domain-Wissen. Keine Randfälle, sondern Kernprinzipien. Wenn Sie ein Projekt in einem Buchhaltungs-Backend leiten müssen, sollten Sie die grundlegenden Rechnungslegungsgrundsätze besser verstehen.

  • Wenn ich einen Jr.-Entwickler suche, frage ich nach Haustierprojekten. Alles, was ich wissen möchte, ist die Art der verwendeten Technologie. Dies sollte Sie darauf hinweisen, was sie wirklich tun wollen. Mit anderen Worten, ein C # -Entwickler führt wahrscheinlich keine Haustierprojekte in PHP durch. Ich erwarte ehrlich gesagt nicht zu viel von einem jr-Entwickler, außer dass er trainierbar ist. Wenn sie aktiv an einem Haustierprojekt arbeiten, kann ich sie trainieren. Wenn sie der Typ sind, bei dem die Leute ihnen sagen müssen, was zu tun ist, gibt es weitaus größere Unternehmen, bei denen diese Leute arbeiten können.

Ich stelle diese Fragen nicht auf fliegen, die möglichen Antworten werden im Voraus berücksichtigt und passen zu einem Go / No-Go-Muster. Wenn eine Frage nicht dazu passt, ist sie nicht relevant. Ich frage auch jeden Kandidaten nach dem gleichen, es sei denn, ich bin zu 100% davon überzeugt, dass ich ihn nicht anheuere. An diesem Punkt werde ich das Interview beenden.

Wenn Sie aus irgendeinem Grund immer noch darauf bestehen, einen Test nach Hause zu schicken - Stellen Sie sicher, dass die Fähigkeiten, die erforderlich sind, um diesen Test in angemessener Zeit erfolgreich abzuschließen, tatsächlich Fähigkeiten sind, die Sie interessieren.

Ich wurde von einer Firma zum Mitnehmen getestet, bei der ein benutzerdefinierter kryptografischer Dienstanbieter geschrieben wurde. Ich habe den Test abgeschlossen, weil er etwas interessant war. Sie haben mich eingestellt. Zu keinem Zeitpunkt meiner Zeit habe ich irgendetwas getan, das auch nur aus der Ferne mit Sicherheit, Kryptographie oder sogar Mathematik zu tun hatte, außer ein paar Zahlen hinzuzufügen. Ich frage mich, wie viele Leute sie mit diesem Test weggefahren sind?

Vielen Dank für Ihre Antwort, gute Antwort. Wir haben einen ähnlichen Ansatz abzüglich des Take-Home-Tests.
Ein guter Entwickler kann Domain-Kenntnisse besser erlernen, als ein guter Domain-Experte lernen kann, gut zu programmieren.Sie schränken Ihren Einstellungspool unnötig ein, und Ihr Unternehmen wird darunter leiden.
@DavidThornley: Sie und ich haben wahrscheinlich unterschiedliche Definitionen für einen großartigen, guten und mittelmäßigen Entwickler.In meiner Welt wird ein großartiger Entwickler die richtigen Fragen stellen und schnell Domain-Kenntnisse erwerben.Ein guter Entwickler kann im Allgemeinen gut mit dem umgehen, was ihm gesagt wird, wirft aber keine intelligenten Fragen dazu auf.Ein Mittelmäßiger stellt überhaupt keine Fragen und hat oft eine Wiederholung seiner Arbeit mehr als normal.Leider ist es weitaus schwieriger, einen großartigen Entwickler zu finden, als gute, die die Domain bereits kennen.
"der genaue Maximalwert eines Int32-Datentyps" ... ähm, es ist INT_MAX, nicht wahr?
#8
+17
Wayne Werner
2016-02-03 09:48:05 UTC
view on stackexchange narkive permalink

Früher habe ich fest an Codierungstests und Whiteboard-Codierung geglaubt, aber mir wurde klar, dass sie so gut wie nutzlos sind, weil

Was testen Sie überhaupt?

Ein Whiteboard-Test oder ein kurzer Programmiertest gibt Ihnen einen Einblick in die Person, aber wirklich nicht so viel. Es sei denn, Sie möchten, dass jemand seine Zeit damit verbringt, Code auf ein Whiteboard oder einen Code im FizzBuzz-Stil zu schreiben.

Was möchten Sie , möchten Sie jemanden, der dies ist? :
  • leidenschaftlich
  • lernbereit
  • in der Lage, Probleme zu lösen *
  • vernünftig technisch
  • Beachten Sie, dass die meisten Entwickler ihre Probleme lösen, indem sie wissen, nach welchen Begriffen in Google gesucht werden soll. sub>

    Das Letzte , das Sie einstellen möchten, ist jemand, der nicht zu Ihrem Team passt, weil er es nach unten zieht.

    Wie können Sie testen? Für diese?

    • Fragen Sie sie nach einem Projekt, das ihnen gefallen hat. Wenn sie nicht gerne darüber sprechen, versuchen Sie, sanften Unglauben auszudrücken, z. "Du kannst X nicht machen, oder?" Wenn es etwas ist, worüber sie leidenschaftlich sind, werden sie dich korrigieren. Auf diese Weise erfahren Sie auch, ob sie technisch sind oder nicht.
    • Fragen Sie sie nach Dingen, die sie kürzlich gelernt haben. Oder was sie aus dem Projekt gelernt haben, an dem sie gearbeitet haben.
    • Fragen Sie sie nach dem letzten Mal (oder einer Zeit), an der ihnen etwas Wissen fehlte. Wie haben sie die benötigten Informationen erhalten? Sind sie zu einem Teamkollegen gegangen? Haben sie im Internet gesucht?
    • Fragen Sie sie, ob sie etwas an ihrem aktuellen / letzten Team verbessern möchten. Benötigten sie bessere Commit-Nachrichten? Weitere Code-Bewertungen? Weitere Tests? Mehr Automatisierung?
    • Fragen Sie sie, welche Technologie sie begeistert und warum.

    Wenn Sie jemanden haben, der technisch in diesem Gespräch kompetent ist, ist es am einfachsten zu sagen, ob diese Person die schlechteste ist. Ein Beispiel: Wir hatten ein Kind, das hereinkam und interviewte - er sagte, dass seine Java-Fähigkeiten auf einer Skala von 1 bis 10 wie eine 7 bis 8 waren. Ich glaube nicht, dass er überhaupt wusste, dass Java in eine JAR-Datei kompiliert wurde, die später von der JVM in Maschinensprache kompiliert wurde. Ich würde mich vielleicht als 2 oder 3 einstufen und ich weiß das.

    Unser CTO hat ihm am Vortag in einem Interview dieselbe Frage gestellt, und unser CTO rief ihn an und erklärte, dass er auf keinen Fall ein 7-8 war.

    Unser CTO fragte ihn auch nach seinem Lieblingsprojekt, das mit Handscannern zu tun hatte. Aber er konnte nichts darüber erklären, wie sie arbeiteten oder dass sie Umfragen verwendeten, um Wartezeiten zu vermeiden. Er konnte keine einzige technische Sache erklären.

    Dieser Typ wurde nicht eingestellt.

    Finden Sie heraus, nach welchen Attributen Sie suchen, und finden Sie dann heraus, wie es geht Test für those

    Aber ich muss wirklich sehen, wie sie codiert!

    Okay, das ist in Ordnung - aber es sei denn, sie geht Um in einem Silo zu programmieren, ist es am besten, sie als Auftragnehmerin für ein kleines, genau definiertes Projekt einzustellen. Vielleicht fügen Sie die Möglichkeit hinzu, einige Dateien von einem FTP herunterzuladen und sie dann in Ihrer Datenbank abzulegen. Etwas Einfaches, das nicht viel / keine Domänenkenntnisse erfordert.

    Lassen Sie Ihre Kandidaten mit einem oder zwei vorhandenen Mitarbeitern zusammenarbeiten und sie für ihre Zeit bezahlen. Sie werden genau sehen, wie sie funktionieren und wie gut sie mit dem Team zusammenarbeiten. Kommunizieren sie gut? Werden sie leicht frustriert? Sind sie hartnäckig?

    Es gibt Dinge, die Sie tun können, um bessere Mitarbeiter einzustellen ... aber ein Programmierwettbewerb gehört wahrscheinlich nicht dazu.

Sie sprechen einige gute Punkte an, aber ein Nachteil von "Das Beste, was Sie tun können, ist, sie als Auftragnehmerin für ein kleines, genau definiertes Projekt einzustellen" ist, dass die meisten Kandidaten ein Vollzeitangebot vorziehen, anstatt einen Vertrag zu mieten. Wenn sie mehrere Angebote haben, wählen sie die "sicherere" Option.
@RQDQ stimmte zu. Ich denke, es ist das am wenigsten effektive Mittel zum Interviewen ... aber es ist die effektivste Form des Interviewens mit Code.
Das alte "versuchen, bevor Sie kaufen". Obwohl die gesamte Branche in diese Richtung geht und meine nächste Position wahrscheinlich ein 3-6-monatiger Vertrag sein wird, bin ich traurig über die darin verankerte Angst. Wann haben wir aufgehört, unsere Hausaufgaben zu machen, und wann hatten wir Angst, jemanden zu feuern?
@JoshuaDrake Arbeitslosigkeit, dann;)
#9
+16
Dan
2016-02-03 00:17:48 UTC
view on stackexchange narkive permalink

Vom Standpunkt einer arbeitssuchenden Person aus vermeide ich im Allgemeinen Orte, deren Codierung mehr als 1 Stunde dauert. Einmal war ich an diesem Ort, der ein Java-Codierungsprojekt im Wert von fast 3 Tagen erforderte. Ich habe alles gemacht und der Typ war sogar beeindruckt, aber sie sagten mir, dass sie nach der zweiten Interviewphase jemand anderen eingestellt haben. Wenn ich danach zu einem Unternehmen komme, würde ich jedes Projekt ignorieren / bestehen, dessen Fertigstellung mehr als ein paar Stunden dauert. Meine Zeit ist genauso wertvoll wie ihre und ich verschwende sie lieber nicht mit Dingen, die mich nicht weiterbringen.

Wenn Ihre Codierungsübung zu lang ist, sind die Leute vielleicht nicht dazu bereit Setzen Sie die Zeit ein. Ich würde versuchen, sie so zu reduzieren, dass sie höchstens eine Stunde dauert, aber gleichzeitig ein Verständnis für das Codieren demonstriert und möglicherweise eine Frist wie "Bitte morgen von COB ausfüllen" oder so. Sie können immer noch etwas online "kopieren und einfügen", machen es jedoch schwierig, indem sie spezifisch sind und nicht etwas, das Sie online lesen.

Ein starker Lebenslauf, Referenzen und die Fähigkeit, einen kurzen Test durchzuführen, können alles sein, was Sie brauchen. Halten Sie sich an Ihre Waffen und viel Glück bei der Jobsuche.
Amazon hat sich vor einigen Jahren an mich gewandt und mich gebeten, einen dreistündigen Test mit drei verschiedenen Rätseln durchzuführen, um den UND-Code herauszufinden. Ich habe alle 3 ausgeblendet, aber nur einen zu meiner Zufriedenheit beendet. Es hat ein bisschen Spaß gemacht, aber das Fehlen jeglicher Rückmeldungen war sehr enttäuschend. Ein Jahr später hatte ich ein weiteres Coding-Interview mit ihnen, aber diesmal hatte ein Mitglied des Teams ein Puzzle und wir haben es zusammen codiert. Ich habe den Job nicht bekommen, aber ich habe in diesen 90 Minuten gepaarter Programmierung so viel gelernt wie in einem halben Semester traditioneller Schule.
Das einzige Mal, dass ich ein Programmierproblem zum Mitnehmen hatte, antwortete das Unternehmen nie, nachdem ich meine Lösung eingereicht hatte. Nach einer Woche habe ich mit ihnen Kontakt aufgenommen und der Manager sagte, er habe es bekommen, aber noch keine Zeit gehabt, es sich anzusehen. Sie haben nie zurückgerufen und ich auch nicht.
_ "Der Typ war sogar beeindruckt, aber sie sagten mir, dass sie jemand anderen eingestellt haben" _ Aber nicht beeindruckt genug, um Sie einzustellen? Haben sie dir gesagt warum?
@DaveisNotThatGuy Es ist wie beim OP-Test. Der Test wurde nur gegeben, um ein persönliches Interview zu erhalten; Es wird nicht verwendet, um sie einzustellen, sondern nur, um sicherzustellen, dass sie sich auskennen, bevor sie sie in Betracht ziehen. Sie waren beeindruckt, dass ich die Aufgabe abgeschlossen habe und die richtigen Ergebnisse erzielt habe. Ich denke, sie waren einfach nicht beeindruckt von meinem Interview.
Obwohl sie später feststellten, dass Sie ein guter Programmierer sind, wussten sie, bevor Sie das erste Interview verließen, dass Sie in der Spalte "Keine Einstellung" waren. Wie hätten Sie den Codierungstest anders durchführen können, um dies auszugleichen und in die nächste Runde zu gelangen? Scheint dir kaum fair zu sein.
#10
+13
silencedmessage
2016-02-03 00:48:25 UTC
view on stackexchange narkive permalink

Wie andere angemerkt haben, können einige Entwickler durch eine 1-2-stündige Programmierübung davon abgehalten werden, sich für eine Stelle zu bewerben. Was möglicherweise besser funktioniert, ist eine White-Boarding-Sitzung, bei der der Kandidat während des Interviews ein Problem auf einem Whiteboard löst. Auf diese Weise haben Sie die Möglichkeit, ein persönliches Interview zu führen und gleichzeitig sicherzustellen, dass sie über technische Probleme verfügen.

Diese Probleme sollten nicht extrem schwierig sein oder einen Entwickler auslösen. Ein klassisches Beispiel ist FizzBuzz. Auf diese Weise können Sie sehen, wie sie denken, und wissen, dass sie zumindest programmieren können und nicht googeln müssen, wie eine Schleife erstellt wird.

Versagt jemand wirklich FizzBuzz?
@PatriciaShanahan: Ja, Sie werden die ganze Zeit über von der Qualität überrascht sein. Ein Nebeneffekt der Nachfrage von Entwicklern ist, dass viele Leute versuchen möchten, als einer eingestellt zu werden, auch wenn sie nicht ganz bereit oder gut genug sind, können sie sich selbst davon überzeugen, dass sie am Arbeitsplatz lernen können. Ein anständiger kurzer technischer Test verhindert wirklich, dass versehentlich jemand eingestellt wird, der das Gespräch sprechen kann, aber in der Praxis nicht liefert. Diese Situation ist häufig genug, dass Sie * eine * Art von Interviewtechnik benötigen, um sie zu filtern.
Die Nützlichkeit von FizzBuzz wird in Programmers SE: http://programmers.stackexchange.com/questions/15623/fizzbuzz-really erläutert
Das hat bei uns sehr gut funktioniert. Während eines guten Interviews landet das gesamte Team an der weißen Tafel, um gemeinsam mit dem Kandidaten die Lösung zu entwickeln. =)
@NeilSlater - FizzBuzz war großartig, als es herauskam. Es war noch vor fünf Jahren ein guter Diskriminator, als diese Diskussion stattfand. Es ist jetzt nicht so toll. Eine Sache, in der sich die US-Bildung hervorgetan hat, ist, Kindern beizubringen, wie man einen standardisierten Test übertrifft. FizzBuzz (zusammen mit so etwas) ist jetzt in den Status eines standardisierten Tests gefallen.
@DavidHammen: Interessant. Sie können "FizzBuzz-Test" jedoch einfach neu definieren, um "jede einfache Codierungsherausforderung ähnlich FizzBuzz" zu bedeuten. Es sollte nicht schwer sein, ein ähnliches Problem zu finden.
@PatriciaShanahan Ich habe 2 Interviews in meiner aktuellen Position gemacht. Der Erfolg von FizzBuzz ist 0/2.
@NeilSlater Viele Leute kennen FizzBuzz jetzt auch. Hinweis: "Ein klassisches Beispiel ist ..." Ich wollte nicht vorschlagen, dass FizzBuzz das Ende eines Whiteboarding-Tests ist. Die allgemeine Idee bleibt jedoch dieselbe. Geben Sie dem Kandidaten ein triviales Problem, das es zu lösen gilt, und beobachten Sie, wie er es löst.
@NeilSlater Ich würde zustimmen ** WENN ** wir noch keine Kandidaten gesehen haben ** scheitern ** FizzBuzz. Das heißt, wir machen FizzBuzz nicht isoliert. Wenn sie einfach eine grundlegende Implementierung ohne Fehler oder Diskussion schreiben, bitten wir sie, sie auf eine andere Weise zu implementieren. Das Follow-up zeigt tendenziell diejenigen, die verstehen, was tatsächlich passiert, anstatt sich eine bestimmte Implementierung zu merken. Das Follow-up überprüft auch einige menschliche Interaktionsfähigkeiten.
@PatriciaShanahan: Ich bin mir ziemlich sicher, dass sie FizzBuzz nicht verstehen, sondern die Anforderungen verstehen. Zum Beispiel das Drucken sowohl der Nummer als auch des Textes (z. B. 1, 2, 3Fizz, 4, ...), wenn die Anforderungen nur den Text drucken sollen (z. B. 1, 2, Fizz, 4). Oder wenn sie strenger sind (hehe), reicht es nicht aus, separate Fizz und Buzz anzuhängen, um FizzBuzz zu erstellen, sondern Sie sollten beispielsweise eine dritte Zeichenfolge "FizzBuzz" für Modulo 15 verwenden.
FizzBuzz, wenn ich in einem Interview danach gefragt würde, würde ich es als Gelegenheit nutzen, schlechte Interviewer auszusortieren. Es testet eine Sache: "Weißt du, was der Modulo-Operator ist?" Etwas, das ich selten im Produktionscode verwende. Was für eine reine Zeitverschwendung.
@AdrianThompsonPhillips Das war mein erster Eindruck, bis ich Leute mit 10 Jahren Erfahrung sah, die den Unterschied zwischen einem Zuweisungsoperator und dem Gleichheitsoperator nicht kannten oder nicht wussten, wie man eine Schleife schreibt usw. Es gibt leider einige sehr unterqualifizierte und überwältigende Kandidaten.
@silencedmessage Ich stimme voll und ganz zu, Fragen zu diesen Dingen zu stellen wäre viel besser als obskure historische Fragen zu verknüpfter Liste, Modulo, Verschieben von Bits und Austauschen von Werten zwischen zwei Registern.
#11
+10
user8365
2016-02-02 22:10:37 UTC
view on stackexchange narkive permalink

Den Codierungstest nicht loswerden !!!!

Wenn Sie Programmierer werden möchten, müssen Sie Code schreiben, der etwas bewirkt. Die Beantwortung von Trivia-Fragen ist nicht so wichtig. Das Chatten über vergangene Erfahrungen ist gut, aber in keiner Weise ein Ersatz für das Codieren.

Tun Sie alles, um Leute dazu zu bewegen, den Test zu machen und diesen Job zu bekommen. Mach es kürzer oder bezahle sie. Bringen Sie sie an einem Wochenende mit, damit jeder Zeit hat, diese Person in Aktion zu beobachten.

Dies hängt wirklich davon ab, dass Personen die Ergebnisse der Tests / Beobachtungen interpretieren können. Möglicherweise möchten Sie einen Dritten mit diesem Screening beauftragen, wenn Sie nicht wissen, wie es geht. Nur die richtige Antwort zu finden, ist nur die halbe Miete. Entwickler benötigen Googeln, aber es steckt noch viel mehr dahinter. Wenn ein Programmierer den Test schneller durchführen kann, ist dies ein Plus.

Abhängig von Ihrem Projekt bevorzugen Sie möglicherweise fließende Sprachkenntnisse, damit der Entwickler sofort effizient arbeiten kann. Auf der anderen Seite könnten Sie auf lange Sicht leiden, wenn Sie sich für einen weniger erfahrenen Programmierer entscheiden, der mit einer Schlüsselfunktion Ihrer App nicht weiterkommt oder eine so schlechte Struktur aufbaut, dass es schwierig ist, sie zu ändern und zu warten. Mit einem guten Programmierer, der bereit ist, sich anzupassen und die benötigte Sprache zu lernen, waren Sie vielleicht besser dran. Es gibt viele Entwickler, die vor bestimmten Stapeln, Frameworks, Sprachen, Tools und Betriebssystemen absolut davonlaufen.

Entwickler sind kritische Positionen, deren Besetzung sehr teuer ist. Ich verstehe Ihre Besorgnis darüber, zu viele gute wegzujagen, aber Sie brauchen nur einen. Sparen Sie nicht.

Ihre Aufgabe ist es, sicherzustellen, dass Sie keinen schlechten Programmierer einstellen und nicht alle Bewerber richtig bewerten. Fehler werden gemacht. Sichern Sie Ihre Wette ab und machen Sie nicht die schlechteste.
Das ist genau der Grund, warum wir es eingeführt haben. Es gibt zu viele Cowboy-Entwickler, die zig Sprachen in ihrem Lebenslauf haben, aber wenn es darauf ankommt, können sie nicht codieren. Es ist auch die bestbezahlte Position im Unternehmen, also können wir es uns nicht leisten, das Risiko mit einer schlechten Einstellung einzugehen ... es hat uns ein paar Mal den Arsch gerettet, ein paar Typen, von denen ich vermutete, dass sie schwach waren Kandidaten, die nach einem technischen Interview am Telefon waren, zogen ihre Job-App in letzter Minute zurück, als ich in der zweiten Runde den Codierungstest einführte. Es ist mir in den Sinn gekommen, nur das Tech-Telefoninterview zu machen.
@bobo2000 - Sie müssen die Länge des Tests wirklich gegen die Verfügbarkeit von Talenten in Ihrer Nähe abwägen. Wenn es sich um einen Programmierermarkt handelt, müssen Sie möglicherweise Zugeständnisse machen. Als eine Art "A / B" -Test können Sie zufällig einige Kandidaten auswählen, um eine kürzere Version des Tests zu erhalten und festzustellen, ob sie mehr Interesse zeigen.
@bobo2000 Es gibt etwas, das ich nicht verstehe: In anderen Kommentaren sagen Sie, dass Sie meistens neue Absolventen als Bewerber haben, aber hier sagen Sie, dass Sie die bestbezahlte Position im Unternehmen besetzen möchten. Etwas passt nicht wirklich zusammen. Können Sie erklären, wie diese beiden Fakten zusammenpassen?
Ein Codierungstest ist eine Sache. Ein Codierungstest, der mehr als 8 Stunden dauert, ist eine ganz andere Sache.
@bobo2000 "Ich gebe einigen Kandidaten (** meistens frisch Absolventen **) die Programmieraufgabe" + "Es ist auch die ** bestbezahlte Position ** im Unternehmen" = hier stimmt etwas nicht.
Ich habe das Gefühl, dass die "frischen" Absolventen nicht mehr auf das Versprechen von Romantik und Reichtum des dünn finanzierten Startups hereinfallen. Gut für sie! Ich habe das zweimal in der letzten Blase gemacht, und keine dieser Müllkippen gibt es noch.
@RaduMurzea: In der Start-up-Welt sind Programmierer, selbst frischgebackene Programmierer, in der Regel die bestbezahlten Personen, gefolgt von den Verkäufern und den CEOs / Gründern. Nach ein paar Jahren werden Sie in der Regel feststellen, dass die Managementgehälter steigen, da sie es nicht mehr für zu riskant halten, etwas aufwendiger auszugeben, anstatt erneut zu investieren. Nach ungefähr fünf Jahren verdienen Verkäufer mehr als Programmierer, wenn das Unternehmen gutes Geld verdient. Aber am Anfang geben die Gründer normalerweise viel Geld aus, um die besten Programmierer zu finden, die sie sich leisten können.
@slebetman - wie er sagte. Für einen ressourcenschonenden Start ist die Verhinderung der Einstellung eines schlechten Programmierers der Schlüssel zum Wachstum, da sie das Produkt bauen.
Wenn Sie sich beim Aufbau Ihres Geschäfts auf neue Absolventen verlassen, haben Sie ein Problem.
@sevenseacat Um ehrlich zu sein, können sich die meisten kleinen Unternehmen keinen Senior Dev leisten. Ein guter Senior-Entwickler wird in der Region von 50 bis 100.000 kosten, und ein mittlerer Level liegt im Bereich von 40 bis 50. Wenn sich der Start in einer Wachstumsphase befindet, wie wir sie haben, sind Sie auf Junioren beschränkt. Der Trick besteht darin, jemanden zu finden, der durch Praktika bereits viel gelernt hat. Sie werden wahrscheinlich nach ein oder zwei Jahren (nach dem Start der Erfahrung) weiterziehen, aber bis dahin wird es hoffentlich mehr Ressourcen geben. Auch das Training nehme ich hier sehr ernst.
@DaveisNotThatGuy Ich habe in vielen als ehemaliger Entwickler gearbeitet und stimme Ihnen zu. Das Problem bei vielen ist, dass sie einen Junior einstellen und nicht in ihre Ausbildung investieren, sondern von ihnen erwarten, dass sie wie ein Senior codieren. Jetzt, wo ich Management bin, habe ich die Möglichkeit, etwas anderes zu tun, vorausgesetzt, sie haben eine gute Basis, auf der sie arbeiten können.
Fragen Sie sich, ob Sie wirklich einen Nachwuchsentwickler ausbilden können? Sind Sie qualifiziert, einen Junior auszubilden? Habt ihr Zeit? Haben Sie andere, erfahrene Entwickler, die dies tun? Was ist dein Trainingsplan? Was erwarten Sie von Fortschritt? Haben Sie Standards für die Erstellung Ihres Codes veröffentlicht, an denen Sie den neuen Mann messen können? Die meisten Startups haben keine davon. Wenn Sie eine dieser Fragen nicht beantworten können, stellen Sie keinen neuen ein. Sie und er werden es bereuen.
Deshalb vermeide ich Startups wie die Pest, das macht keinen Sinn. "Stellen Sie jemanden ein, der wahrscheinlich keine gute Arbeit leistet, aber billig ist. Sie müssen also viel später mehr aufräumen."
Rufen Sie mich nicht an einem Wochenende zum Interview an.Ich reserviere meine Wochenenden für andere Dinge als die Arbeit (außer natürlich für die Crunch-Zeit).Wenn es sich lohnt, mir einen überwachten Programmiertest zu geben, lohnt es sich, ihn während der normalen Stunden zu überwachen.
#12
+10
koan
2016-02-03 23:30:56 UTC
view on stackexchange narkive permalink

Meiner Meinung nach ist das Problem, das Sie hier haben, nicht unbedingt der Programmiertest. Zuerst haben Sie das technische Telefoninterview und dann einen Arbeitstest von zu Hause aus, bevor Sie ein persönliches Interview führen. Es hört sich so an, als würden Sie Ihre Kandidaten auf Distanz halten und es bis zur letzten Minute belassen, bevor Sie sie treffen. Ab wann erwarten Sie, dass die Kandidaten entscheiden, dass sie für Sie arbeiten möchten?

Ich gehe davon aus, dass Ihre Stellenanzeige den meisten ähnlich ist und sich daher auf Standort, Gehalt und eine ( Wunsch) Liste der Fähigkeiten. Die Kandidaten wissen nicht wirklich, woran sie arbeiten würden, was die Umwelt oder die Menschen betrifft, mit denen sie interagieren müssten. Sie haben den Job noch nicht an sie verkauft. Hier bitten Sie sie, ihre technischen Fähigkeiten zweimal zu beweisen, bevor sie eine einzige Frage zur Arbeit stellen können.

Ich schlage vor, Sie versuchen, das Format der Technik zu ändern Telefoninterview als 30-45-minütiger Chat über den Job, einschließlich zahlreicher Möglichkeiten für Fragen der Kandidaten, dann 15 Minuten technische Fragen als Bildschirm, damit Sie immer noch die Möglichkeit haben, die besseren Bewerber auszuwählen, ohne es zu lästig zu machen.

Ich würde auch in Betracht ziehen, die Programmierherausforderung vor den Interviews vor Ort zu verschieben. Es scheint für die Kandidaten erreichbarer zu sein, ihnen einen Anreiz zu geben, mit dem Prozess auf dem Laufenden zu bleiben, und Sie würden den Vorteil erhalten, die tatsächliche Zeit zu beobachten, die für die Herausforderung aufgewendet wurde (ich denke, Sie könnten überrascht sein).

Vielen Dank dafür. Was soll ich tun, wenn sich der Kandidat nicht im selben Land befindet und daher nicht vor Ort sein kann, um die Aufgabe zu erledigen? Ich interviewe morgen einen Kandidaten, der in Hongkong ist, wir sind in Großbritannien. Nach dem persönlichen Gespräch erwarten wir von den Kandidaten, dass sie entscheiden, ob sie für uns arbeiten möchten.
Sie müssen das Interview an die Umstände anpassen. Trotzdem muss man den Job an den Kandidaten verkaufen und nicht nur Tests auf ihn werfen. Darüber hinaus ist der gesamte Prozess eine Übung, um Vertrauen zwischen Ihnen beiden aufzubauen. Sie möchten, dass Ihr Kandidat genau weiß, worauf er sich einlässt. Wenn ein internationaler Umzug erforderlich ist, möchten Sie vielleicht etwas mehr Zeit damit verbringen, mehr voneinander zu erfahren.
Verwenden Sie die Bildschirmfreigabe, wenn jemand nicht in der Lage ist, persönlich zu besuchen.
@user70848 Der Punkt der Programmieraufgabe besteht darin, sicherzustellen, dass der Kandidat eine Programmieraufgabe bewältigen kann. Bildschirmfreigabe ist eine schreckliche Möglichkeit, dies zu tun, da Sie eine Stunde damit verbringen müssten, den Kandidaten zu beobachten, und er sich zweifellos selbstbewusster fühlen würde, als wenn er es wirklich tun würde. Wenn der Job andererseits eine Paarprogrammierung erfordert, ist dies eine gute Möglichkeit, dies aus der Ferne zu tun.
@koan Das stimmt, aber wenn Sie sich buchstäblich eine halbe Welt von jemandem entfernt befinden, ist dies eine viel billigere und einfachere Lösung, um beiden Parteien bei der Entscheidung zu helfen, mehr Zeit und Energie zu investieren. Es ist nicht so, dass Sie keine andere Programmieraufgabe haben können, wenn Sie sich wieder persönlich treffen.
#13
+8
aroth
2016-02-04 10:58:35 UTC
view on stackexchange narkive permalink

Möchten Sie Programmierer einstellen, die nicht programmieren können ?

Ich werde es wagen, dass Sie dies nicht tun.

Die Einstellung von Programmierern, die Probleme nicht lösen und Code schreiben können, ist ein guter Weg, um ein Technologieunternehmen zu ruinieren. Und Sie werden nicht effektiv darin sein, die Programmierer auszusortieren, die nicht wirklich programmieren können (und es gibt viele von denen da draußen), wenn Ihr Einstellungsprozess keine Art von Programmierung beinhaltet Test.

Sind Sie bereit, Ihre Standards zu senken, weil jeder versucht, Programmierer einzustellen?

Vielleicht sind Sie es, aber ich denke nicht, dass Sie es sein sollten . Wie in den Kommentaren und Antworten erwähnt, gibt es Kandidaten, die sich nicht die Mühe machen, Programmierübungen im Rahmen eines Interviewprozesses durchzuführen, weil sie es einfach nicht brauchen, um einen Job zu bekommen .

Aber sind das wirklich die Leute, die Sie sowieso einstellen möchten? Diejenigen, die den Weg des geringsten Widerstands beschreiten, kurzfristig das tun, was für sie am vorteilhaftesten ist, und sich nicht wirklich genug um Ihr Unternehmen kümmern, um eine einfache Programmierübung durchzuführen? Diese scheinen keine positiven Eigenschaften zu sein, und sie bieten nicht viel Vertrauen in die Fähigkeit, diese Kandidaten langfristig zu halten (was auch für ein Technologieunternehmen wichtig ist, da die Lernkurven tendenziell steil sind und die Kosten für das Ersetzen des vorhandenen Personals ist sehr hoch).

Lassen Sie also die anderen Unternehmen die Programmierer haben, die nicht einmal gestört werden können. Sie wollen sie sowieso nicht mieten. Im Gegensatz zu ihnen haben Sie einen Plan. Eine, die nicht auf dem Irrtum "Ein Programmierer ist ein Programmierer" basiert. Ihr Fokus sollte auf Qualität und Nachhaltigkeit liegen, nicht auf Bodycount.

Ist das Abschrecken von Kandidaten ein Problem?

Im Allgemeinen nein, solange sie aus gutem Grund Angst haben. Sie möchten keine Leute einstellen, die nicht auf dem neuesten Stand sind. Und einige der Leute, die sagen, dass sie aufgrund der hohen Nachfrage "nicht gestört werden können", könnten dies tatsächlich als Ausrede benutzen, um ein "nicht wirklich so gutes Programmierprogramm zu vertuschen, das die ganze Woche dauern würde, um eine einstündige Übung zu absolvieren". Lage.

Es ist gut , diese Kandidaten abzuschrecken. Sie möchten die fähigen, motivierten Kandidaten einstellen. Solange Sie diese nicht auch verscheuchen, sind Sie gut.

Jeder Kandidat, den Sie nicht abschrecken, muss versucht und bewertet werden. Und das kann schwierig sein, wenn Sie Ihren technischen Kandidaten keine technischen Übungen zur Bewertung geben.

Wie kann ich unseren Einstellungsprozess verbessern?

Überprüfen Sie den Inhalt Ihrer Programmierübung. Ist es angemessen und angemessen für einen Interviewkontext?

Sie möchten nicht, dass etwas, das Tage (oder sogar Stunden) in Anspruch nimmt, abgeschlossen ist. Was Sie wollen, ist etwas Einfaches, um die Leute auszusortieren, die einfach nicht programmieren können , idealerweise mit genügend Raum für Nuancen, damit sich die Leute, die wirklich gut programmieren können , differenzieren können. Denken Sie daran, was Sie erreichen möchten (ungelernte und nicht ernsthafte Kandidaten aussortieren), und stellen Sie sicher, dass Ihre Inhalte auf dieses Ziel zugeschnitten sind. Geh nicht über Bord.

Wenn Sie bereits technisches Personal haben, können Sie es verwenden, um Ihre Übung auf ihre Gesundheit zu überprüfen (und / oder bei der Gestaltung zu helfen).

Und überlegen Sie auch, wie Sie die Übung durchführen. Wenn Sie ihnen nur eine Dokumentation geben und sagen "Hier, tun Sie dies in der nächsten Woche und senden Sie es mir per E-Mail", wird dies wahrscheinlich nur minimal effektiv sein.

Besser ist es, wenn Sie die Übung über ein Webportal ausführen können, in das die Kandidaten einchecken und die Übung starten können. Sobald sie starten, zählt der Timer ab 1 Stunde herunter. Dann reichen sie entweder innerhalb dieser Stunde etwas ein oder nicht. Das ist weniger offen, behält den Fokus des Kandidaten besser bei und bietet eine klare Frist / Zeitbox, sodass 1) Sie nicht die ganze Woche auf ein Ergebnis warten müssen, das niemals kommen wird, und 2) nicht qualifizierte Kandidaten dies nicht tun Werfen Sie eine Woche ihrer Zeit weg, um Ihre Programmierübung abzuschließen. Sie erhalten 1 Stunde, lösen entweder das Problem oder nicht, und Sie kennen das Ergebnis sofort.

Und noch besser wäre es, sie für ein Interview vor Ort zu holen. Stellen Sie sie einem Mitglied Ihres Entwicklungsteams vor. Schließen Sie sie zusammen mit einer Workstation in einem Raum. Lassen Sie Ihren Entwickler mit einigen allgemeinen / weichen Interviewfragen beginnen, und er kann dann mit dem Kandidaten ein Paar programmieren, um die Programmierübung zu lösen. Hier erfahren Sie nicht nur, ob der Kandidat codieren kann oder nicht, sondern auch, wie gut er mit Ihrem Team zusammenarbeitet. Ihr Entwickler sollte auch in der Lage sein, viele zusätzliche Informationen zu erhalten, die Sie einfach nicht erhalten, wenn Sie sich eine Reihe von Codes ansehen, die ein Kandidat geschrieben und dann per E-Mail an Sie gesendet hat.

Unten line

Nein, Sie möchten Ihre Programmierübung nicht loswerden. Möglicherweise möchten Sie es jedoch auf geeignete Inhalte überprüfen, sicherstellen, dass die Lösung nicht zu lange dauert, und auch prüfen, wie Sie es in Ihren übergreifenden Interviewprozess integrieren.

Eine selbstgesteuerte Übung zum Mitnehmen ist wahrscheinlich nicht der beste Ansatz. Die Lösung dafür besteht jedoch nicht darin, die Übung vollständig zu streichen. Jedenfalls nicht, wenn Sie mit der Einstellung von Mistprogrammierern einverstanden sind.

Es ist besser, viele schlechte Kandidaten und eine Handvoll gute zu verscheuchen, als die Schleusen zu öffnen und ein paar schlechte einzustellen.

Es gibt mehr Jobs als Menschen, jeder technische Leiter kann ein paar Minuten damit verbringen, jemandes Code auf Github zu lesen, und auf die Notwendigkeit alberner Hausaufgaben verzichten, mir eine einfache UI-App zu erstellen, mit der ich JSON kostenlos nutzen kann.
Sie sagen, "Ihr Unternehmen kümmert sich nicht wirklich genug um eine einfache Programmierübung": Die meisten Unternehmen sind vollständig austauschbar - sie sind weder Weltretter noch Weltzerstörer.Warum sollte sich jemand um sie kümmern, bevor er eine Beziehung zum Unternehmen und seinen Mitarbeitern aufbaut?Suchen Sie nicht nach Pflege, sondern nach einem besseren Weg, um Fähigkeiten zu identifizieren.
Sie möchten Ihre Standards nicht senken, da dies ein heißer Markt für Programmierer ist.Sie möchten es ihnen leicht machen, sich zu bewerben, und vermeiden, dass zusätzliche Reifen durchspringen, da sich die guten Leute in einem heißen Markt bei Unternehmen bewerben, die es einfach machen, sich zu bewerben.Sie können von Leuten einstellen, die anderswo keinen guten Job bekommen.
#14
+7
user70848
2016-02-03 05:38:15 UTC
view on stackexchange narkive permalink

Ich mag keine Tests zum Mitnehmen als Teil von Interviews, aus vielen Gründen, die bereits erwähnt wurden - verlängert den Einstellungsprozess, entwertet die Zeit des Bewerbers, erhält möglicherweise ohnehin keinen Rückruf usw.

Mein Hauptproblem ist, dass es unrealistisch ist, wie das Team tatsächlich arbeitet, und dass der Interviewprozess einseitig ist. Ein Bewerber möchte, ob dieser Ort gut zu ihm passt, einschließlich der Kultur, wie das Team Probleme angeht und löst. Sie suchen in erster Linie auch nach Passform, einschließlich der Funktionsweise und der richtigen Fähigkeiten. Ein Take-Home-Test bietet einem Bewerber keine Möglichkeit, die weichen Eigenschaften eines Arbeitsplatzes zu bewerten, und die Arbeitgeber erfahren nicht, wie der Bewerber mit dem Problem umgegangen ist.

Eine bessere Lösung könnte darin bestehen, dem Antragsteller ein offeneres Problem zu bieten, das auf jede Art von kreativer Weise gelöst werden kann. Sie können es sogar auf die X-Sprache beschränken. Laden Sie sie zurück, anstatt sie per E-Mail einzusenden, um sie sich selbst und dem oberen Management vorzustellen. Es gibt ihnen Autonomie und Anreiz, gute Ergebnisse zu erzielen, da es ein weiteres Interview verspricht und zeigt, dass Sie wissen möchten, was sie denken.

Wenn Sie einen Test verwenden müssen, um zu überprüfen, welche Kandidaten es schaffen, mit dem oberen Management zu interviewen, Ich würde den Test in das Interview aufnehmen, damit Sie ihren Denkprozess gemeinsam diskutieren können.

#15
+7
deworde
2016-02-03 16:18:10 UTC
view on stackexchange narkive permalink

Eine Sache scheint niemand erwähnt zu haben; Auch wenn der Test nicht Ihr Problem ist, sollten Sie nach anderen Wegen suchen, um Talente anzuziehen.

Wenn Sie auf der Suche nach guten Leuten sind, die auf ihren bereits veröffentlichten Arbeiten basieren, müssen Sie dies nicht tun Führen Sie den Test für sie aus .

Wenn Sie nur über Personalvermittler und Filter weitergeleitet werden, sind Sie anfällig dafür, dass Ihre Bedürfnisse und die Bedürfnisse der Personalvermittler nicht perfekt zusammenwirken. Sie wollen jemanden bei dir unterbringen. Sie möchten einen Top-Ingenieur. Wenn sie einen Top-Level-Ingenieur finden, der großartig ist, weil Sie zu ihnen zurückkehren, aber wenn sie es nicht können (und Top-Level-Ingenieure neigen dazu, Dinge zu erledigen, die wenig Zeit für Interviews lassen), werden sie sich mit nur zufrieden geben Platzieren eines gemäßigten Ingenieurs mit einem schönen Anzug. Der Verlust für sie ist ein bisschen langfristiger Repräsentant, aber das ist gering im Vergleich zum Fehlen ihrer Ziele. Wenn dies in Ihrem Fall nachweislich nicht zutrifft, halten Sie an diesem Personalvermittler fest und lassen Sie ihn niemals los (*). Personalvermittler, die eine langfristige Beziehung gegenüber Zielen priorisieren, sind kostbare Diamanten in einem Ozean von Kohlestaub

Sie möchten nachweislich interessante Kandidaten finden. Suchen Sie in StackOverflow und GitHub nach Top-Ingenieuren (ich höre, StackOverflow hat ein Tool, das Ihnen dabei hilft), suchen Sie nach technisch interessanten Unternehmen, die gute Software hergestellt haben, aber ihre Finanzen oder Monetarisierung vermasselt haben, und entlassen Sie sie einfach 10 Top-Ingenieure. Verbringen Sie Zeit an Universitäten und unterstützen Sie Projekte im letzten Jahr. Identifizieren Sie gute potenzielle Kandidaten und befreundet sie, vorzugsweise persönlich, alternativ per Fernzugriff. Selbst wenn sie Angebote haben, treffen sich gute Ingenieure mit guten Ingenieuren. Außerdem können sie Ihnen sagen, wie sie zu Ihrem Einstellungsprozess stehen.

Klingt das nach viel Arbeit? Es sollte . Einer der Gründe, warum Einstellungen so "schwierig" erscheinen, ist, dass Sie versuchen, dies so effizient wie möglich zu tun. Je mehr Zeit, Brainpower und Ressourcen Sie dafür einsetzen, desto einfacher ist es. Ob diese Ressourcen besser für den Versand von Produkten verwendet werden, ist die Frage des ewigen Managements. Aber wenn Sie viel Zeit mit "Mistprogrammiererfiltration" verbringen, ist das brennendes Geld. Zumindest die oben beschriebenen Schritte haben über den Einstellungsprozess hinaus einen inhärenten Wert.

(*): Hölle, stellen Sie sie ein .

Ja, das ist momentan mein Ansatz. Sie wären überrascht über die Anzahl der Entwickler, die keine öffentlich verfügbaren "Git Repos" haben.
Guter Punkt. Es besteht jedoch das Risiko, sich auf veröffentlichten Code zu verlassen - nicht jeder Code in seiner Freizeit (unterschiedliche Hobbys, familiäre Verpflichtungen usw.). Während viele Leute annehmen, dass "Codes in der Freizeit" mit technischen Fähigkeiten korrelieren, ist mir nicht klar, dass dies wahr ist. Ich kenne gute Entwickler, die außerhalb der Arbeit verschiedene Dinge tun.
@sleske das stimmt, ich codiere in meiner Freizeit (CS Major / Ex-Entwickler) und ich veröffentliche meinen Code nie in öffentlichen Repositories. Aber das ist wahrscheinlich ein Teil des Problems. Ein Kandidat könnte leicht zu einem Vorstellungsgespräch gehen und mit Schlagworten über seine Fähigkeiten lügen.
@sleske Ich stimme zu, weshalb "check git repos" eine kleine Aussage in einem viel größeren Absatz ist (und ich habe sie jetzt tatsächlich gelöscht). Wenn Sie sich einen professionellen Entwickler ansehen, der seine Arbeit nicht veröffentlicht, dann schauen Sie sich das Unternehmen an, für das er gearbeitet hat. Ist es eine gute Firma? Tut es gute Arbeit? Warum haben sie es verlassen? An welchem ​​Aspekt haben sie gearbeitet? Es gibt viele zugehörige Daten, die Sie verwenden können und die nützlicher sind als Ihre Tests. und wenn sie diese Daten nicht haben, können Sie * die Tests verwenden *. Wenn dies jedoch der Fall ist, verwenden Sie es anstelle der Tests.
@bobo2000 Veröffentlichte Arbeiten gehen über Github-Samples hinaus. siehe meinen Kommentar oben.
Ich bin immer amüsiert, wenn Leute sagen, dass sie sich an mich gewandt haben, weil sie von meinen Github- / öffentlichen Projekten begeistert sind, und dann wollen sie immer noch, dass ich 3 Tage lang mit ihnen interviewe.
@grasshopper Sehen Sie, ich kann es aus der Perspektive "Wie sind Sie eigentlich?" Sehen, aber sie sollten Sie nicht fragen, ob Sie wissen, was ein Boolescher Wert ist.
@grasshopper gut gesagt, guter Herr!Es ist so nervig.Ich fühle mich schlecht, wenn sie den Hausaufgaben-Test schicken und ihnen sagen, sie sollen gehen, meine Zeit ist wertvoller.
@SuperUberDuper gute Frau in meinem Fall.
@grasshopper Ich bin mir sicher, dass es eine hübsche ist;)
#16
+7
JessieArr
2016-02-05 04:58:41 UTC
view on stackexchange narkive permalink

Ich denke, Sie haben Ihre Frage ein wenig falsch formuliert, aber die Art und Weise, wie Sie sie formuliert haben, spiegelt ein weit verbreitetes Missverständnis über die Einstellung von Programmierern wider. Werden die Kandidaten durch die Programmieraufgabe "abgeschreckt" oder filtern sie Ihr Unternehmen aufgrund der Aufgabe aus ihrer eigenen Überlegung heraus?

Eine Anekdote, die meinen Standpunkt demonstriert: Während der Jobsuche vor nicht allzu langer Zeit, Ich sah eine Position für ein Unternehmen, die durchschnittlich schien. Die Art und Weise, wie sie ihren Programmierprozess beschrieben haben, ließ es ziemlich gut klingen, aber es gab nur sehr wenige Details, also war ich skeptisch. Vielleicht waren sie ein guter Arbeitsplatz, vielleicht auch nicht. Aber ich dachte, ich würde sehen, wie ich zu einem Telefonbildschirm komme, damit ich die Details herausfinden und sehen kann, ob sie so gut sind, wie sie scheinen.

Ich habe auf die Stellenanzeige geklickt und wurde sofort gebeten, ein Anschreiben zu schreiben. Pfui. Ich denke, jeder Kandidat hasst Anschreiben. Ich kannte diese Firma nicht und benutzte ihre Produkte nicht. Was könnte ich über sie sagen? Ich googelte sie, las ihre Website und ihre Produktangebote durch, fand heraus, wo ich wahrscheinlich in ihr Organigramm passen würde, wenn ich eingestellt würde, und fand ein paar Absätze, die ich selbst "verkaufte".

Als nächstes stellte ich meine zur Verfügung Lebenslauf und Zugang zu meinem LinkedIn - aber unmittelbar danach baten sie mich, meine relevante Berufserfahrung mit Daten und Beschreibungen auszufüllen. Diese Informationen befinden sich sowohl auf meinem LinkedIn als auch in meinem Lebenslauf. Es war lächerlich, dreimal dieselben Informationen angeben zu müssen. Ich habe den Browser-Tab geschlossen. 5 Minuten später bewarb ich mich bei einer anderen Firma, die einige wirklich coole Vorteile bot, die die erste nicht bot. Ich könnte mich tatsächlich schneller bei einem anderen Unternehmen mit besseren Leistungen bewerben, als ich durch die Reifen springen könnte, die das erste Unternehmen von mir wollte.

Sie müssen sicher sein, dass Ihre Kandidaten insbesondere in Ihr Unternehmen investiert sind bevor Sie ihnen Reifen zum Durchspringen präsentieren, sonst springen sie nicht. Tun Sie dies?

Beispiele für Qualitätsvorteile, die Tech-Unternehmen häufig anbieten:

  1. Remote-Arbeiten.
  2. Kostenlose Computer / Monitore als Signierbonus.
  3. Das Unternehmen leistet einen Beitrag zu angesehenen Open-Source-Projekten.
  4. Erstattung für Berufsausbildung und / oder Konferenzen.
  5. Mittagessen mit Catering.
  6. Flexible Arbeitszeiten.
  7. Gelegenheit, mit neuen oder unbekannten Technologien zu arbeiten.
  8. "Startup-Kultur "- auch bekannt als Mangel an Politik / Bürokratie.
  9. Unternehmenskapital.
  10. Namenserkennung: Ihr Unternehmen oder Ihr Produkt ist bekannt. Kandidaten erwähnen gerne, wo sie arbeiten und hören, wie Menschen mit „Oh, ordentlich! Ich mag ihre Produkte“ antworten.
  11. Wohltätige oder revolutionäre Unternehmensziele / -vision. Die Leute schreiben gerne Code, der das Leben der Menschen verbessert.
  12. Überdurchschnittliche Bezahlung. Geld deckt eine Vielzahl von organisatorischen Sünden ab.
  13. Jährliches Unternehmen zieht sich an kühle Orte zurück.
  14. ol>

    Diese Liste ist nicht vollständig, aber wenn Ihr Unternehmen keine oder keine anbietet Weitere Dinge wie die Elemente auf dieser Liste, dann könnte jedes Hindernis in Ihrem Einstellungsprozess dazu führen, dass ein Kandidat nach einem sucht, der dies tut.

    Nehmen wir also an, dass Sie aus irgendeinem Grund dies nicht tun oder nicht können Bieten Sie Ihren Kandidaten Anreize wie die oben genannten, um sie davon zu überzeugen, kostenlos Code für Sie zu schreiben. Was können Sie dann tun? Ich habe zwei Alternativen, die die meisten Kandidaten gegenüber geschäftigen Programmieraufgaben bevorzugen:

    Alternative 1 - Zahlen Sie ihnen einen Stundensatz, um Ihre Programmieraufgabe zu erledigen, als wären sie ein Auftragnehmer. Dies ermutigt sie, es sowohl aus beruflichen Gründen als auch weil ... sie bezahlt werden, ernst zu nehmen. Dies kostet Sie Geld, aber auch jede Form der Rekrutierung. Wenn Sie wirklich gut sind, können Sie sogar einen Weg finden, wie sie einen tatsächlichen Fehler in Ihrem Code diagnostizieren und beheben können. In diesem Fall erhalten Sie etwas Nützliches für Ihr Geld.

    Alternative Nr. 2 - Sie haben wahrscheinlich bereits kostenlosen Code geschrieben, den sie Ihnen zeigen, wenn Sie nur fragen. Die meisten Programmierer haben Code auf Github-, Bitbucket-, Q&A-Websites wie Stack Overflow oder können Ihnen Code bereitstellen, den sie noch nicht veröffentlicht haben.

    Warum sollten sie Code schreiben, der ihnen egal ist, wenn Sie sie stattdessen ein Leidenschaftsprojekt mit Ihnen teilen lassen könnten? Es ist garantiert weniger langweilig als das 100. Lesen einer weiteren Lösung für dasselbe generische Problem. Und da der Code bereits geschrieben ist, sparen Sie und Ihr Kandidat Zeit. Außerdem erhalten Sie einen Blick darauf, welche Art von Code sie gerne schreiben, was einen Einblick in ihre Persönlichkeit gibt und wie gut sie zu Ihrer Unternehmenskultur passen.

Betreff: Überdurchschnittliche Bezahlung: Nach meiner Einstellungserfahrung zahlen Sie am besten, Sie ziehen alle Arten von Freeloadern an, die glauben, dass sie die Rolle prahlen können und nur am Geld interessiert sind (Sie sehen dies die ganze Zeit im C-Level-Typ: -)). Ziehen Sie niemals Menschen nur mit dem Geld an.
#17
+6
gnasher729
2017-06-29 05:07:30 UTC
view on stackexchange narkive permalink

Als direkte Antwort auf Bobos Antwort (was die akzeptierte Antwort ist, weil der Typ sie geschrieben und selbst akzeptiert hat, was ich ehrlich gesagt ein bisschen erbärmlich finde):

Sie kommen von einem völlig falschen Prämisse. Ich möchte nicht, dass für Sie arbeitet. Woher kommt diese Idee, dass jemand für Sie arbeiten möchte ? Sie sind nur eines von vielen Unternehmen, die einen Job anbieten. Ich will nicht für dich arbeiten. Ich möchte Ihr Unternehmen bewerten, und wenn Sie sich von allen anderen abheben, möchte ich für Sie arbeiten.

Es gibt ein Dutzend Unternehmen, in denen ich arbeiten kann. Sie stehen nur irgendwo in der Warteschlange. Ich schaue mir zuerst an, welche Unternehmen es gibt, sende ihnen meinen Lebenslauf, sie können ihn lesen und angemessen beeindruckt sein oder nicht, dann führen Sie normalerweise ein kurzes Telefongespräch, in dem sie mir zeigen, dass sie einen interessanten Job haben und ich zeige, dass ich die Fähigkeiten habe und jeder Codierungstest könnte ganz am Ende stehen.

Mit Ihrem Test zum Mitnehmen stehen Sie ganz am Ende der Warteschlange. Um dies zu kompensieren, müssten Sie eine Gehaltsspanne angeben, die 10.000 GBP höher ist als bei anderen. Einen Job zu finden ist sowieso zeitaufwändig; Jemand, der es zehnmal zeitaufwändiger macht, steht am Ende der Liste. Wenn ich die Wahl habe, einen Lebenslauf zu senden, ein Telefoninterview mit zehn Unternehmen zu führen und Hausaufgaben für Sie zu machen, raten Sie mal, was ich tun werde.

Sie finden also Kandidaten, die für Sie arbeiten möchten , weil sie anderswo keinen Job bekommen .

#18
+5
Rolen Koh
2016-02-03 10:26:48 UTC
view on stackexchange narkive permalink

IMHO besteht eine Wahrscheinlichkeit von fast 0%, dass ein neuer Hochschulabsolvent in der Lage ist, einen harten Programmcode auf Einstiegsebene zu erstellen. Wenn Ihr Codierungstest eine Woche dauert, sollten Sie in Ihrer Anforderung klar erwähnen, dass Sie Programmierer mit mindestens 2+ Jahren Erfahrung suchen, da ich denke, dass viel Erfahrung erforderlich sein sollte, um eine Code-Arbeit abzuschließen, für die eine erforderlich ist Woche zu vervollständigen. Und ich denke, wenn Sie nach neuen Absolventen suchen, dann gestalten Sie Ihren Test entsprechend und Sie können im Internet viele Ideen finden, oder Sie können leitende Programmierer, die für Sie arbeiten, bitten, einen geeigneten Test für neue Absolventen zu entwerfen.

Ich persönlich würde nicht erwarten, dass ein leitender Entwickler einen geeigneten Test schreibt, es sei denn, er hat während eines Interviews Erfahrung damit, was funktioniert oder nicht. Es ist sehr leicht, sich auf das zu konzentrieren, was Sie selbst als einfach und offensichtlich kennen, und schwer zu korrigieren, was Kandidaten, die nicht genau wissen, was der Testschreiber tut, unnötig scheitern lässt. Ich denke, diese Situation ist ein Grund dafür, dass Tests wie FizzBuzz populär wurden - sie scheinen auf dem richtigen Niveau des geteilten Wissens zu arbeiten, um Kandidaten richtig zu filtern.
@Neil Slater:- Es ist möglich, dass ein erfahrener Programmierer nicht weiß, wie er einen Test für einen Programmierkandidaten der Einstiegsklasse entwerfen soll. Es ist jedoch nicht so schwierig zu wissen, was von einem Einstiegskandidaten zu erwarten ist. Und als meine vorherige Firma einen neuen Programmierer einstellen wollte, wusste ich, was ich von einem neuen Programmierer verlangen / erwarten sollte, und ich tat dies entsprechend, und wir stellten einen guten Kandidaten ein. Auch an vielen Orten, an denen ich für einen Programmierjob interviewt wurde, wurde ich von Programmier-Senioren dieser Firma interviewt. Deshalb habe ich das vorgeschlagen und es ist eine sehr verbreitete Praxis.
Tatsächlich dauert es 30 Minuten, wenn Sie sich mit Webentwicklung auskennen. Ich gebe ihnen 1 Woche, da ich Mitte der Woche viele Kandidaten interviewe, und es gibt ihnen Zeit, den Test über einen Zeitraum durchzuführen, der ihrem Zeitplan entspricht. Persönliche Verpflichtungen, Arbeit, Studium usw. Ich persönlich würde es vorziehen, wenn Kandidaten den Test schneller durchführen, da ich dadurch Zeit sparen kann, auf sie zu warten. Ich denke darüber nach, dies aufzugeben und nur Fizzbuzz zu machen, um mein Leben einfacher zu machen.
#19
+5
Peteris
2016-02-04 06:15:18 UTC
view on stackexchange narkive permalink

Was ist Ihr Geschäftsproblem?

Wenn Sie alle Argumente für oder gegen bestimmte Tests außer Acht lassen, kommt es auf einen Kompromiss an - mehr Filter schrecken einige gute Kandidaten ab, weniger Filter lassen schlechte Kandidaten durch Möglicherweise müssen Sie sie kurz nach der Einstellung ersetzen.

Es kommt darauf an, Ihre Geschäftssituation zu betrachten und nicht die allgemeinen Praktiken.

Haben Sie derzeit ein Problem, bei dem Ihnen qualifizierte Kandidaten fehlen und können nicht so schnell einstellen, wie Sie benötigen, um Ihre Geschäftsziele zu erreichen? Sie müssen diese anfängliche Programmieraufgabe aufgeben.

Haben Sie derzeit ein Problem, bei dem Sie mit der Qualität Ihrer letzten Einstellungen nicht zufrieden sind? Dann müssen Sie weitere Filter wie diesen implementieren.

Haben Sie beide dieser Probleme und beide sind gleichermaßen schmerzhaft? Herzlichen Glückwunsch, Sie haben die richtige Balance für diesen Kompromiss gefunden.

#20
+5
James Kingsbery
2016-02-03 02:41:17 UTC
view on stackexchange narkive permalink

Ich denke wirklich, dass es helfen kann festzustellen, wer die in ihrem Lebenslauf aufgeführten Sprachen wirklich kennt.

Wenn das wirklich Ihr Ziel ist, würde ich einen anderen Ansatz in Betracht ziehen. Wie in anderen Antworten angegeben, JA, sollten Sie immer eine Codierungsfrage haben, aber Codierungsfragen gehen selten auf Details der Sprache ein. Einige Fragen, die ich gesehen habe, sind nützlich, um dies zu testen:

  1. Vergleichen und kontrastieren Sie Java und C (oder welche zwei Sprachen auch immer relevant sind, stehen im Lebenslauf des Kandidaten usw.)
  2. Welche Funktionen sollten Ihrer Meinung nach zur Sprache hinzugefügt werden? (Oder noch besser, was halten Sie von dieser vorgeschlagenen / kürzlich vorgenommenen Änderung der Sprache?)
  3. ol>

    Ingenieure, die ein oder zwei Dinge gesehen haben, wissen, wie sie diese Fragen ziemlich einfach beantworten können. und in nur wenigen Minuten.

..oder schreiben Fizz Buzz.
Übrigens kann ich diese beiden Fragen in vielen Sprachen beantworten, in denen ich keine Hallo-Welt schreiben kann.
Ich habe sie nützlich gefunden. Es ist äußerst schwierig, sie zu "bestehen", wenn Sie nicht etwas Intelligentes darüber sagen können, wie sich die Ansätze zwischen den Sprachen unterscheiden, wie sich die Speicherzuweisung unterscheidet, wie sich die Parallelitätsprimitive unterscheiden usw. und so großartig wie die FizzBuzz-Frage, die dies nicht tut eignet sich gut, um das gleiche zu diskutieren.
@James vereinbart. Und selbst wenn sie keine Hallo-Welt in Java schreiben können, sind sie wahrscheinlich nützlicher als jemand, der eine Hallo-Welt schreiben kann, aber Java nicht mit anderen Sprachen vergleichen und kontrastieren kann, wenn sie Java mit verschiedenen anderen Sprachen vergleichen und gegenüberstellen können.
#21
+2
bobo2000
2017-06-27 21:35:50 UTC
view on stackexchange narkive permalink

Ich dachte, ich werde diese Frage beantworten, es ist ein Jahr her, seit sie veröffentlicht wurde, und wir haben uns daran gehalten.

ERGEBNISSE

Positive Ansätze

1) Nehmen Sie die demotivierten Kandidaten mit nach Hause und ersetzen Sie sie durch Kandidaten, die wirklich für Sie arbeiten möchten. Dies allein macht es lohnenswert, da motivierte Menschen = produktive Mitarbeiter sind. Wenn sie sich nicht die Mühe machen können, eine einstündige Aufgabe zu erledigen, sagt dies viel über ihre Einstellung zum Erhalt des Jobs aus.

2) Ich stimme anderen zu, dass der Test zum Mitnehmen nicht länger als eine Stunde dauern sollte - meins ist sehr einfach. Ich habe die folgenden Ergebnisse erzielt, als ich es in den Rekrutierungsprozess aufgenommen habe:

a) Einige Kandidaten schließen es nicht ab. Keine Einstellung wert.

b) Einige Kandidaten versuchen es, schließen es aber schlecht ab. Keine Einstellung wert.

c) Einige Kandidaten betrügen. An diesem Punkt lohnt es sich, weitere Fragen zu ihrer Aufgabe zu stellen. Wir haben dies kürzlich mit einem Kandidaten gemacht, der sich dann nicht die Mühe gemacht hat, auf unsere E-Mail über den Auftrag zu antworten. Keine Einstellung wert.

d) Einige Kandidaten ziehen nach Anhörung eines technischen Auftrags plötzlich ihre Bewerbung zurück, wo sie zuvor viel Interesse gezeigt haben. Wahrscheinlich einer Kugel ausgewichen.

e) Einige Kandidaten machen es sehr gut, kommentieren ihren Code und liefern ein oder zwei Mal Dokumentation. Eine Einstellung wert.

Negative des Ansatzes

1) Bewerbungsausfälle von Bewerbern, die von der Take-Home-Aufgabe abgeschreckt werden es dauert länger, jemanden passenden zu finden. ABER auf der anderen Seite positiv für das Unternehmen, da es die Wahrscheinlichkeit einer schlechten Einstellung verringert, was gefährlich ist.

2) Kann nicht immer sagen, ob jemand betrogen hat, aber deshalb wird es oft gesichert ein technisches Telefoninterview.

Ergebnis dieses Ansatzes

Einer unserer Mitarbeiter, den ich mit diesem Ansatz eingestellt habe, hat sich als Star-Mitarbeiter herausgestellt. Er arbeitet nach über einem Jahr immer noch für uns. Er ist zuverlässig und technisch talentiert.

Sie haben also Ihre gesamte Einstellungsstrategie auf die Leistung eines Mannes gestützt.Beeindruckend...
Warum sollte ich motiviert sein, für Ihr Unternehmen frei zu arbeiten?Stellen Sie mich ein und ich arbeite für das Unternehmen.Setzen Sie zu viele zeitaufwändige Dinge in die Bewerbung ein und ich werde einen anderen Job finden und arbeiten, um ihrem Unternehmen zu helfen.Stellen Sie fest, Arbeitgeber, dass nur sehr wenige Menschen daran interessiert sind, speziell für Sie zu arbeiten, und dass die Art von Entwicklern, die Sie suchen, Jobs finden kann, für die es einfacher ist, sich zu bewerben.
@DavidThornley Dieser Thread hat seinen Lauf ausgeführt.Es geht um das Risikomanagement. Wenn sich die Leute nicht die Mühe machen, eine 30-minütige Codierungsübung durchzuführen, sind sie eindeutig nicht motiviert genug, eine Rolle zu spielen.Wie bereits erwähnt, sind Codierungsübungen auch für Personen mit nicht nachgewiesenen Erfolgsbilanzen anwendbar.Praktikanten, Absolventen als erfahrene Mitarbeiter mit viel Erfahrung.
@bobo2000 Sie scheinen meinen Standpunkt zu verfehlen.Angenommen, ich suche einen Job.Ich will einen Job.Die Chancen stehen gut, dass ich nicht daran interessiert bin, speziell für Sie zu arbeiten, aber wenn ich eingestellt würde, würde ich einen guten Job für Sie machen.Je mehr Zeit ich insbesondere für Ihren Bewerbungsprozess aufgewendet habe, desto weniger Zeit muss ich für meine allgemeinen Chancen auf einen guten Job aufwenden.Soll ich Ihren Test machen oder mich für zwei weitere Jobs bewerben?Wenn dies ein zentraler Testort wäre, der von vielen Unternehmen genutzt würde, wäre es meine Zeit wert.
@DavidThornley Viele Unternehmen haben Programmiertests als Teil ihres Bewerbungsprozesses. Auch aus Erfahrung sind die besten Kandidaten diejenigen, die sich die Zeit dafür nehmen - und es wird viele geben, die dies tun.
@DavidThornley, um hinzuzufügen, denken Sie vielleicht, dass dies ein unfairer Rekrutierungsprozess ist, aber die Kosten für den Ersatz eines unbewiesenen Entwicklers, der sich als schlechter Entwickler herausstellte, sind viel teurer, als ihn erst gar nicht einzustellen.
@bobo2000o Fairness ist nicht der Punkt bei der Rekrutierung.Sie möchten guten Menschen eine gute Anhörung geben, um zu entscheiden, aber die tatsächliche Fairness gegenüber Kandidaten wird im Allgemeinen nicht einmal angestrebt.Ich denke, Sie könnten ohne das Takehome einen besseren Einstellungspool bekommen und ihre Grundkompetenz in etwa einer halben Stunde unter Aufsicht testen.Wenn Sie nicht sagen können, ob jemand grundsätzlich kompetent ist, sind Sie trotzdem untergegangen.Es ist egal für die Leute, mit denen ich rumhänge.Wir werden Jobs bekommen.Es ist dir wichtig.
@DavidThornley Nun, jede Person, die ich mit diesem Ansatz rekrutiert habe, erwies sich aufgrund der praktischen Erfahrung als guter Mitarbeiter.Im Gegensatz dazu wäre es für das Unternehmen kostspielig gewesen, wenn ich nie einen technischen Überprüfungsprozess gehabt hätte.
#22
+1
Tim
2016-02-04 01:56:15 UTC
view on stackexchange narkive permalink

Ich würde sie an ein Online-Quiz senden, in dem Sie Personen herausfiltern können, die keine Ahnung haben. Zumindest würden Sie ein Gefühl dafür haben, ob sie wissen, wovon sie sprechen.

Zu Beginn meiner Karriere sagten mir Headhunter: "Sie haben es mit Leuten zu tun, die die Box lesen und eine Bewerbung in ihren Lebenslauf aufnehmen." . " Ich gehe davon aus, dass dies den Jungen und Naiven immer noch passieren kann, aber wenn Sie in ein paar Interviews in den Müll geworfen werden, erfahren Sie, dass dies ein schlechter Rat ist ...

"Lesen Sie die Box und stellen Sie eine Bewerbung in ihren Lebenslauf", was bedeutet das überhaupt?
Früher, als man in ein Geschäft gehen musste, lasen die Leute die Zusammenfassung über die Funktionsweise der Software (die sich auf der Rückseite der Box befand) und stellten sie in ihren Lebenslauf. Heutzutage wäre es vergleichbar mit dem Besuch der Website oder dem Gespräch mit jemandem darüber und dem Einfügen in Ihren Lebenslauf, ohne ihn jemals zu verwenden.
Online-Tests sind für mich eine Beleidigung.Wenn Sie für das Interview bezahlt werden, werde ich nicht dafür bezahlt, kostenlose Tests zu machen.
Ich werde auch nicht für Überstunden bezahlt, um meine Nächte und Wochenenden damit zu verbringen, nach diesen Leuten aufzuräumen.
#23
+1
eee
2017-12-02 00:50:24 UTC
view on stackexchange narkive permalink

Unbekanntes Maus- oder unerwartetes Tastaturlayout (insbesondere Mac oder PC) oder eine andere IDE können die Leistung ohne Kompetenzunterschied erheblich beeinträchtigen. Außerdem erfordert eine vollständige Anwendung häufig viel Boilerplate-Code, an den ein Entwickler möglicherweise nicht genügend Zeit hat, um ihn einzugeben, oder an den er sich nicht einmal erinnert. Das vollständige Starten einer neuen App von Grund auf ist eine sehr seltene Aufgabe. Der größte Teil der Arbeit konzentriert sich auf die Erweiterung oder Verbesserung des vorhandenen Codes.

Daher empfehle ich, während des Interviews nur sehr kurze und sorgfältig vorbereitete Aufgaben zu geben. Am besten fragen Sie nach dem Schreiben einer Funktion, die bestimmte Parameter annehmen und das erläuterte Ergebnis zurückgeben muss. Ich würde raten, dies auf Papier zu tun und den Computer überhaupt zu vermeiden.

#24
-2
paparazzo
2018-04-30 20:25:14 UTC
view on stackexchange narkive permalink

Ich habe kürzlich einen Test zum Mitnehmen bekommen. Es war eine vollständige Anwendung, die eine Verbindung zu einem Socket-Server herstellen musste, der einen langsamen Feed simulieren musste. Der Client hatte ein dynamisches Update, konnte den Feed abbrechen und XML schreiben und lesen.

Ich möchte sowieso Sockets lernen, wenn ich darüber nachdenke, sie für einen Pokerserver zu verwenden, den ich schreibe.

Ich wollte XMLreader und XMLwriter lernen.

Zuerst dachte ich, ich vergesse es. Aber dann sah ich es als Chance zu beweisen, was ich kann. Ich habe keinen CS-Abschluss, daher vermisse ich einige theoretische Dinge. Sie fragten, was die 3 Säulen von OOP sind und wollten sagen, wen das interessiert.

Meine Nachricht lautet, dass Personen, die den Job haben möchten, den Test abschließen sollten.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...