Nein, es ist nicht genug! Ich habe bei Microsoft, Facebook, Google und Amazon interviewt. Beachten Sie, dass technische Interviews nicht nur Codierungsfragen, sondern auch Designfragen umfassen. Lassen Sie uns zunächst die Codierungsfragen diskutieren, die in diesen großen Unternehmen gestellt werden. Hier sind meine Beobachtungen zu diesen Fragen:
- Alle Fragen beinhalten einen Trick, den Sie zuerst lösen müssen. Nehmen Sie zum Beispiel die Frage ‘Schreibe einen in-order-Iterator eines binären Suchbaums (BST)’ – Die Kenntnis der Datenstruktur (oder des Algorithmus) allein reicht hier nicht aus. Wie wir wissen, können wir einen Stapel verwenden, um die iterative Lösung für das rekursive Durchlaufen von BST zu entwickeln, aber der Trick ist, welcher Knoten auf den Stapel verschoben werden soll und wie / wann wir einen Knoten einfügen sollen.
- Eine End-to-End-Lösung finden – Wenn Sie die Datenstrukturen kennen, können Sie das herausfinden. Sie müssen jedoch ein Problem vollständig lösen und alle Szenarien, Endbedingungen, Verarbeitungseingaben usw. lösen.
- Entscheiden, welche Datenstruktur (en) am besten zu Ihrer Lösung passt. Mehrere Datenstrukturen und Algorithmen können ein Problem lösen. Die Entscheidung, welche die beste ist, ist entscheidend. Beispielsweise optimieren Sie manchmal den Arbeitsspeicher und manchmal die Gesamtausführungszeit oder beides.
Zweitens bewerten Designfragen Ihre Designfähigkeiten. Alle obigen Punkte gelten auch für Entwurfsprobleme. Darüber hinaus arbeiten Sie daran, das System in kleinere Komponenten aufzuteilen, zu entwerfen, was die einzelnen Komponenten tun und wie die verschiedenen Komponenten miteinander funktionieren usw.
Ich fand folgende Seiten super hilfreich für die Vorbereitung von technischen Interviews:
- Wie man in 3 Monaten vom Anfänger zum Profi im Programmieren wird, damit ich jede Art von Coding-Interview knacken kann
- Wie vergleichen sich Leetcode-Fragen mit tatsächlichen Software-Interviews?
- Wie ist das Undergraduate-Interview des St. Stephen's College und was sind die häufigsten Fragen?
- Wie Sie sich in kürzester Zeit (vielleicht 1 Monat) auf ein Vorstellungsgespräch im Bereich Software Engineering vorbereiten können
- Sie erhalten ein sortiertes Array, das monoton ansteigt und in gleicher Weise abnimmt. Wie erstelle ich einen Algorithmus, um den Index eines Elements in diesem Array zu finden, ohne den Pivot zu berechnen? Die Laufzeit sollte O (log n) sein. Sie können davon ausgehen, dass es in diesem Array kein doppeltes Element gibt.
- Coderust
- LeetCode
- Grokking the System Design Interview