Egal, ob Sie programmiert haben, seit Ihr Pyjama mit Füßen bedeckt war oder Sie auf der Suche nach dem ersten Job nach der Schule sind, das technische Interview kann eine schreckliche Hürde zwischen Ihnen und Ihrem Traumjob sein.
Aber keine Angst - machen Sie sich bereit, um Ihre Fähigkeiten zu demonstrieren. Im Folgenden finden Sie einige Tipps, die für technische Interviews hilfreich sind.
Vor dem Interview
Holen Sie sich ein Buch
Bereiten Sie sich so früh wie möglich vor Ihrem Vorstellungsgespräch vor (obwohl ich es nur knapp zwei Wochen geschafft habe). Das Durcharbeiten eines Vorbereitungsbuchs aktualisiert nicht nur Ihr Wissen über Algorithmen und Datenstrukturen, sondern versetzt Sie auch in die richtige Denkweise zur Problemlösung.
Wählen Sie vor allem das richtige Vorbereitungsbuch für Ihr Niveau und Ihre Interessen. Das Knacken des Coding-Interviews ist eine großartige Ressource, aber wenn Sie noch kein erfahrener Programmierer sind, wird dies die Erfahrung nicht wettmachen. Wenn Sie gerade erst anfangen, gibt es andere Bücher, aus denen Sie mehr Meilen sammeln können, z. B. Programming Interviews Exposed: Geheimnisse für Ihren nächsten Job . Und es gibt viele speziellere und fortgeschrittenere Bücher für diejenigen mit mehr Erfahrung.
Übung macht den Meister
Nur wenige Dinge schlagen die Panik so schnell wie das Üben. Beginnen Sie mit dem Whiteboarding, wann immer Sie können, selbst bei sehr kleinen Problemen. Das Codieren von Interviewbüchern bietet nahezu endlose Beispielprobleme, aber Sie können auch Probleme verwenden, an denen Sie bereits arbeiten. Stellen Sie sich das Problem selbst vor (oder bitten Sie einen technisch versierten Freund, es Ihnen vorzulegen, um ein realistischeres Setup zu erhalten), entwerfen Sie Ihre Strategie und setzen Sie einen Marker auf das Trockenlöschbrett. Je wohler Sie mit dem Markieren dieser leeren Tafel zu Hause sind, desto weniger zögern Sie beim Vorstellungsgespräch.
Wenn Sie wenig Zeit haben und die Probleme schnell überwinden möchten, können Sie Druck aufbauen, der im eigentlichen Interview nicht vorhanden ist. Wenn Sie sich ein Zeitlimit geben oder jemanden haben, den Sie als Interviewer respektieren, fühlt sich der echte Deal wie ein Kinderspiel an.
Überlasten Sie sich nicht
Achten Sie beim Planen von Interviews darauf, dass zwischen den einzelnen Gesprächen mindestens ein paar Stunden liegen. Das klingt nach einem Problem der ersten Welt, aber jedes Mal, wenn ich mehrere Interviews an einem Tag hatte, habe ich nicht so gut gespielt, wie ich es hätte tun können. Entweder hatte ich Angst, pünktlich zum nächsten zu kommen, oder ich hatte meine Logik schon Stunden zuvor ausgereizt.
Oh, und schlaf ein bisschen. Das hört sich so an, als würde dir deine Mutter etwas erzählen, aber es gibt einige Dinge, die dich von deinem Spiel abbringen, wie zum Beispiel Schlafentzug. Es ist vergleichbar mit betrunken auftauchen.
Im Interview
Seien Sie zu allem bereit
Sobald Sie es zu Ihrem Vorstellungsgespräch geschafft haben, sollten Sie auf ein paar verschiedene Arten der Problemlösung vorbereitet sein. Ihre Interviewer bitten Sie möglicherweise, zu besprechen, wie Sie ein Problem lösen würden, sie öffnen einen Computer und bitten Sie, sie durch das Erstellen von Code zu führen, oder sie lassen den Code selbst auf ein Whiteboard schreiben. Seien Sie auf Abwechslung gefasst und lassen Sie sich nicht auf Details ein! Unabhängig davon, welche Methode Ihre Interviewer verwenden, sind es Ihre Fähigkeiten zur Problemlösung, die sie wirklich testen.
Fragen stellen
Wenn Sie mit einem Problem konfrontiert werden, überlegen Sie es sich und stellen Sie sicher, dass Sie vollständig verstehen, was Sie zur Rückgabe auffordern. Haben Sie keine Angst, frühzeitig Fragen zu stellen, wenn etwas unklar ist. Wenn es zum Beispiel Randfälle gibt, fragen Sie Ihre Interviewer, wie sie damit umgehen sollen. Sollten Sie eine Ausnahme auslösen? Brechen?
Stellen Sie außerdem Verfahrensfragen, um zu verstehen, wonach die Interviewer suchen und welche Einschränkungen Sie haben - z. B. "Gibt es eine bestimmte Sprache, in der ich Ihnen meine Lösung anbieten soll?" Oder "Kann ich davon ausgehen, dass ich Zugriff habe?" zu einer Python-Bibliothek? "
Und mache keine Annahmen. Auch wenn Sie sich ziemlich sicher sind, erwähnen Sie laut, was Sie denken, damit die Interviewer Sie wissen lassen können, wenn Sie etwas verpassen.
Nimm dir Zeit
Wenn Sie die gestellte Frage verstanden haben, haben Sie keine Angst, eine Minute nachzudenken und zu verarbeiten, bevor Sie mit der Lösung des Problems beginnen. Solange Sie nicht mit schnellen, wissensbasierten Fragen konfrontiert sind, ist es eine gute Sache, nach der Beantwortung der Frage eine Pause einzulegen. Natürlich - stellen Sie sicher, dass Sie nicht 10 Minuten brauchen, um es in Ihrem Kopf zu lösen, ohne ein Wort zu sagen! Der Punkt ist, Ihre Zeit im Voraus zu nutzen, um Ihren Ansatz zu strukturieren, und nicht, um zu versuchen, den gesamten Code in Ihren Kopf zu schreiben, bevor Sie den Marker auf dem Whiteboard berühren.
Think Big Picture
Denken Sie zuerst über das Gesamtbild des Problems nach. Es ist in Ordnung, die Gesamtstruktur zu pseudocodieren, solange Sie den Interviewern mitteilen, dass Sie das tun und beabsichtigen, zurückzukehren und es später tatsächlich zu codieren. Dies ist eine gute Möglichkeit, die Organisation des Problems zu vereinfachen, damit Ihr Gehirn mehr Platz für die Verarbeitung hat. Dies hilft auch, wenn Sie am Ende keine Zeit mehr haben. Die Interviewer werden zumindest wissen, wie Sie die Aufgabe erledigen wollten, auch wenn Sie nicht bis ins Detail gekommen sind.
Machen Sie sich auch zunächst keine Gedanken darüber, wie Sie das Problem am effizientesten lösen können, es sei denn, es geht Ihnen auf natürliche Weise durch den Kopf. Ermitteln Sie eine weniger effiziente Lösung und besprechen Sie anschließend, warum sie nicht optimal ist. Wenn Sie Zeit haben oder einen besseren Weg zur Lösung finden, fahren Sie mit einem zeit- oder raumfreundlicheren Algorithmus fort. Auch wenn Sie nur Zeit haben, Ihre weniger effiziente Version fertigzustellen und dann zu erklären, wie Sie es besser machen würden, ist das keine schlechte Antwort.
Sprich es aus
Am wichtigsten: Sprechen. Nehmen Sie Ihre Interviewer bei der Problemlösung mit. Dies kann so einfach sein, wie zu skizzieren, was Sie gerade tun, wenn Sie es tun („Ich benötige also eine for-Schleife, um alle Elemente in dieser Liste durchzugehen“) oder Probleme für Sie selbst zu bereiten go ("Das heißt, ich brauche einen besseren Weg, um auf die Informationen zuzugreifen; hmm, darauf komme ich später zurück").
Wenn Sie Ihren Gedankenprozess durchgehen, erhalten Ihre Interviewer einen Einblick in Ihr Denken, und das ist letztendlich der Punkt des Interviews. Selbst wenn Sie der Meinung sind, dass Ihre Lösung verblüffend ist, ist es für sie besser zu wissen, wie Sie sich dem Problem näherten und zu Ihrer Antwort kamen, als die vollständige Antwort zu sehen und keine Ahnung zu haben, was Sie dorthin geführt hat. Es gibt den Interviewern auch die Möglichkeit, Ihnen weiterzuhelfen, wenn Sie nicht weiterkommen oder einen Weg beschreiten, der eine Sackgasse darstellt.
Bringen Sie auch Ihre Fähigkeiten mit
Nur weil Sie einen Ingenieurberuf anstreben, heißt das noch lange nicht, dass Sie nicht mehr so persönlich und verantwortungsbewusst sind. Ich habe Horrorgeschichten von fantastischen Programmierern gehört, die nicht eingestellt wurden, weil sie nicht zur Kultur passten oder eine schlechte Einstellung hatten. Ich bin sicher, dass Sie auch haben. Sei nicht diese Person.
Neugier und Begeisterung werden von jedem Mitarbeiter geschätzt - und Entwickler sind nicht anders. Fragen Sie nach dem Engineering-Team des Unternehmens, seinem Stack und den schwierigsten Problemen, die es für das Produkt angeht. Natürlich gibt es einen feinen Grat zwischen Begeisterung und Sykophantentum, also sei ehrlich, aber jeder liebt einen Kandidaten, der sich für das Produkt interessiert, an dem er oder sie arbeiten wird.
Lerne etwas Neues
Schließlich ist eine Sache, die die Befragten am häufigsten verpassen, die Lernmöglichkeit. Hoffentlich lernen Sie in jedem Interview etwas Neues - Sie erwerben eine neue Idee oder ein neues Tool oder erhalten einen Einblick in interessante Produkte und Technologien. Je mehr Sie auf diese Weise über Ihre Interviews nachdenken, desto wertvoller wird diese Zeit auf lange Sicht für Sie sein.