『System Design Interview – An insider’s guide』を読んだ

System Design Interview – An insider's guide (English Edition)

『System Design Interview – An insider’s guide』は、ITエンジニアの採用面接における「システムデザイン面接」への対策方法を解説した書籍。

システムデザイン面接とは、例えば「Facebookのようなニュースフィードシステムを設計してください」とか「チャットシステムを設計してください」といった問題について回答する面接のこと。

日本語でシステムデザイン面接対策を謳った書籍は見たことがないので、日本でこういった質問をする企業はまだ多くないと思われる。しかし、海外では一般化しており、対策書がいくつも出版されている。その中でも、Alex Zu氏による本書は、定番書として人気がある。

この種のコンテンツとしてはSystem Design Primerというオープンソースのコンテンツも人気があり、日本語訳もされている。しかし、個人的には書籍というフォーマットが好きなので、本書を手に取ってみた。

本書は、通して読むことでシステムデザインの基本的な考え方(仕様の明確化、見積もり、スケールさせ方など)が身に付くようになっている。システムデザインのキモは、要件に合わせて適切な技術を選択し、スケールするシステムを設計するところにある。

例えば、Webサービスで利用可能なクライアント・サーバ間の通信技術には色々あるが、チャットのように双方向のコミュニケーションが求められるサービスにはWebSocketが適している。一方で、オンラインステータスの確認のような要件では、双方向通信は要らないのでLong Pollingが適している。このような考え方は、面接だけでなく、業務でシステムを設計するときにも活かすことができる。

英語は平易で読みやすく、英語の技術書に挑戦してみたい、という人にもおすすめできる。

なお、本書のコンテンツはByteByteGoというサイトでオンラインでも提供されている。全てのコースを見るにはサブスクリプション(¥8,291/年)が必要だが、一部のコンテンツは無料で公開されているので、雰囲気をつかみたい人はまずByteByteGoを覗いてみると良いと思う。

ByteByteGoには書籍2冊分(本書『System Design Interview – An insider’s guide』と続編の『System Design Interview – An Insider’s Guide: Volume 2』)のコンテンツがあるので、腰を据えて取り組むつもりならByteByteGoのサブスクリプションに登録するのもおすすめ。

コメントをどうぞ

コメントを残す