Vorstellungsgespräche als Frontend-Entwickler in San Francisco

Avatar of Philip Walton
Philip Walton am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Der folgende Gastbeitrag stammt von Philip Walton (@philwalton). Philip hat kürzlich eine Reihe von Vorstellungsgesprächen für Frontend-Jobs bei Tech-Firmen in der Bay Area durchlaufen und festgestellt, dass sie nicht seinen Erwartungen entsprachen.

Vor ein paar Monaten begann ich, beiläufig nach Frontend-Jobs in der San Francisco Bay Area zu suchen. Ich mochte meinen aktuellen Job, aber ich hatte das Gefühl, der Tech-Szene in meiner Stadt zu entwachsen. Ich wollte meinen kleinen Teich verlassen und sehen, wie ich in einem großen, mit einigen der besten Entwickler der Welt, zurechtkommen würde.

Als ich anfing zu suchen, wusste ich, dass ich an einem Ort arbeiten wollte, an dem ich nicht der Experte sein würde, also bewarb ich mich nur bei großen, bekannten Unternehmen. Die ganze Erfahrung erwies sich als ziemlich wertvoll, und dabei bekam ich die Gelegenheit, einige meiner Helden zu treffen und die Büros einiger meiner Lieblingsfirmen zu besuchen.

Aber es war nicht alles gut. Tatsächlich kann ich, nachdem ich den Prozess rückblickend betrachtet habe, nicht umhin zu denken, dass mit der Art und Weise, wie Tech-Firmen ihre Frontend-Kandidaten interviewen, etwas grundlegend falsch ist.

Bevor ich fortfahre, möchte ich diesen Haftungsausschluss anbieten. Teile dieses Artikels werden kritisch sein, daher halte ich es für das Beste, die Namen dieser Unternehmen anonym zu halten. Schließlich ist es für meinen übergeordneten Punkt nicht relevant, wer sie sind.

Die einzigen Details, die ich teilen werde, sind, dass ich mich bei sechs Unternehmen beworben und Telefoninterviews hatte, von denen mich vier zu einem persönlichen Gespräch einluden. Insgesamt hatte ich 23 verschiedene Interviews, alle technisch.

Die andere Sache, die erwähnenswert ist, ist, dass dies alles bekannte Unternehmen waren. Unternehmen, von denen ich zu 100% sicher bin, dass Sie alle davon gehört haben, und ich erwähne das nicht, um zu prahlen, sondern um anzudeuten, dass, da sie diejenigen sind, die den Maßstab setzen, die Erfahrungen, die ich gemacht habe, wahrscheinlich ziemlich nah an der Norm waren.

Meine Erfahrung

Insgesamt war meine Erfahrung recht gut. Einige dieser Unternehmen sind bekannt für ihre quälenden Interviews, aber was ich durchgemacht habe, war bei weitem nicht so schlimm wie die Geschichten, die ich gehört hatte. Jeder war nett, jeder war professionell, und wenn ich die Antwort auf etwas nicht wusste, fühlte ich mich nie herabgesetzt. Meistens schien es nur ein einfaches Gespräch über Technologie zwischen zwei Leuten zu sein, die die beste Art und Weise besprachen, ein Problem zu lösen.

Aber es fehlte etwas Offensichtliches: Frontend-spezifische Fragen!

Nun, ich bin kein Interview-Experte. Und ich bin sicher, die meisten Personalchefs wären sich uneinig darüber, wie man die Effektivität eines bestimmten Satzes von Interviewfragen am besten misst. Aber in einer Sache sind sich, da bin ich sicher, alle einig: Die Fragen, die Sie stellen, sollten Fragen sein, die von den am besten qualifizierten Personen für die Stelle am besten beantwortet werden können.

Anders ausgedrückt: Wenn ein talentierter Informatik-Absolvent, frisch von der Universität, mit fast keiner Frontend-Erfahrung, einen großartigen Frontend-Ingenieur in Ihrem Interview in den Schatten stellen kann, stellen Sie wahrscheinlich die falschen Fragen.

Dies fasst meine Kritik im Wesentlichen zusammen. Die überwiegende Mehrheit meiner Interviewfragen waren Logikrätsel, allgemeine Codierungsherausforderungen und Algorithmus-Designprobleme – Dinge, die notwendig, aber bei weitem nicht ausreichend sind.

Was fehlte

Ich kenne mehrere Leute, die viele Interviews führen, und ich höre immer wieder den gleichen Satz von ihnen: Ich stelle lieber eine kluge Person ein und bringe ihr X bei, als jemanden einzustellen, der alles über X weiß, aber es an Kreativität, Logik und Urteilsvermögen mangelt.

Das verstehe ich. Das Problem ist, dass die Frontend-Entwicklung ein domänenspezifischer Fähigkeitsbereich ist. Es geht nicht nur um geistige Leistungsfähigkeit, sondern auch um Wissen und Erfahrung.

Frontend-Ingenieure sind auf ihrer grundlegendsten Ebene Entwickler, die Code schreiben, der im Browser des Benutzers ausgeführt wird. Heute bedeutet das, jemand, der HTML, CSS und JavaScript schreibt und die verschiedenen APIs kennt, die Browser bereitstellen. Der Unterschied zwischen dem allgemeinen Begriff „Programmierer“ und dem spezifischen Begriff „Frontend-Ingenieur“ liegt einfach in dem Bereich, in dem das Wissen existiert. Ein Superstar-Frontend-Ingenieur ist wahrscheinlich auch ein Superstar-Programmierer, aber das Gegenteil ist nicht unbedingt der Fall (oft nicht).

Wenn Sie dem zustimmen, was ich gerade gesagt habe, dann können Sie meine Überraschung über das Fehlen einiger der folgenden Themen in allen 23 meiner Interviews verstehen

  • Mir wurde keine einzige Frage zu neuen oder kommenden HTML-APIs gestellt.
  • Mir wurde keine einzige Frage zu den Unterschieden zwischen verschiedenen Browsern und Browserversionen oder wie man diese Unterschiede anspricht/behandelt, gestellt.
  • Mir wurde keine einzige Frage zu den Unterschieden zwischen Desktop- und mobilen Browsern oder zu Techniken zum Erstellen von Webanwendungen für beide gestellt.
  • Mir wurde nur eine CSS-Frage gestellt (nur eine!), und die lautete: „Nennen Sie mir den Unterschied zwischen Inline und Block“, eine Frage, die selbst die meisten Nicht-Frontend-Leute kennen.
  • Mir wurde nur eine Frage gestellt, die etwas mit dem DOM, DOM-Events oder Event-Binding zu tun hatte.

Was mir stattdessen gefragt wurde, sind viele Fragen wie diese

  • Schreibe eine Funktion, die zwei sortierte Listen von Zahlen entgegennimmt und sie zu einer einzigen sortierten Liste zusammenführt.
  • Gegeben ein Array von ganzen Zahlen (positiv oder negativ), finde das Unter-Array mit der größten Summe.
  • Bestimme, ob ein gegebener String ein Palindrom ist.
  • Gegeben eine große Hash-Tabelle, deren Schlüssel Filmnamen und deren Werte eine Liste von Schauspielern in diesen Filmen sind, schreibe eine Funktion, um die Bacon-Zahl eines bestimmten Schauspielers zu bestimmen.

Auch hier möchte ich nicht andeuten, dass es keinen Wert hat, diese Fragen zu stellen. Das Problem ist, dass sie nichts mit der Frontend-Entwicklung zu tun haben. Wie ich bereits sagte, könnten die meisten intelligenten Entwickler mit einem starken Informatikhintergrund all diese Fragen beantworten, selbst wenn sie noch nie eine Website erstellt hätten.

Was ist also los?

Ich bin sicher, ein Teil des Problems ist die Neuheit des Bedarfs an reinen Frontend-Positionen sowie der Begriff „Frontend-Ingenieur“ selbst. Es ist kein klar definierter Begriff und könnte je nachdem, wer ihn verwendet, sehr unterschiedliche Dinge bedeuten. Ich bin bereit zuzugeben, dass meine Vorstellung von einer Frontend-Rolle sich von denen unterscheiden mag, die die Stelle ausgeschrieben haben, aber ich vermute, dass mehr dahinter steckt.

Eine weitere wahrscheinliche Ursache ist, dass die Mehrheit meiner Interviewer selbst keine Frontend-Ingenieure waren. Sie waren leitende Teammitglieder, Personalchefs, VPs, Gründer usw., aber sie waren normalerweise keine Frontend-Ingenieure. Infolgedessen blieben sie bei dem, was sie wussten, und stellten die gleichen Fragen, die sie immer stellen.

Meine Vorschläge

Aufgrund meiner jüngsten Erfahrung möchte ich jedem, der diesen Artikel liest und in naher Zukunft einen Frontend-Ingenieur interviewen könnte, die folgenden Ratschläge geben.

  • Frontend-Kandidaten sollten von mindestens einem Frontend-Teammitglied (vorzugsweise mehr) interviewt werden. Wenn Sie kein Frontend-Teammitglied haben, finden Sie jemanden, den Sie kennen und dem Sie vertrauen, und bitten Sie ihn, es zu tun.
  • Offensichtlich sind Themen wie Logik und Algorithmen wichtig, insbesondere für bestimmte Unternehmen, aber wenn Sie für eine Frontend-Position interviewen, sollte ein wesentlicher Teil der Fragen auf das Frontend abzielen.
  • Wenn Sie wirklich Fragen zu Logik und Algorithmen stellen möchten, finden Sie einen Weg, dies so zu tun, dass Ihre Fragen mit spezifischem Frontend-Wissen kombiniert werden.

Um diesen letzten Punkt zu veranschaulichen, fragen Sie nicht nach der Komplexität von Mergesort, sondern nach der Komplexität dieses jQuery-Ausdrucks

$("#nav a")
  .addClass("link")
  .attr("data-initialized", true)
  .on("click", doSomething)

Eine korrekte Antwort darauf zeigt sowohl ein Verständnis grundlegender Informatikprinzipien als auch ein tieferes Wissen darüber, was jQuery hinter den Kulissen tut.

Anstatt jemanden zu bitten, eine Funktion zu schreiben, die zwei Daten addiert, lassen Sie ihn ein einfaches Kalender-Widget dazu erstellen.

Anstatt sie mit CSS-Trivia zu testen, geben Sie ihnen zwei Textabsätze und lassen Sie sie überlegen, wie viele Möglichkeiten sie finden können, diese nebeneinander als Spalten anzuordnen. Fragen Sie sie dann, die Vor- und Nachteile jeder Methode zu beschreiben.

Schließlich neigen gute Frontend-Ingenieure dazu, sehr selbstmotiviert zu sein. Da Browser-Technologien normalerweise nicht in Schulen unterrichtet werden, haben die meisten Frontend-Ingenieure dieses Zeug selbst gelernt. Anstatt sie also zu fragen, was sie wissen (was von begrenztem Wert ist), fragen Sie sie, wie sie auf dem Laufenden bleiben und wie sie vermeiden, ins Hintertreffen zu geraten. Was tun sie, um sicherzustellen, dass sie in einem Jahr besser sein werden als heute?

Fazit

Interviews sind eine knifflige Sache, und selbst einige der innovativsten Unternehmen machen es manchmal falsch. Und ein Interview für eine Frontend-Position kann aufgrund der Mehrdeutigkeit des Begriffs und der damit verbundenen Erwartungen noch schwieriger sein.

Der Eindruck, den ich von vielen meiner Interviewer erhielt, war, dass die meisten dieser Unternehmen erst vor Kurzem begonnen haben, die Bedeutung spezialisierter Frontend-Mitarbeiter zu erkennen. Ihre Frontend-Codebasen werden massiv und wirklich schwer zu verwalten. Und ein Teil des Problems ist, dass die Leute, die sie verwalten, nicht gut mit Frontend-Best Practices vertraut sind.

Wenn Sie einen Frontend-Kandidaten einstellen möchten, sollten Sie Ihren Interviewprozess überprüfen. Wenn Sie einige der in diesem Artikel genannten Dinge tun, entgehen Ihnen möglicherweise einige großartige Leute.

Wenn Sie auf der Suche nach einem Job als Frontend-Ingenieur sind, könnten Sie keinen besseren Zeitpunkt wählen, aber wenn meine Erfahrung ein Hinweis ist, würde ich vorschlagen, einige Ihrer Grundlagen der Informatik aufzufrischen. Eine Ressource, die ich sehr empfehle, ist die Vorlesungsreihe MIT Open Courseware, insbesondere Einführung in Algorithmen.

Zuletzt hoffe ich, dass dieser Artikel nicht nur als Tirade von jemandem angesehen wird, dem seine Interviewfragen nicht gefielen. Das ist sicherlich nicht meine Absicht. Meine Hoffnung ist, dass ich meinen Teil dazu beitragen kann, den Standard für Frontend-Arbeit in unserer Branche zu erhöhen. Und ich glaube, einer der besten Wege, dies zu erreichen, ist, Unternehmen dabei zu helfen, die richtigen Leute für diese Jobs einzustellen.