Was ich sagen werde, mag ein bisschen kontrovers sein, aber ich bin heute sehr entmutigt - und deshalb werde ich dies fragen.
Ich hatte gerade ein Interview mit einer großen Technologiefirma für eine Praktikumsstelle, wo mir viele typische algorithmisch orientierte Interviewfragen gestellt wurden. Angesichts meines Hintergrunds halte ich mich für stark in Algorithmen (ich habe auch gute Noten in Algorithmen auf Hochschulniveau - Sachen, die NP-Vollständigkeit und darüber hinaus beinhalten (Approximation und randomisierte Algorithmen)), aber ich konnte das Interview leider nicht durchkreuzen Stellen Sie sich eine sehr effiziente Methode vor, um ein Saitenproblem in ca. 10 Minuten zu lösen. Nach dem Interview hatte ich ein Glas Wasser, aß eine Banane und entspannte mich eine Weile und versuchte es erneut. Und vola! Antwort: Ich könnte in weniger als 5 Minuten ankommen. Und das Schlimmste von allem - ich war tatsächlich auf dieser Strecke und der Interviewer hat darauf hingewiesen, aber zu viel Druck hat mich gekocht. Meine gesamte Erfahrung brachte mich dazu, über technische Interviews nachzudenken. Ich hatte einige Fragen und wollte sie in diesem Forum stellen -
Ist es wirklich möglich, die technischen Fähigkeiten einer Person in einer halben Stunde zu beurteilen? Ehrlich? Oder ist es nur ein Würfelwurf?
Messen technische Interviewfragen die Fähigkeit zur Problemlösung? Dieser Punkt ist sehr umstritten? Als Doktorand weiß ich, dass das Lösen von mathematischen Problemen das Lösen von Dingen beinhaltet, von denen Sie noch nie zuvor gehört haben. Auf der anderen Seite werden Fragen wie - Zusammenführen von zwei verknüpften Listen in sortierter Reihenfolge oder Drucken aller Elemente eines Binärbaums in der k-ten Ebene zu "bloßen Übungen", sobald jemand die Lösung gesehen oder das Problem im Voraus gelöst hat?
Werden Leute, die in diesem Interview mit Bravour herauskommen, großartige Programmierer? Machen sie weiter und entwerfen schlanke Game-Engines, Grafikbibliotheken und schreiben schnelle Fork-Join-Frameworks? Gibt es Hinweise auf ein positives Zusammenspiel zwischen einer guten Leistung bei technischen Interviews und der tatsächlichen Programmierfähigkeit? Oder zielen diese Interviews eher darauf ab, einen Personentyp zu finden, der "Dinge erledigt" (Spolsky)?
Ich kann wetten, dass viele Wissenschaftler, die bahnbrechende Ideen veröffentlichen - ICML, VLDB, Mobicom -, diese Interviews durchkreuzen werden. Aber ich kann Ihnen versichern, dass sie zu den klügsten Menschen gehören, die Sie auf diesem Planeten finden werden.
Ich bin hauptsächlich im akademischen Bereich (Doktorand) - daher schätze ich einige Personen auf der anderen Seite des Zauns sehr. Jemand, der diese Interviews tatsächlich durchführt?
[Ok, alle zusammen. Danke für all die netten und nachdenklichen Antworten. Da ich keine weitere Frage stellen möchte, werde ich Sie bitten, diese Frage für mich zu beantworten.
Angenommen, Kandidat X hat ein gutes öffentliches Portfolio an Arbeiten, in denen er zu einem bekannten Open Source-Projekt beigetragen hat. Dort können Sie seine Patches überprüfen, die von ihm geschlossenen Bugs überprüfen und sich die von ihm erstellten Designs ansehen. In diesem Fall stellt sich die Frage, wie viel Gewicht Sie bereit sind, für seine öffentlich verfügbare / überprüfbare Arbeit zu geben, und wie gut er in weniger als 15 Minuten eine Frage zu einem Interview mit einem Binärbaum beantwortet.]