【讀書心得】內行人才知道的系統設計面試指南
書籍資訊:
書名:內行人才知道的系統設計面試指南
原文書名:System Design Interview – An insider’s guide
作者: Alex Xu
譯者: 藍子軒
出版社: 碁峰資訊
出版日期:2021/09/27
ISBN:9865028859
ISBN-13:9789865028855
心得:
《內行人才知道的系統設計面試指南》,我認為這個書名翻譯很恰當,閱讀中可以體會到本書的作者確實是一個內行人,同時也點出系統設計面試指南這個主軸。
面試指南這部分是沒問題的,作者提出了許多不同層級與難度的主題,主題難度從簡到繁,細節程度從高到低。在這些主題中嘗試利用模擬對話表達出我們如何在時間有限的面試中,針對主題大小做不同抽象程度的討論,讀完本書確實能提升面試能力。
不過要記住本書是一本教你系統設計面試而不是系統設計的書。為了討論各種層級的主題,本書提到的系統設計主題非常廣泛,每一章都足以被單獨拉出來寫成一本書的程度,對於不少系統設計技巧的內部運作、副作用討論的都很輕描淡寫。
同時在書中解決系統設計問題時很少依賴現有開源工具來當作設計方案,會直接提出該問題需要使用的演算法、資料結構本身,雖然這使得書中的討論較不易受到程式語言、套件更新而降低實用性,但又更加重了本書系統設計的廣度。僅看完本書讀者,若是沒有其他經驗相輔是很難有能力實作出書中方案的。
取而代之的是,當解決方案過於複雜無法在書中詳述時,作者會針對該議題提供經典又詳細的引用資料。
例如 cache 架構本身就是一個很大的討論主題,Read-Through 還是 Cache-Aside?會不會有 penetration 需要解決?這些事項書中提及都不多。但圖中引用的《Scaling Memcache at Facebook》就是相當經典的 paper,相信不少研究過 cache 的工程師都看過,是很好的延伸閱讀。
本書的最後一個章節為,持續學習,其中更附上相當大量的後續延伸閱讀資源。
總結:
總結來說我認為《內行人才知道的系統設計面試指南》這本書提供兩大知識給讀者:
- 在系統設計面試如何與面試官對談、如何決定討論的抽象程度。
- 廣度極高的系統設計架構概論配上深度參考資料。
為了討論系統設計面試中會遇到的各種層級,作者必須在有限的篇幅內提及廣度極高的系統設計知識,進而產生無法詳述技巧的缺點,不過這個缺點被作者以優秀的參考資料以及延伸閱讀所彌補。
如果你:
- 沒有任何系統設計經驗,那本書廣度實在過高,個人不建議閱讀,可以選擇其他主題較明確集中的系統設計相關書籍。
- 只對特定主題有系統設計經驗,那本書 cp 值就會很高,你可以概觀其他產品的設計架構並利用參考資料做進一步的進修,同時又能學到面試技巧。
- 本身已經是擅長各種分散式高流量系統設計的大師,那本書能帶給你的知識量就會減半,不容易在系統設計上獲得新知或解惑,僅能獲得面試指南。
配上前面優點段落提過的,本書內容很少依賴工具,更使得他成為一本不受時間影響,隨時都能重複閱讀、反覆思考,適合大部分 (中階) 後端工程師的書籍,本次的讀書心得就到此為止,謝謝正在觀看的你。
留言列表