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.]
Antworten:
Denk daran, dass...
Wenn Sie ein Interview führen, werden häufig unvollständige Verknüpfungen (z. B. technische Tests) verwendet, da es, wie Sie bereits erwähnt haben, keinen perfekten Prozess gibt, um eine Person in 30 Minuten beurteilen zu können. Aber da die meisten nicht den Luxus haben, Seite an Seite mit Ihnen zu arbeiten, sollten Sie einfach akzeptieren, dass es das ist, was es ist, ein Gewinnspiel, das jeder spielt.
quelle
Nicht genau. Es ist möglich, die Leute auszusortieren, die überhaupt nicht programmieren können, und diejenigen, die das Zeug in ihrem Lebenslauf nicht erklären können. Darüber hinaus versuche ich normalerweise nur, die allgemeine Intelligenz und das Interesse auf diesem Gebiet zu messen. Es ist schwierig, Ihre Situation weiter zu kommentieren, ohne das Problem zu kennen, zu dessen Lösung Sie aufgefordert wurden.
Das ist nicht das Ziel meiner technischen Fragen. Stattdessen versuche ich herauszufinden, ob der Kandidat die Grundlagen der Informatik versteht. Um die Fähigkeit zur Problemlösung einzuschätzen, bitte ich einen Kandidaten, über ein interessantes Problem zu berichten, an dem er gearbeitet hat.
Das ist alles. Größe ist selten. Ich freue mich, jemanden zu finden, der kompetent ist.
quelle
Ja. Ja ehrlich Das soll nicht heißen, dass 30 Minuten genug Zeit sind, um ein vollständiges Bild davon zu bekommen, wozu eine Person fähig ist. Die Aufgabe des Interviewers ist es, dort das Beste zu tun, um ein Gefühl dafür zu bekommen, wer der Interviewte ist und was er tun kann. Die Leute zu finden, die etwas in ihren Lebenslauf aufnehmen, von dem sie nicht wirklich wussten, ist ganz einfach. Es ist nicht möglich, genau herauszufinden, was der Befragte mit all seinen Fähigkeiten und Stärken kann.
Ja. Sie lassen Sie sehen, wie der Befragte denkt. Es ist nicht immer notwendig, die richtige Antwort zu erhalten. Zu sehen, wie sich jemand mit einem Problem befasst, mit dem er zu kämpfen hat, ist genauso vorteilhaft wie zu sehen, wie jemand ein Problem ohne große Schwierigkeiten richtig beantwortet. Ich stelle immer eine Frage, die der Befragte möglicherweise nicht beantworten kann.
Ich kenne keinen empirischen Beweis, der besagt, dass technische Interviews die besten Kandidaten finden, aber es ist das Beste, was ich versucht habe. Unterschiedliche Leute sind in verschiedenen Dingen gut und die richtigen technischen Antworten sind nicht das Einzige, was darüber entscheidet, ob jemand eingestellt wird. Eine gute Passform für das Unternehmen zu haben, ist ebenfalls sehr wichtig.
Ausgehend von Ihrer Frage denke ich, dass das Wichtigste, was Sie verstehen müssen, ist, dass die Tage klar definierter Rückmeldungen wie eine Briefnote vorbei sind. Die richtige Antwort zu finden, ist nur ein Teil des Ergebnisses. Ebenso wichtig ist es, guten Code zu schreiben, Ihre Ideen zu kommunizieren und anderen zuzuhören. Diese Bereiche sind jedoch subjektiver und müssen als solche behandelt werden.
Machen Sie genau wie bei der Lösung des Problems einen Schritt zurück und klären Sie den Kopf. Vieles steckt in einem Interview und der Interviewer weiß, dass es kein perfektes System ist. Sie versuchen, das Beste für das Unternehmen zu tun, so wie Sie versuchen, das Beste für Sie zu tun.
quelle
In einer halben Stunde können Sie beurteilen, dass die technischen Fähigkeiten einer Person mindestens so gut sind wie x. Das heißt, ihre Fähigkeit könnte höher sein als sie gezeigt haben, aber Sie können ziemlich sicher sein, dass es nicht schlimmer ist. Wenn x höher als Ihre Anforderungen ist, stellen Sie sie ein. Ja, es ist unfair, wenn Sie unter Ihrer tatsächlichen Fähigkeit demonstrieren. Alles, was ich sagen kann, ist besser zu demonstrieren.
Wenn jemand eine praktisch auswendig gelernte Antwort abrüttelte, würde ich ihm ein schwierigeres Problem geben. In der Wissenschaft ist das Auswendiglernen eine wichtige Fähigkeit. In einem Job ist es meistens überflüssig, wenn Sie Google direkt dort haben.
Angesichts der Tatsache, wie viele großartige Programmierer angestellt sind, kann man davon ausgehen, dass sie irgendwann ein Vorstellungsgespräch bestanden haben. Nein, Sie können nach einem halbstündigen Interview nicht sagen, ob jemand ein großartiger Programmierer sein wird. Glücklicherweise brauchen die meisten Unternehmen keine großartigen Programmierer. Sie verstehen sich gut mit soliden, zuverlässigen Programmierern, die keine Angst haben, Aufgaben außerhalb ihrer Komfortzone zu erledigen.
Der Grund, warum bahnbrechende Denker Bewerbungsgespräche möglicherweise nicht bestanden haben, ist, dass die Möglichkeit, auffällige, bahnbrechende Probleme zu lösen, sehr selten ist und dass Sie sich nur dann darauf verlassen können, wenn Sie bewiesen haben, dass Sie alltägliche, aber schwierige Probleme Ihrer Kollegen lösen können kann nicht, wie, warum die Software abstürzt, wenn es über 16% Last wird.
quelle
Nur sehr wenige Menschen wissen, ob ihre Interviewtechniken wirklich funktionieren, weil sie nie mehr über diejenigen erfahren, die versagt haben. Aber wenn nichts ihre Hypothese widerlegt, nehmen sie es als Bestätigung, dass sie wahr sind. Es gibt also ein bestimmtes Element beim Würfeln.
Wenn die ökonomischen Theorien, die besagen, dass Märkte rational und effizient sind, zutreffen würden, würden Unternehmen versuchen, Menschen einzustellen, die schlecht interviewt wurden, und zwar auf eine Weise, die sie bei ihrer Arbeit nicht schlecht macht. Jemand, der einen schlecht sitzenden Anzug trug, schwitzte, sehr nervös wirkte und Schwierigkeiten hatte, technische Probleme unter dem Druck eines Interviews zu lösen - wenn es externe Beweise gab, konnten sie andere technische Probleme lösen, und der Druck des Jobs war nicht so eines Interviews (wie sie es im Allgemeinen nicht sind) - würde die beste Chance eines Unternehmens darstellen, einen Kandidaten besser zu bekommen, als es sonst anziehen könnte, und würde dementsprechend handeln. (Think Money-Ball für die Unternehmenswelt). Irgendwann würden die Interview-Vorurteile verschwinden.
In der Praxis widerspricht dies der menschlichen Natur. Interviewer mögen selbstbewusste Extrovertierte, egal welche Position sie einnehmen, und selbst wenn das technische Interview schlechtere Informationen liefert als der Lebenslauf und die Referenzen (wie es in Ihrem Fall vielleicht der Fall ist), werden sie dies berücksichtigen.
Zu Ihren Fragen:
Etwas. Die Tests haben ein schlechtes Signal-Rausch-Verhältnis, können jedoch auf Kosten der qualifizierten, aber schlechten technischen Interviews so eingestellt werden, dass die völlig unqualifizierten herausgefiltert werden.
Siehe # 1. Ein Teil des Rauschens kommt von der Variation, ob die Leute das Problem schon einmal gesehen haben.
Siehe # 1. Es gibt wahrscheinlich eine winzige positive Korrelation zwischen diesen Tests und dem Werden eines großartigen Programmierers.
Mein Rat - Studieren Sie einige technische Beispielfragen, um eine grundlegende Vertrautheit zu erlangen. Denken Sie daran, es ist ein Würfelspiel, also versuchen Sie während des Interviews, selbstbewusst zu sein. Wenn Sie erklären können, was Sie denken, ohne sich vom tatsächlichen Denken abzulenken, dann tun Sie dies. Wenn es wirklich schlecht läuft, geben Sie zu, dass Sie bei Interviews nervös werden, und lassen Sie sie wissen, dass Sie normalerweise keine Probleme damit haben - geben Sie möglicherweise ein Beispiel für ein ähnliches, aber schwierigeres Problem, das Sie gelöst haben.
quelle