Ist „White-Board-Coding“ während eines Interviews unangemessen? [geschlossen]


30

Dies ist eine etwas subjektive Frage, aber ich würde gerne Feedback / Meinungen von Interviewern / Befragten zu dem Thema hören.

Wir haben unser technisches Interview in 4 Teile geteilt. Schreiben Sie Code, lesen Sie und analysieren Sie Code, entwerfen Sie Sitzung u. Code auf der weißen Tafel.

Als letzten Teil bitten wir die Befragten, einen kleinen Codeausschnitt (4-5 Zeilen) auf das Whiteboard zu schreiben und zu erklären, wie sie diesen durchlaufen. Lassen Sie mich klarstellen, dass der Zweck nicht darin besteht, die Leute zu überlisten. Wir suchen keine perfekte Syntax. Zum Teufel kann es sogar Pseudocode sein. Aber es geht darum, ihnen ein sehr einfaches Problem zu geben und zu sehen, ob ihr Gehirn uns die Lösung mitteilen kann. Mit einfachen Problemen meine ich "Reverse a String", "FizzBuzz" etc ...

Beachten Sie, dass wir immer zuerst nach einer expliziten Sprache fragen. Wir sind ein .NET C # -Haus. Wir haben nur "Pseudo-Code" gesagt, bei dem sich jemand wirklich mit dem Code abgefunden hat.

Meine Frage lautet: "Ist es unangemessen / unvernünftig, zu erwarten, dass ein Programmierer während eines Interviews einen Codeausschnitt auf ein Whiteboard schreibt?"


13
Ziemlich vernünftig IMHO (und hätte einige ziemlich schlechte Einstellungen bei meinem ehemaligen Arbeitgeber verhindert, wenn es nur umgesetzt worden wäre).
Piskvor

3
Aus Sicht der Interviewer ist das eine sehr deprimierende Sache. Wie können Leute, die 5 Jahre Programmiererfahrung beanspruchen, diese Grundkenntnisse nicht haben? und 90% nicht. (das sind 90%, nachdem 70% der Lebensläufe sofort ausgesondert wurden, und eine 70% ige Fehlerrate beim Telefoninterview)
Michael Shaw

18
We're not looking for perfect syntax.macht es vernünftig, in der Tat würde ich sagen, empfohlen! Es ist unvernünftig , Syntaxfehler bei der Whiteboard-Codierung zu kritisieren.
Qwerky

16
Erwarten Sie auch keine perfekte Handschrift. Whiteboard-Schreiben ist eine Fähigkeit, die die meisten Menschen nicht haben, und die meisten Programmierer haben meiner Erfahrung nach grausame Handschriften, um es milde auszudrücken. Vertikales Schreiben macht das nur noch schlimmer.
Jwenting

3
Passend, ja. Wirksam, nein. Der eine schwache Entwickler, den ich persönlich angeheuert habe, hat an einem Whiteboard brillant gearbeitet.
pdr

Antworten:


47

Meiner Meinung nach ist es sehr angemessen. Wenn Sie möchten, dass ein Job eine bestimmte Fähigkeit ausübt, ist es durchaus angemessen, diese Fähigkeit beim Vorstellungsgespräch unter Beweis zu stellen.

Die Auswirkung dieser Technik auf den Rekrutierungsprozess ist sehr deutlich. 90% der Kandidaten scheitern an dieser Aufgabe. Aber die angeworbenen Entwickler sind gut und die Entwickler werden innerhalb des Unternehmens respektiert.

Wenn Sie als Kandidat mit dieser Technik konfrontiert sind, entspannen Sie sich zunächst. Es geht darum, Sie als Programmierer und Ihre Denkprozesse einzuschätzen. Es geht nicht um Ihre perfekte Syntax. Wenn Sie einen Syntaxfehler machen, spiele ich möglicherweise die Rolle eines Compilers und sage Ihnen, dass der Code in einer bestimmten Zeile nicht kompiliert werden kann. Sie erhalten eine Fehlermeldung und sehen, wie Sie reagieren. Ebenso, wenn Sie ein; Auf eine Schleife oder eine if-Anweisung, die kompiliert werden würde, würde ich den Debugger spielen und Sie durch einen einzelnen Schritt durch den Code führen. Auch hier geht es nicht um den Fehler, sondern darum, wie Sie mit dem Fehler umgehen würden und ob Ihre Denkprozesse gut sind.


1
danke für das feedback ptolemy. sehr geschätzt. Ihre Antwort beschreibt genau, wonach ich suche und wie ich mich dem Kandidaten nähere, um die Probleme zu lösen. Aber wie Sie auch betont haben, bin ich verblüfft über die Anzahl der Bewerber für mehr als fünfjährige Rollen, die dies nicht können.
Eoin Campbell,

1
Die größte Gefahr dabei ist, dass Frustration einsetzt und Sie jemandem einen Job anbieten, der die Programmieraufgabe nicht bestanden hat, sich aber bei den anderen Interviewaspekten wie einem technischen Test gut geschlagen hat. Die Realität ist, dass diese Kandidaten ein Buch gelesen haben und ein gutes Gedächtnis haben. Fordern Sie Leute auf, Bücher zu lesen? oder programme schreiben?
Michael Shaw

@EoinCampbell, wenn Kommunikationsfähigkeiten für Sie wichtig sind, dann ist dies völlig angemessen.

1
Als Kandidat machst du also einen Fehler, und ich mache dich etwas später (nicht sofort) auf diesen Fehler aufmerksam. Sie werden sich an diesem Punkt unter Druck fühlen. Dies ist ein wichtiger Teil des Interviews. Wie reagieren Sie? Können Sie mit dem Druck eines Tippfehlers bei einem Interview fertig werden? Wenn Sie unter diesem Druck schmelzen, was werden Sie tun, wenn wir als Team unter dem Druck stehen, Software innerhalb einer bestimmten Frist zu liefern?
Michael Shaw

1
Ich habe Whiteboard-Codierung verwendet, der positive Teil ist, dass es wirklich gute Junior-Programmierer findet. Das Negative bei der Whiteboard-Codierung ist die hohe Ausfallrate, aber diese Leute sind anfangs nicht sehr gut. Ich habe die Leute gebeten, nur eine Codezeile an die Tafel zu schreiben, und trotzdem hatte ich sehr hohe Fehlerquoten. Andererseits wurden mir als Interviewpartner Whiteboard-Fragen gestellt, und ich fand die Fragen immer vernünftig. Ich bevorzuge die Whiteboard-Codierung der Auflistung der bevorzugten Algorithmen für bestimmte Probleme.
Michael Shopsin

15

Meine Frage lautet: "Ist es unangemessen / unvernünftig, zu erwarten, dass ein Programmierer während eines Interviews einen Codeausschnitt auf ein Whiteboard schreibt?"

Es ist sehr vernünftig. Eine Alternative zu einem Whiteboard könnten ein Laptop und ein Beamer sein, da Programmierer eher daran gewöhnt sind, Code auf einer Tastatur als auf einem Whiteboard zu schreiben. Stellen Sie einfach sicher, dass eine Entwicklungsumgebung wie Eclipse oder VS oder Idle bereits mit einem leeren Projekt ausgeführt wird, wenn der Kandidat startet, damit er keine Zeit mit der Suche in Ihren installierten Anwendungen verschwenden muss.


Ich benutze wegen des Intelisense-Effekts bewusst keinen Computer in Interviews. Ein unerfahrener Kandidat programmiert durch Drücken der. und etwas aus der Liste auswählen. Ein Whiteboard macht dies sehr deutlich ...
Michael Shaw

5
@Ptolemy: Glaubst du das wirklich? Welchen Nutzen hätte Intellisense für eine typische Whiteboard-Übung wie "Eine Tiefensuche durch einen Baum programmieren"?
Nikie

2
Whiteboards / Papiere stürzen nicht ab und jeder weiß, wie man darauf schreibt. Wenn du mir LEERLAUF gibst, um ein Problem zu lösen, gehe ich davon aus, dass du ein Idiot bist, und wenn du mir Eclipse gibst, verbringe ich die Hälfte meiner Zeit damit, die Standard-Tastenkombinationen zu bekämpfen.

6
Intellisense (und die Autocomplete-Funktionen anderer IDEs, da bin ich mir sicher) können deaktiviert werden. Oder Sie können ihnen Notepad geben (oder eine bessere Alternative wie Notepad ++, das Syntax hervorhebt, aber keine Autovervollständigung oder ähnliches hat). Sicher, es kann abstürzen, aber realistisch: Wie viele Showstopper-Fehler sind in Notepad aufgetreten?
ein Lebenslauf vom

3
Auch wenn es sich nur um notepad.exe handelt, ist es so viel einfacher zu bearbeiten als mit Papier oder einem Whiteboard. Sie können Zeilen einfügen oder löschen, was einen enormen Druck auf den physischen Datenträgern darstellt.
CodesInChaos

10

Es ist nicht unangemessen, aber zu wissen, dass es möglicherweise NICHT immer die wahren Einsichten in die Programmier- oder Problemlösungsfähigkeiten der befragten Person preisgibt. Und genau danach streben Sie wohl.

Zweitens ist zu beachten, dass es immer die Angst vor dem Versagen gibt, das Gehirn der Person ständig zu betäuben. "Was, wenn ich es vermassle?", "Was, wenn ich einen dummen Fehler mache". Der größere Teil des Gehirns der Person ist ständig damit beschäftigt zu überprüfen, wie es ihnen geht - nur wenige können die Nerven halten.

In einer solchen Situation könnten selbst die Besten ins Stocken geraten.

Als letzten Teil bitten wir die Befragten, ein kleines Code-Snippet (4-5 Zeilen) auf das Whiteboard zu schreiben und zu erklären, wie sie es durchlaufen

Das ist ok. Aber nur weil jemand etwas nicht richtig erklären kann, heißt das noch lange nicht, dass er es nicht gut kennt. (Erklärung ist eine Redekunst).

Wenn ich du wäre, würde ich das für den letzten Teil tun ...

Stellen Sie sie für ein sehr kleines (aber realistisches) Projekt ein. Sehen Sie, wie sie codieren, Entscheidungen treffen, die Arbeitsbedingungen und die Teammitglieder anpassen usw., und treffen Sie dann basierend auf diesen die endgültige Entscheidung.


6
Wenn ein Teil Ihres Rekrutierungsprozesses darin besteht, einen befristeten Standardvertrag für 3 Monate anzubieten, wie viele Personen würden dann wirklich von einer Dauerwellenfunktion zurücktreten, um Ihr Angebot anzunehmen?
Michael Shaw

1
Ich meinte zuletzt in dem Sinne, dass es der letzte Punkt auf meiner Liste war. Ich verwechsle die Reihenfolge der Dinge im Interview, je nachdem, wie sich der Konversationsteil entwickelt hat und wo meiner Meinung nach ihre Stärken und Schwächen liegen. Was das Anbieten eines kurzfristigen Vertrags angeht, ist dies in einem kleinen Unternehmen der realen Welt einfach nicht realistisch. Ich habe nicht die Zeit / die Ressourcen, um 3-Monats-Risiken für Leute einzugehen, die vielleicht nicht klappen, und wie Ptolemaios betonte, bezweifle ich, dass die Kandidaten auch zu scharf wären.
Eoin Campbell

"Der größere Teil des Gehirns der Person ist ständig damit beschäftigt zu untersuchen, wie es ihnen geht - nur wenige können die Nerven halten." Ich hatte immer das Gefühl, dass es wichtig ist, dies zu beachten, besonders wenn ein paar neue Leute am College sind oder das College verlassen. Ich weiß, dass ich in meinen ersten Interviews ein Wrack war und mir solche Sorgen gemacht habe, dass ich einige der einfachsten Fragen durcheinander gebracht habe, nur weil ich so nervös war. Zugegeben, Sie können nicht viel tun. Alles, was ich tun konnte, war einfach mit dem nächsten Interview fortzufahren und mich schließlich mit dem Prozess vertraut zu machen.
Der Krug

1
@TheJug sind sich vollkommen einig und wir werden Junioren und Absolventen viel schonender gegenüberstehen, um sicherzustellen, dass sie von dem Prozess nicht überfordert sind.
Eoin Campbell

1
"Stellen Sie sie für ein sehr kleines (aber realistisches) Projekt ein ..." - schlagen Sie vor, dass Sie z. B. drei der Kandidaten, die sich für eine Stelle beworben haben, "einstellen" sollten, auch wenn Sie nur vorhaben, eine zu behalten? Das erscheint mir sehr unfair! Es würde wahrscheinlich auch den Teamgeist nicht verbessern.
Nikie

8

Nicht unangemessen, aber denken Sie daran, dass manche Leute (und vielleicht ein größerer Teil der Programmierer) in einem Interview sehr gestresst sein können. Ich denke, die meisten von uns kennen den Typ aus dem Büro, der ein brillanter Programmierer und eine sehr vertrauenswürdige Person ist, aber in einer solchen Situation würde er zusammenbrechen. Seine Leistung konnte in einem solchen Test nicht gemessen werden, machen Sie dies also nicht zu einem Go / No-Go-Test.


7
Ich kenne diesen Typen nicht, weil er nicht eingestellt wurde.
Kevin Cline

4
@kevincline zum Nachteil des Unternehmens, es sei denn, Sie verdienen Geld, indem Sie Menschen die Nerven halten.
JayPea

1
@ JayPea: Woher weiß ich, dass eine Person ein brillanter Programmierer ist, wenn ich ihnen keinen Code zukommen lassen kann? Die einzige Alternative wäre eine Empfehlung von jemandem, der bereits Mitarbeiter ist. Jeder mag es, auf vertrauenswürdige Empfehlungen zu setzen, aber das ist eine ziemlich kleine Gruppe.
Kevin Cline

1
@ kevincline Lies meine Antwort, ich sage nicht, dass du beim Entwicklerinterview keine Whiteboard-Codierung machen sollst.
Tamás Szelei

@JayPea Ich bin mir ziemlich sicher , dass die Mitarbeiter haben, der in nicht nervös High-Stress - Situationen ist ein wichtiger Faktor in vielen Unternehmen den finanziellen Erfolg.
Kyle Strand

4

Ich persönlich denke, dass dies eines der besten Dinge ist, die Sie tun können. Wie Sie sagten, suchen Sie nicht nach der richtigen Syntax oder etwas Ähnlichem. Das Wichtigste dabei ist, zu sehen, ob jemand kommunizieren kann. Ich habe so viele gute Entwickler gesehen, die nur alleine in ihrem eigenen Bereich arbeiten können ist in einer Vielzahl von Fällen nicht möglich, daher ist es ein wertvolleres Mitglied des Teams, einen erfahrenen Mann zu haben, der auch in der Lage ist, klar und präzise zu sagen, was er denkt, als jemand, der denkt: "Sie werden es nicht verstehen jedenfalls mache ich es einfach selbst und zeige es später ".

Kommunikation, Kommunikation, Kommunikation - das ist die Grundlage für jedes mittelgroße bis große Projekt (auch wenn es einmal kleiner sein muss).


Nun, es ist mehr als Kommunikation. Sie müssen in der Lage sein zu kommunizieren, aber sie müssen auch in der Lage sein, mir ihre Lösung für das einfache Problem zu sagen.
Eoin Campbell

4

Ich denke, es ist keine vernünftige Sache. Wir versuchen, Kandidaten zu finden, die die von ihnen gewünschte Aufgabe gut erfüllen. Das Schreiben von Code auf einem Whiteboard gehört nicht dazu, und ich denke nicht, dass es ein gültiger Filter ist, um gute Kandidaten zu finden.

  • Guter Code wird nicht geschrieben, sondern neu geschrieben. Ein Whiteboard ist ziemlich unveränderlich, da es schwer zu ändern ist, wenn Sie es einmal geschrieben haben. Es sollte so einfach wie möglich sein, Ihre Meinung zu ändern, sobald Sie das Problem besser verstehen.
  • Die Teilnahme an einem Vorstellungsgespräch ist eine stressige Situation. Es ist nicht erforderlich, den Kandidaten zusätzlich unter Druck zu setzen. Viele Computerleute haben keine gute Handschrift. Moderne IDEs bieten viele Tools, an die Sie gewöhnt sind. Und in der Lage zu sein, etwas in der Minute zu googeln, in der Sie es benötigen, gehört auch zum Arbeitsstil der meisten Programmierer. Warum all diese Dinge wegnehmen und eine künstliche Umgebung schaffen, in der sie niemals arbeiten müssen, wenn Sie ihnen ein Angebot machen?
  • Wir sind auch sehr daran interessiert, gute Tests zu schreiben, vielleicht sogar TDD zu machen. Dies ist während der Whiteboard-Codierung nicht zu sehen.

Die meisten Hinweise, die Sie aus einer Whiteboard-Codierungssitzung herausholen können, können Sie auch aus einer Pairing-Sitzung herausholen. Ich glaube, Pairing ist ein viel besseres Instrument, um ein Gefühl dafür zu bekommen, wie ein Kandidat ein Problem löst und wie er arbeitet. Er kann seinen eigenen Computer mitbringen und in einer Umgebung arbeiten, in der er sich wohlfühlt. Und es ist viel einfacher, sich auf die Aufgabe zu bewerben, die sie erledigen sollen, wenn sie erst einmal dabei sind. Wir haben zum Beispiel eine große alte Codebasis, deshalb bitten wir sie, extrahierten Code für das eigentliche Projekt umzugestalten. Tatsächlich arbeiten wir so gut wie möglich in unserer täglichen Arbeit zusammen.

Während eine Whiteboard-Sitzung wahrscheinlich hilft, schlechte Kandidaten herauszufiltern, filtert sie wahrscheinlich auch viele gute Programmierer heraus.


1
Whiteboards sind unveränderlich? Sie wischen einfach etwas ab und schreiben es aus einer Laune heraus neu. Das macht sie nützlich, insbesondere beim Unterrichten. Sie müssen in einem alternativen Universum leben.
Whatsisname

Vielleicht ist unveränderlich das falsche Wort (ich habe es von medium.com/dima-korolev/… genommen - wer denkt, dass es ein Vorteil ist). Im Vergleich zu einem Editor ist es jedoch schwierig, etwas hinzuzufügen, für das Sie keinen Platz gelassen haben.
iGEL

3

Persönlich würde ich jeden Interviewer verlassen, der mich auffordert, FizzBuzz zu machen. Ich weiß nicht, wann dies der neue Industriestandard wurde, aber es ist wirklich Zeitverschwendung. FizzBuzz ist ein Filter, der vor einem Interview verwendet werden kann, obwohl ich persönlich denke, wenn ich aus N Kandidaten auswählen müsste, von denen genug Open-Source-Code oder ein Blog vorhanden sind, das ich mir ansehen kann, würde ich das definitiv als Filter vorziehen .

Einfach ausgedrückt, denke ich, dass in einem Interview für eine Programmierposition (außer vielleicht für Junioren oder Praktika) bereits festgelegt sein sollte, dass der Befragte programmieren kann.

Aber ja, Whiteboard ist perfekt, obwohl ich denke, dass Sie eine andere Reihe von Problemen haben sollten. Werfen Sie ihnen ein reales Problem und lassen Sie sie eine Reihe von UML-ischen Squibbles zeichnen, um ihre Gesamtstrategie zur Lösung dieses Problems zu erläutern. Geben Sie ihnen einen Computer mit Internet, damit sie nach Bibliotheken von Drittanbietern suchen können, die sie als Blackbox in ihrer Squibblescape verwenden können.
Innerhalb weniger Minuten werden Sie wirklich sehen, wie sie Probleme angehen. Sie können dies tatsächlich zu einer sehr interessanten Sache machen, indem Sie Probleme auswählen, für die Sie nicht unbedingt eine Lösung im Sinn haben, und versuchen, sie gemeinsam zu "lösen", um zu sehen, wie gut sie kommunizieren und wie gut sie Eingaben einbeziehen können (wie auch immer treiben sie nicht zu fest an - manche Leute frieren vielleicht ein, wenn Sie das tun). Und fügen Sie dann einige Anforderungen im Handumdrehen hinzu. Dies entspricht einer Softwareentwicklung ohne Implementierung und vor allem ohne Debugging. 15 Minuten sind also viel Zeit.


"Es sollte bereits festgestellt worden sein, dass der Befragte programmieren kann" - wie? Entweder haben Sie ein Vorgespräch. In diesem Fall stellt sich die Frage des OP, ob die Whiteboard-Kodierung für ein Vorgespräch angemessen ist, oder Sie nehmen das Wort des Kandidaten, was zu einer Katastrophe führt. Personalvermittler und Lebensläufe können lügen (und tun), Blogs und Github-Repos können plagiiert werden.
Julia Hayward

@ Julia Hayward: Die grundlegenden Codierungsfähigkeiten eines Kandidaten in einem Vorinterview zu ermitteln, ist etwas anderes. Sie müssen nicht wirklich jemanden einladen , vor Ort , das zu tun. Sie können ihnen ein kleines Problem senden, das sie lösen können. Besprechen Sie diese Lösung (oder den Github-Code) möglicherweise persönlich. Am wichtigsten: Es ist höchst unwahrscheinlich, dass Sie einen Kandidaten finden, der die von mir vorgeschlagene Art von Problem mit Grazie meistert, während er Probleme vom Typ Fizzbuzz nicht lösen kann. Das Interview sollte verwendet werden, um festzustellen, wie gut der Kandidat mit der für reale Probleme typischen Komplexität umgehen kann.
back2dos

Möglicherweise müssen Sie niemanden vor Ort haben, aber Sie sollten zumindest mit dem Kandidaten telefonieren, der über seine Codierungsübung spricht, was auch immer Sie verwenden. Das bloße Verteilen einer Frage und das Warten auf die Zusendung einer Zip-Datei birgt immer noch das Risiko des Identitätswechsels. als extremes Beispiel habe ich den Test für FooCorp einmal gemacht, dann kurz aus Interesse "FooCorp-Codierungstest" gegoogelt - und festgestellt, dass jemand eine ziemlich gute Lösung veröffentlicht hat.
Julia Hayward

@ Julia Hayward: Wenn Sie jedem Bewerber das gleiche Problem geben, wird die Antwort natürlich google-fähig. Kein Wunder, oder? Aber auch hier bleibt meine Antwort: Mach keine Whiteboard-Codierung auf Fizzbuzz-Ebene in einem Interview. Es zeigt nur, dass Sie sich nicht darum gekümmert haben, ein gutes und interessantes Problem vorzubereiten. Wie Sie selbst gesagt haben, gibt es Möglichkeiten, grundlegende Programmierfähigkeiten zu erwerben , bevor Sie die Kandidaten zu Ihrem Whiteboard einladen.
back2dos

3

Lassen Sie mich mit einer anderen Frage antworten:

Bietet das Schreiben von Code auf einer weißen Tafel einen echten Vorteil bei der Beurteilung der Programmierfähigkeit im Vergleich zum Schreiben und Ausführen des Codes auf einem Computer?

Ich halte es für absolut angemessen, einen Kandidaten zu bitten, in einem Interview Code zu schreiben. Die Fähigkeit, den Code auszuführen, ist für mich jedoch ein kritischer Teil der Rückkopplungsschleife, aus der sich die Programmierung zusammensetzt. Auf einer weißen Tafel binden Sie eine Hand hinter meinem Rücken, und Sie bekommen kein vollständiges Bild davon, wie ich mit einem Problem umgehe.


Ist das nur deine Meinung oder kannst du es irgendwie bestätigen?
Mücke

2
@gnat Ich stelle nur eine Frage. Die zweite Hälfte der Antwort ist meiner Meinung nach ja, aber das sollte durch die verwendete Sprache ziemlich klar sein. Darüber hinaus beginnt die Frage selbst damit, zu erkennen, dass sie subjektiv ist, und fordert dazu ausdrücklich Stellungnahmen an. Ich glaube nicht, dass die Ablehnung gerechtfertigt war.
Kevin C.

@ Kevin C. Ich denke, dass Sie hier ungeachtet Ihrer Formulierung einen sehr guten Standpunkt vertreten. Die Whiteboard-Codierung unterscheidet sich von der Computer-Codierung. Ist das eine Meinung? Mit Sicherheit nicht, solange Whiteboards keinen Code ausführen können.
Leandro Caniglia

2

Nein, aber IMO wäre ein besserer Ansatz, das Whiteboard für den beabsichtigten Zweck zu verwenden und UML / Skizzen / Notizen für ein fiktives Projekt zu verwenden, anstatt die alte "Schreibe mir eine SQL-Abfrage, um alle Datensätze zu erhalten" oder "schreibe eine Methode, die" kehrt einen String um ".

Eines der besten Interviews, das ich hatte, bestand darin, etwa 20 Minuten lang mit dem leitenden Entwickler über die Architektur (keine Software) einer Villa für verrückte Wissenschaftler zu diskutieren (komplett mit geheimem Versteck, Todesstrahl und Hundehütte). Er hat meine Herangehensweise an das Lösen von Problemen gesehen, und das Problem war etwas, das Spaß machte und kein typisches rotes Programmierzeug, das von modernen Sprachen tausendfach gelöst wurde. Übrigens habe ich auch schon mal so einen Code gemacht, aber ich fühlte mich viel mehr "unter Druck" als mit dem Architekturteil.


2

Heutzutage wird viel in Teams programmiert. Damit Teams arbeiten können, müssen Menschen kommunizieren können. Ein großer Teil davon ist die Möglichkeit, vor einem Whiteboard zu kommunizieren (Brainstorming, Mentoring, Überprüfung der vorgeschlagenen Korrekturen usw.).

Ich würde nachsehen, ob der Kandidat die Lösung eines Programmierproblems mit Whiteboard-Code erklärt. Wenn die Erklärung gut genug ist, werden die anderen guten Programmierer im Raum Tippfehler / Fehler auf der Tafel automatisch korrigieren.

Für die meisten Arten von Teampositionen wäre es unvernünftig, von einem Kandidaten NICHT zu erwarten, dass er seinen Lösungsversuch erklären und kritzeln kann.


0

Nein, es ist eine gute Sache, für ein Interview zu codieren, aber Sie sollten Code in jeder vernünftigen Sprache zulassen, da es in der Regel einfacher ist, einen Kodierer, der mit einer anderen Sprache konkurriert, zu schulen, als einen so lala Kodierer in der Sprache zu bekommen, die Sie wollen auf ein konkurrierendes Niveau.


0

Ich würde sagen, es ist angemessen, aber in den meisten Fällen ist es kein effizienter Weg, um herauszufinden, wer gut in der Programmierung ist und wer nicht. Wenn Sie einen Job erledigen möchten (= jemanden einstellen, der fähig ist), sollte sich das Interview auf die Messung der realen Fähigkeiten konzentrieren. Bisher das beste Interview, an dem ich so gearbeitet habe:

  • Grüße, willkommen von HR.
  • Ein paar Worte über mich, über die Firma usw. und sie erklärte den Rest des Interviews.
  • Sie gab mir einen Laptop mit einem Programm, bei dem nur wenige Teile fehlten, und die Unit-Tests waren deshalb fehlgeschlagen. Die fehlenden Teile wurden dort als Texte kommentiert, es ging darum, eine Grundaufgabe wie die Herstellung einer Verbindung zwischen wenigen Klassen und die Einführung einer einfachen Geschäftslogik umzusetzen.
  • Wenn alles gut lief, wurden die Unit-Tests grün.
  • Verabschiedung und Einverständnis, in wenigen Tagen wiederzukommen.
  • An diesem Tag traf sich der Leiter mit mir und fragte nach dem fertigen Programm, was ich getan habe und warum.
  • Auch dieser Anführer fragte nach meinen früheren Erfahrungen und nach einigen anderen Fragen.

Um es zusammenzufassen: Wenn Sie Mitarbeiter in einem Produktionscode suchen, testen Sie deren Fähigkeiten in der realen Umgebung. Wenn Sie neugierig auf ihr theoretisches Wissen sind, ist es besser, sie nach diesen Dingen zu fragen. Wenn Sie von der IDE befreit sind oder nervös sind, weil Sie vor jemandem auf Whiteboard programmieren müssen, kann ich verstehen, dass vor allem in der IT manchmal Leute introvertiert sind und viele von uns mit diesen Situationen nicht gut umgehen können, also auf Weiß An Bord wird unsere Effizienz schlechter aussehen, als es tatsächlich ist.


-1

Ich finde es nicht unvernünftig, wenn der Befragte keine schlechte Handschrift hat (oder ich sollte Boardwriting sagen) :-). Der einzige Unterschied in Ihrer Herangehensweise besteht in der Verwendung einer Tafel und eines Markers. In einigen Fällen tun die Interviewer dies, geben aber stattdessen ein Blatt Papier und einen Stift. Wenn 3-4 Personen das Interview führen, würde ich sagen, dass Ihr Ansatz viel besser und geeigneter ist.


1
"Meistens oder alle Interviewer machen das", ist es ziemlich selten, IMO.
Kirk Broadhurst

Ich denke, das macht jeder. Es ist selten, dass sie mit einem PC oder einem Laptop präsentieren, nur um zu prüfen, ob Sie ein bestimmtes Codierungsproblem lösen. Aber vielleicht ist das anders. Wenn Sie möchten, kann ich dieses Ding in der Antwort bearbeiten?
Pankaj Upadhyay

sehe, ich würde zustimmen, dass es ziemlich selten ist ... Ich habe in den letzten 9 Jahren 4 Jobs gehabt und wurde nie gebeten, Code auf Papier / wb zu schreiben. Jegliche Codierung wurde an einer IDE vorgenommen. Deshalb frage ich mich, ob es nicht unangemessen ist. Ich würde erwarten, dass ein Entwickler in der Lage ist, den Code "Reverse a String" in höchstens ein paar Minuten ohne IDE / Intellisense-Unterstützung umzukehren.
Eoin Campbell

Ich habe die Bearbeitung aufgrund Ihrer Erfahrung vorgenommen. Bei zwei Interviews, an denen ich auch teilgenommen hatte, gaben sie mir einen Stift und Papier, um zu schreiben, wie man eine Fibonacci-Serie und einen Algorithmus für Mergeshort druckt. Also dachte ich, dass die meisten Dinge so laufen :-)
Pankaj Upadhyay,

Sollte darauf hinweisen, dass ich noch nie Code an einem Computer schreiben musste; Ich musste zweimal (als Junior) Code auf Papier schreiben und einmal ein Architekturdiagramm auf ein Whiteboard zeichnen . Das ist aus ungefähr 20 Interviews heraus ...
Kirk Broadhurst
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.