第59回のデッドライン読書会の課題図書は「システム設計の面接試験」でした。
本当は19日が締切でしたが、多忙にかまけて1週間2週間遅れての投稿です(先週書いているときに熱が出てきて途中で断念しました)。今回はKindleで読みました。
ByteByteGo
著者のアレックス・シュウ氏のことは著者で初めて知りました。ByteByteGoというコンサル会社(?)のCEOのようです。Youtubeで「システム設計」に関連する技術の概要を解説するショートなコンテンツをいくつも配信されています。
こういうのとか:「Top 6 Most Popular API Architecture Styles」
概要を掴むのに(知識を仕入れるのに)とても良いコンテンツ。動画の音声は英語ですが、Youtubeの自動翻訳を使えば日本語字幕が出るので、英語が得意でなくても支障はないです。動画のコンテンツのクオリティ自体が高くて素晴らしい。
本書の感想
本書の感想はかなりネット上に上がっています。流行ってましたっけ…?デッドライン読書会をやっているkent4989さんの感想文はこちら。
システム設計面接のかたち
ビッグテックなどで行われている「システム設計の面接」を疑似体験できるコンテンツになっている。題材は、こんな感じ。
- レートリミッターの設計
- コンシステントハッシュの設計
- キーバリューストアの設計
- 分散システムにおけるユニークIDジェネレータの設計
- URL短縮サービスの設計
- Webクローラの設計
- 通知システムの設計
- ニュースフィードシステムの設計
- チャットシステムの設計
- 検索オートコンプリートシステムの設計
- Youtubeの設計
- Googleドライブの設計
どれもひょえ〜って感じ。扱っている技術要素も複数含まれており、ぱっとみた難易度は高い。システム設計の面接の様子も解説されているが、1時間ほどの面接時間で扱うそうな。
口頭試問でなかく、ディスカッション
意外に感じたのは面接の進め方です。口頭試問(面接官が聞いて、受験者が一方的に説明する)ではなく、面接にいる場の全員でディスカッションをする形態が取られることが多いようです。例えば、
- 題材は与えられる
- 参加者で、要件やスコープ、条件、制約を質疑・議論を通し合意する
- 受験者が、初期の設計を、どこかに書きながらや考えを口に出しながら作成する
- 参加者で、重要な点・拡張の観点を提示しながら、設計を深掘りする
大事なことは、受験者の能力が一定水準にあることを測ることではなく、チームメンバーとして違和感なく共に仕事ができることを確認するといったことが目的なんでしょう。自分も最近はキャリア採用を担当することもあるので、目からウロコです。ディスカッションしながらお互いの言葉が合うか合わないかを確認するっていいですね。今度チャレンジしてみよう。
次の本は
次回は今話題の牛尾さんの本です。
コメント