Bevorstehendes Google-Interview, auf der Suche nach Vorbereitungshinweisen [geschlossen]


29

Nun, ich habe die Bücher angeschlagen, wo immer ich kann. Ich habe ein Interview, das zuerst per Telefon für eine Position als Software-Ingenieur ansteht. Ich habe alle Blog-Beiträge gelesen, ich habe alle Berichte über Interviews gelesen (einige davon sind ziemlich alt), und Google selbst hat sogar eine Leseliste mit Büchern vorgeschlagen, von denen hier keiner überrascht. Nach einiger Zeit der Vorbereitung kann ich das Gefühl nicht loswerden, dass es einen so großen Untergrund gibt, und ich bin mir nie sicher, ob ich mit Tiefe oder Breite vorgehen soll. Ich habe einen ganzen Bereich von compsci neu gelernt, nur um die meisten Details zu vergessen, wenn ich zu einem anderen übergehe.

Ich weiß also nicht, ob es eine gute Antwort auf diese Frage gibt, aber ich suche praktische Ratschläge, wie ich die verbleibenden Wochen vor dem Interview angehen kann. Ein Teil meines Gehirns ist müde vom Pauken und natürlich muss der Rest für einige schwierige Probleme an meinem derzeitigen Arbeitsplatz verwendet werden.


3
Dies könnte bei careeroverflow.com IMHO besser geeignet sein. Außerdem sagen Sie nicht das Niveau der Position, wie Anfänger, Senior usw., und Ihren Hintergrund, so dass viel für die Annahme übrig bleibt.
vpit3833

3
@Fast Fish: Weißt du was? Machen Sie einen IQ-Test, und wenn Sie über 135 Punkte bei Google oder bei keinem Google erzielen, wissen Sie, dass Sie es haben.
Fanatic23

9
Es ist toll hier, da es um Programmierer geht ??? Warum klassifizieren und organisieren Menschen mit höheren Wiederholungszahlen gerne Dinge bis hinunter zum Quark?
Jonathan.

3
Es gibt bereits viele Fragen zum Vorstellungsgespräch. Wie ist deine Frage anders? Wenn Ihre Antwort "Google" ist, dann ist es hier nicht richtig. Es gibt unzählige Websites, die sich mit Google-Interviews befassen. Viele von ihnen bieten Ihnen bessere Informationen als diese.
Nicole

2
Und Sie nehmen an, Ihr bevorstehender Interviewer lauert nicht auf P.SE? :)
Haylem

Antworten:


30

Dinge, die Sie wissen sollten

  • Google möchte Sie einstellen!

    Das Herzblut eines Softwareunternehmens sind seine Mitarbeiter, und Google ist nicht anders. Es geht darum, die Besten und Klügsten einzustellen, und die Leute, die die Interviews führen, möchten, dass Sie genauso erfolgreich sind wie Sie.

  • Google bemüht sich, Sie so genau wie möglich zu bewerten. Es ist ihre Aufgabe.

    Google ist ein datengetriebenes Unternehmen. Einstellungsentscheidungen werden nicht von Manager Fiat getroffen. Stattdessen macht sich jeder Interviewer während des Interviews umfangreiche Notizen, die zu einem Paket zusammengefasst werden. Dieses Paket wird dann von einem separaten Ausschuss geprüft , der letztendlich die Entscheidung trifft. Also, wenn Sie nicht mit einem Ihrer Interviewer „geliert“ haben, machen Sie sich keine Sorgen! Was zählt, ist, wie gut Sie im Interview abschneiden.

Fähigkeiten, die Sie haben sollten

Stellen Sie sicher, dass Sie vor dem Vorstellungsgespräch die folgenden Fähigkeiten / Techniken auffrischen. Auch wenn Sie nicht direkt eine Frage zu diesen Themen erhalten, können Sie sich durch eine Überprüfung sicher ein Bild von der richtigen Denkweise machen.

  • Datenstrukturen

    Was ist der Unterschied zwischen einem Array und einer verknüpften Liste? Ein Baum und eine Grafik? Wann würden Sie eins übereinander verwenden? Wie würde sich das auf Geschwindigkeits- / Speicher-Kompromisse auswirken?

    Eine Interviewfrage endet nicht mit einer funktionierenden Lösung. Erklären Sie die Laufzeit Ihres Ansatzes und welche Kompromisse Sie eingehen können. Zum Beispiel: "Wenn ich alles zwischengespeichert hätte, würde es X GB RAM benötigen, würde aber eine schnellere Leistung erbringen, weil ...". Oder: "Wenn ich den Binärbaum sortiert halten würde, während ich die Operationen durchführe, wäre X langsamer, Y wäre schneller usw."

  • Algorithmen

    Grundlegende Algorithmen zum Durchlaufen von Graphen, Algorithmen zum Durchlaufen von Bäumen und zwei gute Ansätze zum Sortieren von Zahlen.

    Üben Sie unbedingt, ein nicht triviales Problem mithilfe der dynamischen Programmierung zu lösen. Das ist Ihr Ass, wenn es um schwierige Interviewfragen geht!

  • Hash-Tabellen

    Das ist riesig. Wissen Sie alles, was Sie über Hash-Tabellen wissen müssen, von der Möglichkeit, eine selbst zu implementieren, über Hash-Funktionen und warum die Anzahl der Buckets eine Primzahl sein sollte. Die mit Hash-Tabellen verbundenen Konzepte sind für nahezu jeden Bereich der Informatik relevant.

  • Ich rede über dich

    Die ersten Minuten des Plauderns mit dem Interviewer sind eine wichtige Zeit, um jede Art von Erfahrung zu erklären, die Sie von anderen unterscheidet. Relevante Projekte, bedeutende technische Leistungen und dergleichen. Denken Sie daran, dass die Person, die das Interview leitet, Dutzende, wenn nicht Hunderte kluger Leute wie Sie interviewt hat. Was können Sie also sagen, das sie überraschen würde?

    Zum Beispiel habe ich in einem Interview mit dem Interviewer über ein Programm gesprochen, das ich geschrieben habe, um Go in College zu spielen. Es ist sehr schwierig, eine KI für das Go-Spiel zu schreiben, und ich habe einen schrecklichen Go-Bot, der das beweist! Das Fazit ist, dass Sie selbst sind und nicht irgendeine kluge Person, die programmieren kann.

Stress dich nicht zu sehr aus, es ist nur ein Interview wie jedes andere. Seien Sie versichert, dass Ihnen niemand dumme Fragen zu Schachtabdeckungen oder zum Berg stellen wird. Fuji.


7

Entspannen Sie Sich

Wenn dein Interview so ist wie meins, ist der Interviewer nicht da, um dich zur Unterwerfung zu bringen, er ist da, um zu sehen, wie du denkst .

EDIT: Dies war nur das erste Telefoninterview, ich weiß nichts weiter als das ... und wenn ja, könnte ich es dir wahrscheinlich sowieso nicht sagen!


2
Hast du den Job bekommen?
Manoj R

1
@Manoj: lol - nein, aber darum geht es nicht. ich wollte eigentlich nicht den job, für den sie interviewten, war aber neugierig auf den prozess und die möglichkeiten. Ich hatte / habe nicht die Absicht, nach Kalifornien zu ziehen!
Steven A. Lowe

2

Den folgenden Artikel von http://get-that-job-at-google.blogspot.in/ ausgeliehen

Coding Knowledge C / C ++ und Java sind die bevorzugten Programmiersprachen für Google Interviewer. Sie müssen mindestens einen von ihnen wirklich gut kennen. Es wird erwartet, dass Sie Code in die Telefon-Bildschirm-Interviews und in die Vor-Ort-Interviews schreiben.

Empfohlene Bücher für CS-Interviews : Einführung in Algorithmen - Von Cormen

Programmierung Interviews ausgesetzt

Cracking the Coding Interviews

Algorithmen für Interviews

Empfohlene Websites für die Codierungspraxis : InterviewStreet, Topcoder

Big-O Dies sollte der Ausgangspunkt für die Vorbereitung eines algorithmischen Interviews sein. Sie müssen sich nicht mit grundlegenden Komplexitätsanalysen herumschlagen, da dies garantiert, dass Sie nicht eingestellt werden. Sie sollten mit den Bezeichnungen O, Θ und Ω vertraut sein und sie verstehen. Ich empfehle, den Abschnitt zur Komplexitätsanalyse aus dem Buch Datenstrukturen und Algorithmen zu lesen.

Sortieren Sie sollten in der Lage sein, mit Leichtigkeit Algorithmen O (n * lgn) wie QuickSort und MergeSort zu schreiben. Vergleichen und verstehen Sie die besten, schlechtesten und durchschnittlichen Komplexitäten. Ich fand diese Tabelle im Wiki sehr praktisch; Es listet wichtige Eigenschaften aller Sortieralgorithmen auf. Vernachlässigen Sie nicht die grundlegenden O (n ^ 2) -Algorithmen wie Bubble-Sortierung oder Insertion-Sortierung, da sich andere Algorithmen gegenüber diesen verbessern. In Interviews geht es mehr um die Verbesserung einer Grundidee. Sortieralgorithmen helfen dabei.

Hash-Tabellen Wenn Sie Zweifel haben, denken Sie an Hash-Tabellen. Sie sind bei den meisten Problemen hilfreich und helfen uns häufig, die zeitliche Komplexität einiger Probleme durch Zwischenspeichern von Ergebnissen zu verbessern.

Bäume Führen Sie grundlegende Baumkonstruktions-, Traversal- und Manipulationsalgorithmen durch. Sie sollten in der Lage sein, Algorithmen basierend auf binären Suchbäumen zu implementieren. Sie sollten mit ausgeglichenen Bäumen vertraut sein, obwohl nicht erwartet wird, dass Sie Code für sie im Interview schreiben: AVL-Bäume, rot-schwarze Bäume, Trie-Bäume, N-Bäume usw. Grundlegende Kenntnisse über Inorder-, Postorder- und Preorder-Traversals sind erforderlich, da Wir können viele Baumprobleme lösen, indem wir eine dieser Traversen einfach modifizieren.

Grafiken Grafiken sind ein sehr wichtiges Konzept in der Informatik. Üben Sie die drei grundlegenden Darstellungen von Diagrammen (Objekte und Zeiger, Matrix und Adjazenzliste) und machen Sie sich mit deren Vor- und Nachteilen vertraut. Da während des Interviews nicht viel Zeit bleibt, sollten Sie nicht mit etwas sehr Komplexem rechnen. Grundlegende Graph-Traversal-Algorithmen (DFS und BFS) sind jedoch ein Muss. Sie sollten sie in allen grundlegenden Darstellungen implementieren. Sie sollten in der Lage sein, die Dijkstra- oder Floyd-Warshall-Algorithmen sowie die Minimum-Spanning-Tree-Algorithmen (Kruskal und Prim) zu implementieren. Informieren Sie sich über die topologische Sortierung, da sie bei vielen Bestellproblemen überraschend hilfreich ist.

Dynamische Programmierung Dies ist wahrscheinlich das wichtigste Thema, da die Implementierungen klein sind. Sie sollten in der Lage sein, 2-3 dynamische Algorithmen innerhalb von 35-40 Minuten zu implementieren. Wenn Sie die Ressourcen in diesem Blog oder im Web überprüfen, sollten Sie mindestens eine dynamische Programmierfrage pro Interview erwarten.

Betriebssysteme Erfahren Sie mehr über Prozesse, Threads und Parallelitätsprobleme. Kennen Sie Mutexe, Semaphoren, Monitore und deren Funktionsweise. Verstehe, was Deadlock und Livelock sind und wie man sie vermeidet. Erfahren Sie mehr über Kontextwechsel, Zeitplanung usw.

Mathematik Sie sollten sich mit Zählen, Kombinatorik und Wahrscheinlichkeit vertraut machen.

Googles Veröffentlichungen Lesen Sie die unten aufgeführten wegweisenden Veröffentlichungen von Google, wenn Sie Zeit haben. Google-Dateisystem

Google Bigtable

Google MapReduce


Sie sollten den relevanten Text hier posten und Link-Rot vermeiden.
Tödlicher

Entschuldigung, ich bin neu in diesem Forum. Ich habe meine Antwort verbessert
Uhr

1
"... Java ... bevorzugte Programmiersprachen für Google" Das wusste ich nicht. Erklärt, warum Chrome die Ressourcen dreimal so häufig verwendet wie andere Browser. (Knock knock. Wer ist da? ... lange Pause ... Java!)
Josh Campbell

1

Wenn Sie die letzten paar Monate im Careercup verbracht haben, können Sie es sich leisten, sich zu entspannen. Was in diesem Moment im Interview passiert, kann nicht geplant werden, sondern sollte entspannter sein und die Energie haben, die Runden zu überstehen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.