書籍タイトル:システム設計の面接試験
読む時間:06:00
はじめに
この間、バックエンドの詳細設計をメインで行っていたのですが、システム間連携の際のAPIアクセス回数やリトライ処理、データ投入時のCPF負荷など、細かいパフォーマンス面で考慮が足りていないと感じる場面がありました。
こういった細かい部分は、実際に経験しないとなかなか思いつかないものです。「どうしようもないかな…」と思っていたときに、出会ったのがこの本です。
夫に紹介してもらった洋書の翻訳本で、普段から勉強になっているYouTubeチャンネル「ByteByteGo」のチームが作った一冊です。設計やパフォーマンスを考える上で、非常に参考になりました。
📚 本書の詳細情報
印象に残ったポイント(今回は一つしかないですが)
欧米のエンジニア面接はとして厳しい
欧米では、エンジニアの面接時にシステム設計試験があり、短時間で面接官から要件をヒアリングし、システムの全体像を設計する必要があります。新卒という概念がないため、未経験や経験が浅いことは同情されず、完全に実力主義で「できる人」「できない人」が即座に判断されます。
こうした背景もあって、システム設計「面接」を学ぶためのテキストが数多く誕生しました。「LINEのようなチャットツール」「Googleドライブ」「YouTubeのような動画視聴システム」など、普段なかなか経験できないシステムを題材に、基本的な設計や設計時の考慮点、ユーザーが気にしそうなポイントなどを重点的に紹介してくれています。
私は台湾出身ですが、台湾も欧米同様に「新卒」の概念がなく、エンジニアは自力で学校や独学で学び、少なくとも日本でいう三年目レベルの実力を積んでいないと就職が難しい状況です。
エンジニアのスキルは配属された案件に大きく左右されるため、いきなり「YouTubeの設計をしてください」と言われても、多くの人は正直「え?」となると思います。そういう意味でも、このようなテキストは、「面接対策」として非常に助かります!
まとめ・感想
面接対策のために本書を購入したわけではありませんが、仕事中にいきなり「○○を作りたい」と言われたときに、冷静に即座で適切なアドバイスをアウトプットできる力を身につけたいと思っています。
その点で、本書は世の中によくあるシステムを幅広く紹介してくれているので、予習の教材としてとても助かります。