テクニカルコーディング面接準備のためのベストブック

技術的なコーディングの面接は非常に難しいことで有名です。準備ができていない人にとっては、ほぼ境界線のクイズのようです。オンラインで利用できるすべての技術的なコーディング準備リソースをナビゲートすることは、時には困難な作業になる可能性があり、技術的なコーディングのインタビューに最適な準備をする単一の本/リソースはありますか?

ベストは、この場合には当然の相対的です。コーディングの質問を解決する方法を教え、10億人のユーザーに対応するInstagramのようなものを設計する方法をガイドし、その間にサンドイッチを作る本を探しているなら、この本は間違いなくそうですね。

しかし、あなたの技術的なチョップを磨き、面接でプログラミングの課題に直面する準備ができていることを確認するために、この本はそれに非常に近いです。

今日の書評では、Amazonで最も売れている技術的なコーディングインタビューの本の1つであるプログラミングインタビューの要素(別名EPI、および残りの部分ではそのように呼ばれます)の良い点悪い点について詳しく説明します。この記事の)。

この本は何についてですか?

EPIは、ハイテク企業でよく聞かれる技術的なソフトウェアエンジニアリングの面接の質問の準備に焦点を当てた本です。あなたがソフトウェアエンジニアとしての地位を探しているなら、この本はあなたのために何かを持っているでしょう。

EPIは、Facebook、Google、Uber、Microsoftなど、世界で最も有名なテクノロジー企業のいくつかで働いてきた3人の人々によって書かれました。著者は非常に強力な技術的背景を持っており、これは本の内容の技術的焦点によって証明されています。

この本自体は本質的に非常に技術的であり、基本的なコンピュータサイエンスを深く掘り下げています。技術的なコーディングの質問の種類は、文字列の操作からグラフの走査まで大きく異なります。この本はまた、特定のタイプのコーディング問題を解決するための具体的なヒントとコツを提供し、技術的な質問に答えるのに役立つ虎の巻が含まれています。

いいもの

つまり、EPIは非常に技術的な本であり、データ構造とアルゴリズムを中心に展開する技術的なコーディングの質問の準備を探している人に最適です。

私が特に楽しんだこと:

  • 170以上しかない別の人気のある本(Cracking The Coding Interview)と比較して、詳細な回答を含む多くの質問(300以上)があります
  • Java、Python、C ++の3つのバージョンがあります。選択した言語を使用したい人に適しています
  • 必要なすべての手法とデータ構造をまとめた優れたチートシート(第4章)があります
  • 必要なすべてのデータ構造、知っておくべきアルゴリズム、知っておくべきテクニックを、シンプルでわかりやすい形式で詳細に説明しています。
  • TCP / IPとは何か、インターネットの仕組み、スキーマ設計でさまざまなエンティティ間の関係をキャプチャする方法など、コーディングインタビューで尋ねられる可能性のある関連技術トピックについて説明します。

これらは私がこの本について楽しんだトップレベルのポイントのいくつかです。私が本当に楽しんでいるのは、答えが非常よく構成されていることです。

多くの場合、答えは問題に対してブルートフォース/単純なアプローチを取ります。次に、著者は、ブルートフォースアプローチを改善する方法の具体例を示します。反復ごとに、著者は制限がどこにあるか、そして増分最適化でそれらをどのように解決できるかを指摘します。

たとえば、EPIは、リンクリストでサイクルを検出する方法を説明しています。最初のアプローチ:ハッシュマップを使用して、トラバースするすべてのノードを保存し、ハッシュマップと照合して、それが表示されているかどうかを確認します。これは、追加のスペース(いわゆるO(N)スペースの複雑さとO(N)時間の複雑さ)を必要としますが、仕事をします。

次に、この本は、追加のスペースは不要であると指摘し、代わりにポインターを操作することで、リンクリスト内のサイクルの検出を追加のスペースなしで実行できることを示唆しています。

ほぼすべての質問を説明するのに同じアプローチを採用しているため、大まかな解決策から最適化された解決策に至る方法を誰もが理解できます。

さびでインタビューの準備を始めようとしている人にとって、EPIは素晴らしい仕事をします。すべての章は、学習するデータ構造またはアルゴリズムの要約、データ構造が特別である理由、の長所/短所は何かから始まります。データ構造と注意する必要があることを述べました。

要するに、EPIは、技術面接の準備をしているときに持っていたかったノートブックです。これは、技術面接の準備を探している友人に贈る本です。これは、履歴書の準備、行動に関する質問から方法まで、面接体験全体の候補者を準備するベストセラーの面接コース(Acing The Tech Interview)を除きます。コーディングの問題を創造的に解決します。クラスはすぐに満員になるので、今日ここでスロットを予約してください。

悪い人

EPIには欠点もあります。非常に技術的な本であるため、これは本がコーディングの質問に焦点を合わせていることを意味します。

これは、うっかりして、この本が技術面接プロセスの他の側面に関して不十分であることを意味します。これは、間違いなく同じくらい重要です—提案交渉、説得力のある履歴書の書き方、申し出を受けたときの対処方法、行動に関する質問などを処理します。

さらに、この本ではデータ構造とアルゴリズムについて詳しく説明していますが、SQL、NoSQL、SQL、NoSQL、設計方法など、他のさまざまな重要な概念について、コンテキストが不足しているために混乱するほどの高レベルの概要しか提供していません。単純なアプリケーションなどに適したスキーマ。

この本は、エンティティの関係をキャプチャするためにテーブルを構造化する方法を説明することでSQL設計をカバーしていますが、JOINやテーブルを適切にクエリする方法については詳しく説明していません。(SQLテーブル)を理解することは、どのように(クエリ)すると同じくらい重要だと思います。

EPIにはシステム設計に関する章もありますが、この章では分散設計については説明していません。この本で、分散システムとは何か、または分散システムに関する詳細情報がどこにあるかについて詳しく説明されていれば、もっと良かったと思います。

これは私にとって良い本ですか?

余裕があり、学ぶ意欲が高い場合は、そう思います。

この本は平均36ドルで売られています(3つのバージョンがあります)。この本はAmazon.comで高く評価されており、3つのバージョンすべてで平均4.53つ星です。統計は次のとおりです。

Amazon.com:

3つのバージョン(3月12日現在):

  • Python:169の評価4.3 ave
  • Java:203の評価4.6 ave
  • C ++:436の評価4.7 ave

合計で808件のレビューがありました。

レビューのいくつか:

「..私が今までに取った中で最高のアルゴリズム/データ構造」「コードは高品質で、意味のある変数名を使用しています」「これは必携の本です」

今、あなたはそれを買うべきですか?

EPIは、技術的なコーディング面接の準備に最適なリソースの1つだと思いますあなたの経験レベルに関係なく、あなたのためにそこに何かがあります。私はこの本を明確で簡潔な説明で読むことを特に楽しんでおり、この本をプログラミングコースの参考として使用しています。

1冊の読みやすい本で知っておく必要のあるすべてのデータ構造とアルゴリズムが必要な場合は、EPIが最適です。

分散システムの設計については、他の場所を探すことをお勧めします。良いスタートは、データ集約型アプリケーションの設計です。

深みと洞察力が大好きで、私のコースを受講している多くの学生にもお勧めします。

おすすめのリソース

データ集約型アプリケーションの設計—分散システムと大規模システムの仕組みについて学ぶための優れたリソース。

技術面接のエース—技術面接のエース方法に関する私のベストセラーのパーソナルコーチングコース。履歴書のレビュー、技術的なコーディングのインタビュー、行動に関する質問などをカバーしています。

分散システム設計インタビューのエース—大規模分散システムの設計に関する私の個人的なコーチングコース。Instagram Stories、Groupon、Netflixなどの映画ストリーミングサイトなどの機能を大規模に設計する方法について学びます。