Nach meinen Eindrücken interessieren sich viele Menschen für das Thema der Vorbereitung von Interviews bei Top-Tech-Unternehmen. Deshalb habe ich beschlossen, einen Artikel anstelle persönlicher Antworten zu schreiben, auf die ich in Zukunft verweisen werde. Jeder, der sich für den Interviewprozess interessiert, Dinge, auf die Sie achten müssen, wie Sie sich vorbereiten und worauf Sie sich vorbereiten müssen - willkommen bei cat.
Was ist in diesem Artikel
- Trainingsprogramm
- Liste der Ressourcen und Artikel
- Tipps für Vorstellungsgespräche
Bevor ich mit meiner Ausbildung begann, beschloss ich, ein System zu entwickeln, mit dem ich mich vorbereiten werde, sowie eine Liste der Ressourcen, die ich für den Vorbereitungsprozess verwenden werde.
Der erste Schritt bestand darin, zu bestimmen, was für das Interview erforderlich ist, und dafür ist es dementsprechend erforderlich, eine gute Vorstellung davon zu haben, welche Fragen bei den Interviews auftreten. Nach einer ziemlich schnellen Suche in den Google-Suchergebnissen bin ich auf dieses
Buch gestoßen , das eine ziemlich vollständige Sammlung nützlicher Tipps und Beispielaufgaben zu Interviewthemen enthält.
In diesem Stadium ist es erwähnenswert, dass der Code im Buch hauptsächlich in Java / C ++ geschrieben ist, was ihn ziemlich lesbar macht. Für ein komfortableres Interview empfehle ich daher, alle Probleme in der Sprache zu lösen, die Sie während des Interviews verwenden möchten.
Nachdem ich dieses Buch gelesen hatte, konnte ich eine Liste der wichtigsten Themen für die Vorbereitung identifizieren.
Meine Liste sah ungefähr so aus:
- Big o
- Rätsel
- Anwendungsarchitektur
- Algorithmen und Datenstrukturen
Big o
Eigentlich gibt es wirklich nichts, worüber man über Big-O sprechen könnte. Sie müssen nur den Unterschied in der Rechenkomplexität verschiedener Algorithmen kennen und verstehen, die Laufzeit und den Speicherverbrauch von Algorithmen bestimmen, die grundlegenden Schritte zur Optimierung von Algorithmen kennen usw.
Es wurden unzählige Artikel und Bücher über Big-O geschrieben. In fast allen Eingabekursen zu Algorithmen gibt es Vorträge zu diesem Thema. Auf einem Habr gibt es auch eine Reihe von Artikeln zu diesem Thema
habr.com/post/196560Rätsel
Haftungsausschluss - Ich persönlich bin beim Interview nicht auf Rätsel gestoßen, aber ich habe gehört, dass sie möglicherweise auftauchen.
Die Art und Weise, wie ich Rätsel in Bezug auf die Vorbereitung gesehen habe, sind eigentlich dieselben Algorithmen, nur ohne Bezug auf eine bestimmte Datenstruktur oder ein bestimmtes algorithmisches Paradigma. Aus diesem Grund ist es ziemlich schwierig, die Vorbereitung für Rätsel zu organisieren. Die beste Lösung, zu der ich kommen konnte, bestand darin, einfach „meine Hände in die Hand zu nehmen“, 40-60 Rätsel zu lösen und bis zu einem gewissen Grad zu verstehen, wie man sich der Lösung von Rätseln nähert. Mit der Zeit beginnt das Gehirn zu verstehen, worauf zu achten ist und was einfach das Design der Aufgabe ist: Zum Beispiel sind alle im Puzzle angegebenen Zahlen normalerweise nicht einfach so. Dies ist nicht "nur 2 Seile" und nicht nur "in 25 Minuten ausbrennen". Rätsel enthalten in der Regel keine nutzlosen quantitativen Informationen.
Anwendungsarchitektur
Das Verständnis der Architektur von Gebäudeanwendungen basiert auf wissensbasierter Erfahrung. Es ist ziemlich schwierig, ein guter Architekt zu werden, wenn es nur um Architektur geht, und es ist ziemlich ineffizient, Architektur nur durch Versuch und Irrtum zu studieren. Aus diesen Gründen ist es ziemlich schwierig, sich auf den architektonischen Teil des Interviews vorzubereiten. Bis zu einem gewissen Grad ist die Vorbereitung auf diesen Teil Ihre gesamte Karriere. Es ist jedoch immer noch eine gute Idee, einige Aspekte aufzufrischen. Zum Beispiel: Repräsentationsarchitektur. Selbst diejenigen, die UML in einem kritischen Moment beherrschen, können einfach einige Details der Ansicht oder die spezifischen Ansichten der Links vergessen. Ein weiteres Beispiel wären beliebte Designmuster. Trotz der Tatsache, dass sie häufig verwendet werden, werden in der Regel nicht alle sofort und nicht auf Anfrage verwendet, um hier und jetzt Wissen über sie bereitzustellen. Versuchen Sie, mehrere Testrunden für sich selbst durchzuführen und Problembereiche zu identifizieren.
Algorithmen und Datenstrukturen
Einer der wichtigsten und problematischsten Momente im Interview. Ein gewisser Schwerpunkt liegt auf der Lösung dieser Probleme, und die Fähigkeit, solche Probleme schnell und effektiv zu lösen, ist sehr wichtig.
Zur Vorbereitung habe ich eine Liste der am häufigsten verwendeten Datenstrukturen und Algorithmen zusammengestellt, die sich wie folgt herausstellte:
- Arrays
- Saiten
- Binärer Baum
- Binärer Suchbaum (BST)
- Grafiken
- Haufen
- Verknüpfte Liste
- Matrix
- Stapel
- Warteschlange
- Trie
- Backtracking
- Teilen und erobern
- Dynamische Programmierung
- Sortieren
- Gierig
In jedem der Abschnitte gibt es mehrere Tricks, die Sie nur beherrschen müssen. Ein klassisches Beispiel hierfür ist der Schieberegler "Langsam" und "Schnell" in der verknüpften Liste. Ohne dieses Konzept zu kennen oder nicht zu verstehen, ist es praktisch unmöglich, viele Probleme auf verknüpften Listen effektiv zu lösen. Oder BFS / DFS-Diagrammsuchalgorithmen. Viele Aufgaben für Interviews sind in der Regel entweder Modifikationen bekannter Konzepte oder eine Kombination aus mehreren. Daher ist es sehr wichtig zu lernen, die grundlegenden Aufgaben in jeder Datenstruktur / jedem Algorithmus zu lösen und zu erkennen.
Persönlich habe ich mir ein paar Vorlesungen von der Stanford University angesehen und nachdem ich mir ~ 5-10 Aufgaben aus jeder Kategorie geschrieben und einfach meine Hand auf diese Weise gefüllt habe. Es kostet viel Zeit und Mühe, aber es lohnt sich.
Hier sind einige Ressourcen, mit denen ich Aufgaben vorbereitet und gesucht habe:
https://www.quora.com - nur eine Liste von ~ 500 Aufgaben zu verschiedenen Themen sowie C ++ - Lösungen. Sehr praktisch, manchmal gibt es mehrere Lösungen, bei denen eine optimaler ist als die andere.
https://www.hackerrank.com ist eine praktische Ressource mit Kategorien und Themen sowie einem integrierten Compiler für mehr als 20 Sprachen. Hilft, Ihre Hand schnell und effizient zu füllen.
https://www.glassdoor.com - enthält direkte Fragen aus Interviews und manchmal Antworten aus der Community.
Für mich waren diese beiden genug, aber wenn Sie es nicht sind, dann geben diese 3 eine gute Vorstellung davon, wo Sie weiter suchen müssen.
Denken Sie daran, dass es sehr wichtig ist, selbst eine Antwort und Entscheidung zu finden, bevor Sie sich die Tipps ansehen. Sie zwingen sich also tatsächlich zum Nachdenken und suchen nach einer Lösung, d. H. simulieren Sie direkt die Atmosphäre des Interviews.
Sündige nicht, nur einen Computer zur Lösung von Problemen zu benutzen. Versuchen Sie, auf einem Brett oder Papier zu üben Viele Unternehmen führen auf diese Weise Interviews durch.
Es mag Ihnen so erscheinen, als ob dies ein und dasselbe ist, aber in der Praxis wird das Üben auf Papier viele Überraschungen mit sich bringen, angefangen von der Tatsache, dass Sie zuerst die gesamte Lösung entwickeln müssen, bevor Sie schreiben (Löschen und Rücktaste sind nicht hier, Löschen und Verschieben von Zeilen ist sehr teuer) und endet mit dass der Platz auf dem Blatt / Brett korrekt gespeichert werden sollte, weil es ist begrenzt.
Was Sie während des Interviews beachten, ist das Vertrauen und die Geschwindigkeit, mit der Sie Probleme lösen, alle möglichen Eingabemöglichkeiten durchdenken, Fehler behandeln und verschiedene Bedingungen erfüllen. Daher reicht es nicht aus, nur eine „funktionierende“ Lösung zu schreiben.
Ein guter Rat wäre, kompilierten Code zu schreiben. Ja, zweifellos ist die Hauptsache die Fähigkeit, das Problem und seine Variationen zu lösen, und niemand wird einem fehlenden Komma zu viel Aufmerksamkeit schenken, aber dies sollte nicht in die Regel aufgenommen werden. Sie schreiben Code und echte Lösungen, keinen Pseudocode und Skizzen.
Während des Interviews selbst - versuchen Sie nicht, Ihre Kreativität einzuschränken. Viele Entscheidungen erfordern einen Ansatz aus einem nicht standardmäßigen Blickwinkel. Wenn Sie geschlossen sind - zögern Sie nicht, um Hilfe zu bitten - wird dies Ihre Chancen nicht wesentlich verbessern, aber Sie sollten auch nicht 45 Minuten still stehen.
Dieser Artikel ist möglicherweise keine vollständige und umfassende Anleitung, hilft Ihnen jedoch zu verstehen, in welche Richtung Sie sich bewegen müssen.
Viel Glück an alle in Vorbereitung.