Das beste Buch für die technische Codierung Interview Prep

Technische Codierungsinterviews sind notorisch schwierig - für Unvorbereitete fast grenzwertig quizartig. Es kann manchmal eine entmutigende Aufgabe sein, alle online verfügbaren Ressourcen zur Vorbereitung der technischen Codierung zu durchsuchen, und man könnte sich fragen: Gibt es ein einziges Buch / eine Ressource, die sich am besten auf Interviews zur technischen Codierung vorbereitet?

Am besten ist in diesem Fall natürlich relativ. Wenn Sie nach einem Buch suchen, in dem Sie lernen, wie Sie Codierungsfragen lösen, wie Sie etwas wie Instagram entwerfen, das auf eine Milliarde Benutzer skaliert, und Ihr Sandwich machen, während Sie gerade dabei sind, dann ist dieses Buch definitiv ist es nicht

Aber um Ihre technischen Probleme zu lösen und sicherzustellen, dass Sie gut auf die Programmierherausforderungen in einem Interview vorbereitet sind, kommt dieses Buch dem verdammt nahe.

In der heutigen Buchbesprechung gehe ich detailliert auf das Gute und das Schlechte eines der meistverkauften Bücher bei Amazon für technische Codierungsinterviews ein: Elemente von Programmierinterviews (auch bekannt als EPI) , und im Rest wird es als solches bezeichnet dieses Artikels).

Worum geht es in diesem Buch?

EPI ist ein Buch, das sich auf die Vorbereitung auf Interviewfragen zum technischen Software-Engineering konzentriert, die in Technologieunternehmen häufig gestellt werden. Wenn Sie eine Stelle als Softwareentwickler suchen, hat dieses Buch etwas für Sie.

EPI wurde von drei Leuten geschrieben, die in einigen der bekanntesten Technologieunternehmen der Welt wie Facebook, Google, Uber und Microsoft gearbeitet haben. Die Autoren haben einen sehr starken technischen Hintergrund, und dies wird durch den technischen Fokus im Inhalt des Buches belegt.

Das Buch selbst ist hochtechnischer Natur und taucht tief in die grundlegende Informatik ein. Die Arten der technischen Codierungsfragen variieren stark von der Zeichenfolgenmanipulation bis zum Durchlaufen von Diagrammen. Das Buch bietet auch konkrete Tipps und Tricks zur Lösung bestimmter Arten von Codierungsproblemen sowie ein Cheatsheet, um technische Fragen zu beantworten.

Die gute

Kurz gesagt: EPI ist ein hochtechnisches Buch, das sich gut für alle eignet, die sich auf technische Codierungsfragen vorbereiten möchten, die sich um Datenstrukturen und Algorithmen drehen.

Die Dinge, die mir besonders gut gefallen haben:

  • hat viele Fragen (300+) mit detaillierten Antworten, verglichen mit einem anderen populären Buch (Cracking The Coding Interview), das nur 170+ hat
  • Es gibt 3 verschiedene Versionen: Java, Python und C ++. Geeignet für Personen, die die Sprache ihrer Wahl verwenden möchten
  • hat ein großartiges Cheatsheet (Kapitel 4), das alle Techniken und Datenstrukturen zusammenfasst, die Sie benötigen
  • behandelt detailliert jede einzelne Datenstruktur, die Sie benötigen, Algorithmen, die Sie kennen sollten, und Techniken, die Sie kennen sollten, in einem einfachen, verständlichen Format
  • behandelt relevante technische Themen, die Sie möglicherweise in einem Codierungsinterview gestellt bekommen, z. B. TCP / IP, die Funktionsweise des Internets und das Erfassen von Beziehungen zwischen verschiedenen Entitäten im Schemadesign

Dies sind einige der wichtigsten Punkte, die mir an dem Buch gefallen haben. Was mir wirklich Spaß macht ist, dass die Antworten sehr, sehr gut konstruiert sind.

Die Antworten gehen oft mit einer brutalen / simplen Herangehensweise an die Probleme vor. Die Autoren liefern dann konkrete Beispiele dafür, wie Sie den Brute-Force-Ansatz verbessern können. Bei jeder Iteration weisen die Autoren darauf hin, wo die Einschränkungen liegen und wie Sie sie mit inkrementellen Optimierungen lösen können.

In EPI wird beispielsweise erläutert, wie ein Zyklus in einer verknüpften Liste erkannt wird. Der erste Ansatz: Verwenden Sie eine Hash-Map, um jeden Knoten zu speichern, den Sie durchqueren, und überprüfen Sie dann anhand der Hash-Map, ob Sie sie gesehen haben. Dies erledigt die Aufgabe, obwohl es zusätzlichen Platz benötigt (sogenannte O (N) -Raumkomplexität und O (N) -Zeitkomplexität).

Das Buch weist darauf hin, dass der zusätzliche Speicherplatz nicht erforderlich ist, und schlägt vor, dass das Erkennen von Zyklen in einer verknüpften Liste ohne zusätzlichen Speicherplatz durchgeführt werden kann, indem stattdessen die Zeiger bearbeitet werden.

Bei der Erklärung fast aller Fragen wird derselbe Ansatz verwendet, sodass jeder verstehen kann, wie er von einer groben zu einer optimierten Lösung gelangen kann.

Für jemanden, der verrostet ist und sich auf Interviews vorbereiten möchte, leistet EPI hervorragende Arbeit - jedes Kapitel beginnt mit einer Zusammenfassung der Datenstruktur oder des Algorithmus, die Sie lernen werden, warum die Datenstruktur besonders ist und welche Stärken / Schwächen sie haben besagte Datenstruktur und was Sie zur Kenntnis nehmen müssen.

Kurz gesagt, EPI ist das Notizbuch, das ich mir gewünscht hatte, als ich mich auf technische Interviews vorbereitete. Dies ist das Buch, das ich einem Freund geben möchte, der sich auf technische Interviews vorbereiten möchte - abgesehen von meinem meistverkauften Interviewkurs (Acing The Tech Interview), der jeden Kandidaten auf die gesamte Interviewerfahrung vorbereitet, von der Vorbereitung des Lebenslaufs über Verhaltensfragen bis hin zur Frage, wie Codierungsprobleme kreativ zu lösen. Der Unterricht füllt sich schnell, also buchen Sie noch heute Ihren Platz hier.

Das Schlechte

EPI hat auch seine Nachteile. Da es sich um ein hochtechnisches Buch handelt, konzentriert sich das Buch auf das Codieren von Fragen.

Dies bedeutet versehentlich, dass das Buch in Bezug auf andere Aspekte des technischen Interviewprozesses, die wohl genauso wichtig sind, zu kurz kommt - Angebotsverhandlungen, wie man einen überzeugenden Lebenslauf schreibt, was zu tun ist, wenn man ein Angebot erhält, wie Verhaltensfragen usw. behandeln.

Darüber hinaus geht das Buch detailliert auf Datenstrukturen und Algorithmen ein, bietet jedoch nur einen allgemeinen Überblick über verschiedene andere wichtige Konzepte wie SQL, NoSQL und das Entwerfen eines richtiges Schema für eine einfache Anwendung und mehr.

Das Buch behandelt das SQL-Design, indem es erklärt, wie Tabellen strukturiert werden, um Entitätsbeziehungen zu erfassen, aber es erklärt nicht mehr über JOINs oder wie die Tabellen richtig abgefragt werden. Ich denke, das Was (SQL-Tabellen) zu verstehen ist genauso wichtig wie das Wie (Abfragen).

EPI hat auch ein Kapitel über Systemdesigns, aber das Kapitel behandelt keine verteilten Designs. Mir wäre es besser gefallen, wenn das Buch detaillierter beschrieben hätte, was verteilte Systeme sind oder wo man weitere Informationen dazu findet.

Ist das ein gutes Buch für mich?

Wenn Sie ~ 40 $ übrig haben und einen großen Appetit zu lernen haben, würde ich das sagen.

Das Buch kostet durchschnittlich 36 US-Dollar (es gibt 3 Versionen). Dieses Buch wird auf Amazon.com mit durchschnittlich 4,53 Sternen in allen drei Versionen hoch bewertet. Die Statistiken lauten wie folgt:

Auf Amazon.com:

3 Versionen (Stand 12. März):

  • Python: 169 Bewertungen 4.3 ave
  • Java: 203 Bewertungen 4.6 ave
  • C ++: 436 Bewertungen 4.7 ave

Insgesamt gab es 808 Bewertungen.

Einige der Bewertungen:

".. der beste Algorithmus / die beste Datenstruktur, die ich je genommen habe" "Der Code ist von hoher Qualität und verwendet aussagekräftige Variablennamen" "Dies ist ein Muss"

Solltest du es jetzt kaufen?

Ich denke, dass EPI eine der besten Ressourcen ist, um sich auf technische Codierungsinterviews vorzubereiten, abgesehen von keiner. Unabhängig von Ihrer Erfahrung ist etwas für Sie dabei. Ich lese das Buch besonders gerne wegen seiner klaren und prägnanten Erklärungen und verwende dieses Buch als Referenz in meinem Programmierkurs.

Wenn Sie alle Datenstrukturen und Algorithmen, die Sie kennen müssen, in einem einzigen, einfach zu lesenden Buch haben möchten, ist EPI das richtige Buch für Sie.

Für verteilte Systemdesigns empfehle ich, woanders zu suchen. Ein guter Anfang ist das Entwerfen datenintensiver Anwendungen.

Ich liebe es für die Tiefe und die Einsichten, und ich empfehle es vielen Studenten, die auch an meinen Kursen teilnehmen.

Ressourcen, die ich empfehle

Entwerfen datenintensiver Anwendungen - eine großartige Ressource, um mehr über verteilte Systeme und die Funktionsweise großer Systeme zu erfahren.

Acing The Technical Interview - mein meistverkaufter persönlicher Coaching-Kurs zum Erstellen technischer Interviews. Wir behandeln Lebenslaufüberprüfung, technische Codierungsinterviews, Verhaltensfragen und mehr.

Acing The Distributed Systems Design Interview - mein persönlicher Coaching-Kurs zum Entwerfen großer verteilter Systeme. Erfahren Sie, wie Sie Funktionen wie Instagram Stories, Groupon und Film-Streaming-Sites wie Netflix maßstabsgetreu gestalten.