Amazonのシステムデザイン面接を準備するための最良の方法は何ですか?


ベストアンサー

経験豊富なすべての候補者の面接を準備するには、システムデザインが必須です。システム設計とは、スケーラブルなシステム設計の問題(Uber、Facebook Newsfeed、webcrawler設計など)を意味します。ご覧のとおり、これらすべてのシステムには数十億のユーザーがアクセスしています。企業はまた、一度に数百万のリクエストを処理できるシステムを設計できるエンジニアを求めています。システムは常に堅牢で待ち時間が非常に短い必要があります。完全な初心者の場合、通常、システム設計の準備には2か月かかります。しかし、はい、それを学ぶにはかなりの努力を払う必要があります。

先に進む前に、システムインタビューがどのように見えるかについて公正な考えを述べさせてください

システム設計ラウンドは常にすべきですから始める

  1. 要件と、システムがサポートするすべてのもの、無視できるすべてのものについての詳細な議論
  2. 要件の後に、インタビュアーがシステムを使用する人数の見積もりについての公正なアイデア
  3. API(REST API)について話し合うユーザーがサービスにアクセスするためのシステムに関与する
  4. 描いてみてください設計の高レベル設計のフローのエンドツーエンド
  5. システムに関係するシステムコンポーネントと、システムコンポーネント間のフローを考えて考え出す
  6. 最後に、システムの低レベルの設計を考え出す

インタビュアーと健全な話し合いをすることが非常に重要ですそして彼/彼女のwhから助けを借りようとします問題を解決する。候補者が優れたチームプレーヤーでもあるという印象を与えるでしょう。解決策を知っていても、インタビュアーと話し合うことなく、設計の問題の解決を開始しないでください。面接官は、要件について公正なアイデアを提供し、ヒントを提供します。あなたが直接それを解決しようとすると、インタビュアーはあなたがすでに解決策を知っていると思い、それはあなたが拒否されるでしょう。

システム設計に基づいて問題を解決する前に、基本を準備することが非常に重要です。以下は、基本のトピックの一部です

システム設計の問題を準備するには、もちろんあなたの経験が役に立ちます。複数のプロジェクト開発ライフサイクルに関与した可能性があるため、面接の過程で回答します。

しかし、ほとんどの候補者は、業界であまり露出されません。 IT担当者の70〜75%は、Apiを追加して小さなコンポーネントを開発する必要があるメンテナンスプロジェクトに取り組んでいます。したがって、取得できなかったプロジェクトの全体像を把握できます。それらの場合は、いくつかの素晴らしいオンラインコース/トレーニングに参加することでシステム設計を学ぶことができます。これらのオンラインリソースは、面接の準備に役立ちます。

  • システム設計は、 Logicmojo コースから学ぶことができます。これは、システム設計とアルゴリズムを準備するためのビデオ講義のオンラインコースです。このコースでは、すべてのシステム設計コンポーネントについての優れた洞察が得られ、インタビューで尋ねられるほとんどすべての設計の質問をカバーします。 40以上の設計上の問題が含まれていますが、これで十分だと思います。
  • 次に、 HighScalability 。これらのブログは、有名なシステム設計問題のシステムコンポーネントの詳細、API、および見積もりの​​一部を提供します。システムの詳細を網羅していますが、有用で関連性のある詳細を抽出する必要もあります
  • また、優れたオンラインコース教育があります。 grokkingシステムデザインコース。これは、システム設計の問題の優れたコレクションでもあります。完全に読んで、テキストベースのリソースとして読む必要があります

また、すべてのデザインミーティングに参加する必要がありますは、オフィスでの現在のプロジェクトで発生します。これは、それらの会議で上級アーキテクトが設計の議論とシステムの既存の設計の欠陥について話し合うためです。これにより、どのシステムの設計を選択するかについての公正なアイデアが得られます。また、過去のプロジェクトの設計ドキュメントを読んで理解するようにしてください。これは、システム設計の面接時にも役立ちます

回答

圧倒されないようにしてください。ステップバイステップで準備し、準備中にそれを分解し、実際の面接になったら同じことを行います。 システム設計には注意が必要です。面接の構造化されていない性質に対処する必要がありますが、特別な練習をすれば、面接で投げかけられたものすべてに対処できるようになります。 。

  • インタビューの目標を理解する-あいまいさを早い段階で明確にすることが重要です。彼らが知りたいことを確実に理解してください。
  • 範囲を確立する-考えているデザインのすべての機能を定義してみてください提供されたシナリオでのユーザーにとっての重要性によって。
  • 適切なスケールの設計-同じ機能セットには、異なるスケール。データが1台のマシンに収まるかどうか、または読み取りをスケーリングする必要があるかどうかを判断するために、スケールを決定することが重要です。
  • 高レベルで開始、次に作業を進めます-設定した目標に基づいて、エンドツーエンドのプロセスをカバーすることから始めます。これには、さまざまなクライアント、API、バックエンドサービス、オフラインプロセス、ネットワークアーキテクチャ、データストア、および要件を満たすためにそれらすべてをどのように組み合わせるかについての詳細が含まれる場合があります
  • データ構造とアルゴリズム-ランタイムとメモリの複雑さの分析が便利になるスケーリング要件を考慮することを忘れないでください。

アマゾンでの会議に至るまでの数週間で可能な限り練習します。面接の準備と一貫性を保ち、面接に至るまでの数週間でそれを毎週のルーチンにスケジュールすることが、作成の最大の助けになります。準備ができていることを確認してください。質の実践も量よりも重要です。セッション中に気が散らないようにし、目前の問題に集中して、自分にとって難しいことに取り組んでください。簡単なことだけを練習すると、実際の面接中に不快な驚きやストレスを感じることになります。

面接のスキルを向上させる優れた方法は、模擬面接セッションを使用することです。この経験により、採用マネージャーと会ったときの気持ちに慣れることができます。開始するには、ピアツーピアの模擬面接プラットフォームである Pramp を確認してください。

Prampは、ユーザーに模擬システム設計の面接の練習を提供しますピアと連携する。一緒に面接官と面接対象者の両方の役割を果たし、彼らの長所と短所からも学ぶことができます。他の誰かがシステム設計の面接を完了するのを見て、面接官の視点からそれを見るのは有益です。 また、経験後にフィードバックを受け取ります。これを使用して、Amazonの採用マネージャーと会う前に作業する必要のあるコンポーネントを特定できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です