Lassen Sie uns über Whiteboarding-Interviews und mögliche Alternativen sprechen

Es ist für niemanden neu, dass viele Ingenieure Interviewfragen auf Whiteboard-Basis hassen.

Egal ob auf Twitter, Medium oder LinkedIn, es ist einfach, jemanden zu finden, der Luft macht. Der Ausdruck „der Einstellungsprozess ist unterbrochen“ wird so oft verwendet, dass er zu einem Klischee wird.

Leider stößt ein Großteil dieser Frustration auf taube Ohren.

Trotz des Zorns, der es umgibt, ist „Whiteboarding“ immer noch ein Grundnahrungsmittel in Software-Engineering-Interviews. Ein Teil davon ist auf die Tatsache zurückzuführen, dass Entwickler ihre Ressentiments schnell zum Ausdruck bringen, aber nur langsam bessere Alternativen anbieten.

Gibt es bessere Alternativen?

Diese Frage hat mich in letzter Zeit sehr beschäftigt. Vor vier Wochen bekam ich meinen ersten Vollzeitjob als Softwareentwickler. Ich bin zwar noch nicht in den Einstellungsprozess involviert, werde es aber irgendwann sein.

Nachdem ich vor einem Monat auf der anderen Seite des Tisches gestanden habe, verstehe ich, wie ungenau Interviews sein können. Wenn ich an der Reihe bin, die Fragen zu stellen, möchte ich sicherstellen, dass ich meine potenziellen Kollegen genau und fair bewerte.

Diese Situation hat mich zu zwei Fragen geführt:

  1. Sind Whiteboarding-Interviews die beste Wahl?
  2. Wenn nicht, was sind die besseren Alternativen?

In diesem Beitrag werde ich versuchen, diese Fragen zu beantworten. Denken Sie daran, dies sind meine persönlichen Meinungen, die von meiner eigenen Interviewerfahrung geprägt wurden.

Ich werde versuchen, so objektiv wie möglich zu sein, indem ich mich dieser Aufgabe auf echte Software-Engineering-Weise nähere: alle Optionen prüfen und ihre Kompromisse abwägen.

Sind Whiteboarding-Interviews die schlechtesten?

Der erste Schritt in diesem Prozess ist die Überprüfung des Whiteboards.

Vorteile:

  1. Schneller und geringer Aufwand
  2. Nicht sprach- oder domänenabhängig
  3. Sie wissen (allgemein), was Sie erwartet
  4. Community-Unterstützung (Glassdoor, LeetCode, Pramp usw.)

Nachteile:

  1. Glück ist ein großer Faktor (Algorithmus Lotterie)
  2. Testet nicht unbedingt die technische Eignung
  3. Begünstigt junge Ingenieure und Absolventen

Für Unternehmen, bei denen Ingenieure die CS-Grundlagen und Algorithmen auf niedriger Ebene genau kennen und nicht von Bibliotheken abhängig sein müssen, ist das Whiteboarding-Interview perfekt.

SpaceX, MacOS / Windows und Facebooks React wurden von Ingenieuren mit diesem Wissen entwickelt. Es ist zu erwarten, dass ein Whiteboarding-Interview von einem dieser Unternehmen geführt wird.

Als Bewerber liebe ich Whiteboarding-Interviews. Ich weiß was mich erwartet. Die meisten Algorithmusfragen fallen unter diese allgemeinen Themen:

  • Arrays / Strings
  • Binäre Bäume
  • Verknüpfte Listen
  • DFS / BFS
  • Backtracking
  • Dynamische Programmierung

Wenn ich das im Voraus weiß, kann ich dafür lernen. Und es gibt eine Vielzahl von Lernwerkzeugen zur Auswahl. Die Vorbereitung technischer Interviews ist eine ganze Branche für sich.

Aus diesem Grund sind Whiteboarding-Interviews nicht für jedes Unternehmen die beste Option. So viel davon hängt vom Glück, dem Auswendiglernen und demjenigen ab, der die meiste Zeit mit Lernen verbracht hat.

Nicht jeder kann lange Zeit lernen, um Algorithmen zu beherrschen.

Ich hatte Glück, dass ich andere Ingenieure, die es nicht konnten, übertreffen konnte. Bin ich ein besserer Ingenieur als alle? Vielleicht, aber ich bin mir nicht sicher, ob ein Whiteboarding-Interview das beste Mittel ist, um es zu enthüllen.

Wenn es also Zweifel gibt, dass das Whiteboarding-Interview das beste Werkzeug für den Job ist, was könnte besser sein?

Schauen wir uns einige der Alternativen an.

Codierungsherausforderungen über Computer

Vorteile:

  1. Verwenden Sie einen Computer und eine vertraute Entwicklungsumgebung
  2. Kann remote über die Bildschirmfreigabe erfolgen
  3. Alle anderen Vorteile von Whiteboarding-Interviews

Nachteile:

  1. Strengere Syntax und Ausführungsfähigkeit.
  2. Programmierumgebung und Plugins können eine große Rolle spielen
  3. Gleiche Nachteile von Whiteboarding-Interviews

Codierungsherausforderungen auf einem Laptop sind der weniger strenge Cousin des Whiteboarding-Interviews.

Kandidaten haben den Vorteil, ihre eigenen Computer zu verwenden. Sie können remote oder in einer Paarprogrammierumgebung durchgeführt werden.

Eine schöne Sache, die mir bei diesen aufgefallen ist, ist, dass sie normalerweise einfacher sind als Whiteboarding-Fragen. Die meisten Fragen betrafen die Manipulation von Strings oder einfache Algorithmen, für die kein erfahrener Ingenieur lernen müsste.

Der Nachteil dabei ist, dass die Funktionalität viel stärker betont wird.

Während meiner Jobsuche wurde ich zweimal nach dem Münzwechselproblem gefragt. Eine als Whiteboard-Herausforderung und die andere als Editor.

Bei der Whiteboard-Herausforderung habe ich hauptsächlich meine Lösung erklärt. Von mir wurde erwartet, dass ich auf meinem Laptop Edge-Case-Tests schreibe und garantiere, dass meine Lösung funktioniert.

Ein Grund, warum ich Whiteboarding mag, ist die Nachsicht. Niemand wird Ihre geschriebene Funktion über einen Compiler ausführen. Solange der Interviewer versteht, was Sie denken und das Schreiben gut genug aussieht, erhalten Sie volle Anerkennung.

Nicht so bei Code-Herausforderungen.

Einige mögen argumentieren, dass die Betonung der Funktionalität besser ist, weil wir dafür bezahlt werden, Arbeitscode zu schreiben. Das stimmt, aber wir werden nicht dafür bezahlt, dass wir es in Sprints von 30 bis 45 Minuten schaffen.

Hoffen wir nur, dass Sie während der Interviews nicht nervös werden. Ein kleiner Fehler, der zu fehlgeschlagenen Tests und mehreren Minuten Debugging führt, kann der Unterschied zwischen einer „starken Einstellung“ oder einem Bestehen sein.

Code-Herausforderungen leiden immer noch unter den gleichen Mängeln wie Whiteboarding, da viele von ihnen algorithmisch sind.

Mit dem zusätzlichen Druck der Funktionalität können die Fragen trotz der komfortablen Umgebung noch schwieriger werden. Wenn Sie Algorithmusprobleme bereits nicht mögen, sind Code-Herausforderungen nicht viel besser.

Assessments mit nach Hause nehmen

Vorteile:

  1. Kann im Schlafanzug daran arbeiten
  2. Normalerweise ab einer Woche, um an der Aufgabe zu arbeiten
  3. Verwenden Sie Ihren eigenen Editor und Ihre eigene Entwicklungsumgebung
  4. Kann eine neue Ergänzung des Portfolios sein
  5. Normalerweise macht es mehr Spaß als Whiteboarding

Nachteile:

  1. Der Schwierigkeitsgrad kann drastisch variieren
  2. Viel mehr Aufwand und Zeitaufwand als Codierungsprobleme
  3. Kann domänenabhängig sein
  4. Kann aufgrund des Wettbewerbs zu einem Kriechen der Merkmale führen
  5. Repräsentiert nicht die tägliche Arbeit

Viele Ingenieure ziehen es vor, Aufgaben mit nach Hause zu nehmen. Die Zeitpläne für die Abgabe sind normalerweise flexibel, und die Kandidaten können tatsächlich codieren. Es ist kein Schock, dass Programmierer es vorziehen, vor einem Whiteboard zu stehen, während sie still beurteilt werden.

Tests zum Mitnehmen haben jedoch einige große Nachteile.

Erstens sind sie leicht zu manipulieren.

Viele Unternehmen hosten ihre Tests auf GitHub. Geben Sie "Challenge" oder "Test" in die GitHub-Suche ein und Sie werden viele finden. Dies gibt dem versierten Kandidaten genügend Zeit, um die Herausforderung präventiv zu untersuchen.

Das ist keine wirkliche Beschwerde. Nur eher ein Pro-Tipp.

Was ist ein Problem ist , dass es einfach genug , um andere Menschen Antworten auf diese Herausforderungen zu finden und zu kopieren. Viele Ingenieure behalten die Antworten, um Herausforderungen in ihren GitHub-Profilen mit nach Hause zu nehmen.

Sie können es sogar selbst testen. Geben Sie "Challenge" in die GitHub-Suche ein und sehen Sie, was Sie finden.

Ich wohne neben dem Etsy-Hauptquartier in Brooklyn und war neugierig, ob ich die Antworten auf einige ihrer Tests finden könnte. "Etsy Challenge" enthüllte vier. Es gab noch mehr unter "Etsy Test".

Es ist wahr, dass Unternehmen ihre Einschätzungen ändern können. Es kann jedoch mühsam sein, einen Interviewprozess alle paar Monate zu ändern, da Details durchgesickert sind.

Zweitens sind der Schwierigkeitsgrad und die Zeit, die erforderlich sind, um diese Herausforderungen zu meistern, sehr unterschiedlich.

Während meiner letzten Jobsuche erhielt ich vier Aufträge zum Mitnehmen. Drei der Unternehmen sagten, sie sollten nur 3 bis 5 Stunden brauchen, um fertig zu werden.

Sie alle haben mehrere Tage gebraucht.

Der Hauptgrund dafür war, dass die Herausforderungen oft domänenspezifisch waren. Sie benötigten mehrere Stunden für die Recherche nach API-Dokumenten und neuen Technologien.

Die vierte Firma nahm eine Herausforderung an, die leicht eine Woche dauern konnte, und gab mir zwei Tage. Ich musste eine funktionierende Chat-App erstellen, die Schrägstriche unterstützt.

Es war ein lustiges und interessantes Projekt, aber ich musste alles, was ich tat, zwei Tage lang fallen lassen, um es abzuschließen.

Wenn ein Kandidat das Glück hat, mit mehreren Unternehmen gleichzeitig zu sprechen, kann dies zu einem Vollzeitjob werden, der nur an diesen Herausforderungen arbeitet.

Darüber hinaus müssen professionelle Entwickler an älteren Codebasen arbeiten und Termine einhalten. Ein einwöchiges Greenfield-Projekt wird nicht beurteilen, wie gut der Befragte in einem schnelllebigen Umfeld arbeitet.

Insgesamt nehme ich Aufgaben gerne mit nach Hause, um die Fähigkeiten eines Kandidaten zu überprüfen. Vor diesem Hintergrund sollten sie sich auf die Stelle beziehen, für die sich der Kandidat bewirbt, und es sollte nicht obszön lange dauern, bis sie fertig sind.

Projektbasiert / Mietvertrag

Vorteile:

  1. Holen Sie sich die Chance, mit Kandidaten / Team zu arbeiten
  2. Werde für die Arbeit bezahlt
  3. Machen Sie sich an die Arbeit an echten Projekten
  4. Werden bewertet, wie gut Sie mit Team- und Schiffscode arbeiten

Nachteile:

  1. Langfristiges Engagement
  2. Arbeiten ohne Beschäftigungsgarantie
  3. Keine gesundheitlichen Vorteile als Auftragnehmer
  4. Kann den Kandidaten in eine schlechte Verhandlungsposition bringen
  5. Sprachabhängig

Projektbasierte Interviews sind selten. Aber nicht wenige Unternehmen wie Basecamp und Automatic stehen ihnen zur Seite. Ich kann verstehen warum.

Diese Interviews sind wahrscheinlich die genaueste Methode, um die Fähigkeiten einer Person zu bewerten und sie als Teammitglied zu bewerten. Das Unternehmen kann direkt mit ihnen zusammenarbeiten und sehen, wie sie Aufgaben in einem Team erledigen.

Der Kandidat hat auch die Möglichkeit, das Unternehmen zu bewerten und festzustellen, ob es sich um die Art von Umgebung handelt, in der er arbeiten möchte.

Win-Win. Zumindest scheint es so.

Nach alledem würde ich als Bewerber niemals an projektbasierten Interviews oder Rollen als Vertragspartner teilnehmen. Die Negative überwiegen bei weitem die Positiven.

Die ersten paar Monate eines Jobs sind normalerweise die schwierigsten. Sie gewöhnen sich an ein neues Team, eine neue Kultur und eine neue Codebasis. Stellen Sie sich nun vor, Sie arbeiten an einem Projekt, ohne zu wissen, ob Sie am Ende einen Job haben.

Ein guter Freund von mir hat kürzlich bei Automatic ein Interview geführt und bestätigt, wie stressig es sein kann. Von der Art und Weise, wie Sie mit Kollegen interagieren, bis zu den Fragen, die Sie stellen, wird alles beurteilt. In diesen Umgebungen gibt es so etwas wie eine „dumme Frage“.

Schlimmer ist, dass er nach dem Dreimonatsvertrag entlassen wurde. Zum Glück hat er sich nicht von seinem Selbstwertgefühl beeinflussen lassen. Er kennt seine Fähigkeiten und stürmt voran. Ich bin mir nicht sicher, ob ich oder viele andere Ingenieure das genauso einfach tun könnten.

Darüber hinaus bringen Verträge den Arbeitssuchenden in eine schreckliche Verhandlungsposition. Stärke in den Verhandlungen kommt von der Bereitschaft, wegzugehen.

Bis zum Ende einer Vertragslaufzeit hat der potenzielle Kandidat keine Verhandlungschips mehr. Sie haben keine anderen Angebote und haben je nach Vertragsdauer bereits Dutzende oder Hunderte von Stunden in ihre Projekte gesteckt.

Sie würden einen Anreiz erhalten, die Position einzunehmen, auch wenn dies nicht ihre bevorzugte Wahl ist. Die Alternative besteht darin, wieder auf dem ersten Platz in den Arbeitsmarkt einzusteigen.

Der Sunk Cost Fallacy vom Feinsten.

Während Whiteboarding-Interviews möglicherweise nicht ideal sind, würde ich hundert davon machen, bevor ich jemals ein projektbasiertes Interview gemacht habe.

Welches ist das Beste?

Wie Sie vielleicht erraten haben: Es kommt darauf an ™.

Die Kompromisse scheinen zwischen Geschwindigkeit und Anstrengung gegenüber Genauigkeit zu liegen. Jede Methode opfert eine für die andere. Es liegt an jedem Unternehmen, diese Kompromisse für sich selbst zu beurteilen. SpaceX wird höchstwahrscheinlich einen anderen Prozess haben als kleine New Yorker Startups.

Es stimmt, dass ein SaaS-Unternehmen Kandidaten nur dann auffordern sollte, dynamische Programmieralgorithmen zu schreiben, wenn dies ihnen hilft, die Fähigkeiten des Ingenieurs zu bestimmen. Nicht nur, weil Google es tut.

Wenn ich den Interviewprozess für mein Team bei DigitalOcean entwerfen würde, würde ich eine Mischung aus Take-Home-Bewertungen und Code-Herausforderungen / Pairing-Übungen verwenden. Ich würde auch ihr Verständnis von Verfügbarkeit und verteilten Systemen anhand einer Q & A-Sitzung und einer Herausforderung beim Systemdesign beurteilen.

Die gute Nachricht ist, dass mein Team dies bereits tut. Der harte und dennoch faire Interviewprozess von DigitalOcean war einer der Gründe, warum ich das Angebot angenommen habe. Es hat mir gezeigt, dass sie diesen Selbstprüfungsprozess bereits durchlaufen haben und herausgefunden haben, wie sie ihre Kandidaten fair bewerten können.

Bitte teilen Sie mir in den Kommentaren unten Ihre bevorzugte Interviewmethode mit!

Schließlich sollten Sie für alle Ingenieure, die eine Änderung des Interviewprozesses sehen möchten, Ideen einbringen. Ich habe zu viele Ingenieure gesehen, die sich über Whiteboarding-Interviews lustig gemacht haben, um den Prozess fortzusetzen, sobald sie eingestellt wurden, weil es zu viel Arbeit ist, ihn zu ändern.

Sei nicht diese Person.

Hör auf dich zu beschweren.

Finde Lösungen.