伴我從 Engineer,朝向 Engineer Lead 的閱讀書單

Johnliutw
JohnLiu 的軟體工程思維
13 min readDec 10, 2023
Photo by Alexandra Fuller on Unsplash

閱讀,並不是我一直保持的習慣,雖然小時的我樂於閱讀,是圖書館的常客。但在踏入中學後,逐漸就失去閱讀的熱情和興趣,而是每天和教科書搏鬥,閒暇之餘也是吃喝玩樂為主。

大約在 2019 年左右,也就是 4 年前,開始對於生產力有了敏感度,覺得每天通勤時玩著隨時會倒掉的手遊,好像也不是什麼好的時間利用方式。同時,那時剛開始創業,身為一個 Engineer 但要試著做出成熟的作品,有很多能力上的不足。想了想,閱讀或許是一個不錯的辦法。

讀著讀著,伴隨著邁入婚姻,有了家庭,也開始更加享受閱讀這個可以好好跟自己相處,又可以吸收刺激的時間。

這幾年陸陸續續從新創 Web Engineer,變成創業帶軟體團隊打市場,後來又轉到大型跨國團隊當純 Engineer,並又在技術上幫忙 lead 一個小團隊,這期間,我得說這段閱讀的過程,讓我收穫許多。

這篇文章會精選這四年生涯,我覺得最值得分享的 34 本技術選書,並分成 11 個類別, 希望這些書也有機會對你產生跟我一樣的幫助。

Programming

1. 8 天重新認識 Javascript

Kuro 老師的書,身為 Backend 起家的工程師,這是本非常出色的 javascript 原理教學書籍,例如針對常見 this 的多種情境概念解析非常清楚的解說容易誤會的概念。

2. 8 天絕對看不完的 Vue.js 3

雖然最近比較多寫 Angular,但我成熟的框架啟蒙還是 Vue,延續前一本的內容品質,原封不動的轉移到 Vue Js 身上。如果不熟悉任何前端框架,我覺得 Vue 是一個不錯的開始點,畢竟學習曲線低了多,也更有機會導入到存在的專案中。

3. 為你自己學 Git

高見龍老師的名書,跳脫 git 的使用層次的知識,深入解說 git 本身的底層運作機制,當我轉到大型公司服務時,確實了幫助我更有效率的應用 git 這個工程師一輩子的基本工具。

4. Programming TypeScript

雖然有了 OOP 語言和 Javascript 的概念,剛用 TypeScript 時仍是有種照著 pattern 走的感覺。這本書聚焦在 TypeScript 的特性,很適合有一些不同語言概念的讀者,深入理解 TypeScript 的特殊寫法,Scale 你的 JavaScript Application。

Database

1. 資料庫解剖學 — 從內部深解 MySQL 運作原理

中國地區對於 MySQL 的應用非常成熟,因此也有非常多的 MySQL 書籍。這本是簡體中文的翻譯書,深入探索資料庫的運作方式,包含到接近硬碟層級的表格空間資料配置邏輯,非常適合具有中階 DBA 知識水平的讀者

2. 優化 SQL — 語法與資料庫的最佳化應用

這也是一本簡體中文翻譯書,書中拿了許多艱澀的案例為例,並藉機帶到資料庫系統查詢效能優化的各項知識。雖然是使用 Oracle 進行解說,但許多分析執行計畫的思路和測試方式,都很值得學習。

Containerize

1. Docker 專業養成

如果你對 Docker 是使用過但不清楚怎麼運作,或是完全不知道在幹嘛的朋友,這本是很不錯的入門書,也是筆者對 Docker 的啟蒙書籍。

不過最近 AppWorks School 的小賴老師剛推出的新書,具有更全面深入的知識,且包括更多操作練習,也推薦讀者參考

2. 矽谷工程師教你 Kubernetes

當我在公司甫接觸 k8s 時,對於公司 k8s 與 CICD 的整合背後技術選型思維感到好奇,剛好也看到這本書,提到許多 k8s 整合的技術選型與策略思維,隨即購入收藏

3. K8s 建置與執行

在公司的角色日漸清晰後,開始負責比較多和 k8s 架構對接的系統部分,透過這本書,一一跑過 k8s 的各種不同組件和設定方式,能夠幫助讀者構思整個 k8s 的架構流可以怎麼設計

Clean Code

1. Clean Code 無瑕的程式碼

無須多言,所有篤信 clean code 思想的人都必定要入手的經典書籍,可以說靠書的內容,就奠基了一個概念。如果還沒接觸過,想要將程式碼的撰寫方式提升一個水平,十分建議入手

2. The Clean Coder 無瑕的程式碼 — 番外篇

將 clean code 帶入職場實際面的說明書,分類上可能更接近 engineering culture,但我仍是放置在 clean code 區塊。是本和 clean code 相輔相成的書籍。

不知道怎麼把 clean code 的概念帶入實際開發工作中嗎? 這本書是很好的指引。

3. Clean Architecture

學會程式碼層級的 clean 概念後,再來則是在架構層級需要有更整潔的設計模式。已 Solid 概念為基礎,逐漸帶往元件、架構設計的議題,幫助可維護與擴充性的 class 層級架構設計概念

4. Clean Agile

敏捷是個在工程業界有舉足輕重地位的開發方式,但有許多『 取其形而不取其意 』的方式,造成許多人有了誤解,或是反而降低生產力。這本書除了鑑往知來敏捷概念的來由,也重述了敏捷的基本原則,審思我當下團隊運作方式的合理性。

Tech Debt

1. Working Effectively with Legacy Code

基本上談到了重構 legacy code 所有需要的技巧與手法,甚至包括非物件導向的架構該怎麼重構的情境手法。當我著手進行一個大型部件的重構任務時,幫助我更具體的規劃了任務整體的解決方案。

2. 大規模重構

從更高層次的團隊與非工程角度,說明怎麼進行重構的工作。書中有提到 Slack 這個家喻戶曉的應用程式重構案例,作者也是 Slack 的工程師,分享了許多寶貴的經驗和挑戰的解決方式。

Security

1. Web Hacking 現場指南

超棒的一本書,如果你已經厭煩總是談到一堆制式化, Web 漏洞的書籍,這本書可以說是提升視野的救贖。

這本書以各大實際存在的漏洞為例,除了提供原始回報的方式和修補手法,也藉機補充重要的知識,讓讀者能有更全面的 context 來認識不同的資安漏洞,是本『 講真的 』的好書。

2. Web 應用系統安全

如果對於 Web 應用程式的資安認知有點模糊,這本是很棒的基礎書籍。從名詞解釋開始,逐漸帶到基本的常見漏洞類型,並又帶到防禦手法,對於初入門 Web 領域 1 至 2 年,能解決問題,但不確定安不安全的工程師來說,非常合適。

Server Management

1. 建構微服務

認識微服務的經典好書,此為 2022 年推出的二版。從基礎的元件介紹、實作,到其實導入微服務最需要解決的問題 — 人。可以說,適合需要全面理解微服務各項議題的工程師。

2. SRE 實踐與開發平台指南

其實我的觀察,台灣應用 Platform Engineering 概念的軟體公司並不算太多,而在目前筆者服務的公司,則很早就有 Platform Engineering 的專責團隊,來負責基礎設施的運作。

這本書透過 SRE 這個大家比較熟悉的角色,最終帶到 Plarform Engineering 的建置思維,非常棒

3. 網路協定全書

我自愧小時書沒唸好,對於基礎的網路層其實架構概念很薄弱,透過這本書把 OSI 七層好好再加強一番,並也建構更多容器化與雲端環境的網路知識,這應算是在學校時期較少著墨的。

如果你跟我一樣書沒好好念,這本書是很好的機會,來避免知識都還給老師 XD

System Design

1. System Design Interview 1 + 2

之前準備 System Design Interview 時,入手第一本繁體中文,驚為天人,具有很大的幫助。後來出了 Volume 2,從更多實戰案例分析系統設計的思路,不管中文的版本,隨即馬上從 Amazon 下訂英文版,跨海買來,好好細細品嚐。

基本上,如果你未來的面試開始有系統面試、白板題等的出現,這兩本書能提供很有價值的基礎。

2. 資料密集型應用系統設計

出沒在各大讀書會的著名書籍,基本上如果有興趣會是正在分散式或高流量的環境工作,這本書能夠帶讀者從另外一個資料量級維度,思考一些常見問題的解決方式,必讀。

3. 深入淺出設計模式

四人幫 ( GOF ) 的經典書籍,這本書之所以經典,是這本書除了帶到設計模式的基礎知識,在撰寫上也特別根據易讀性做設計,雖然很厚,但十分容易吸收。

筆者有時讀起來還會不可自拔,被概念描述勾起興趣,往後細細查看範例程式碼的設計邏輯。

4. 決戰! 微前端架構

出版社寄來的書,過去曾在粉專分享過閱讀心得,就不贅述,歡迎參考:

目前公司的 Web 前端架構正轉移到微前端的路上,剛好這本書補齊了一些技術選型中,可能被考量過的部分,以及可以補強現有設計的部分。

API & Application

1. Web API 建構與設計

這本書應是奠基我對於 API 設計該有 品質 的啟蒙書籍,如果你覺得 API 就是文件寫好,資料丟正確就好,那我想這本書會非常適合你。

2. Web API 設計原則

在微服務時代,API 會有更多不同的使用案例需要考量。包括現有設計的解構、轉換成本考慮,到架構時的基礎認知。可以有效補強前面『建構微服務』一書中,較無著墨到的部分。

3. OAuth 2.0 入門到實戰

PHP 社群知名工程師 Miles 的著作,也是少見以 PHP 為原始碼的通論技術書籍。不過非 PHP 的工程師也不用擔心,整本書 90 % 以上都是通用概念,且都是現代驗證授權的重要知識。

這些知識除了實戰經驗,也有最原本 RFC 規則佐證,是一本相信會歷久彌新的好書,適合有做過驗證授權功能,但不清楚這些亂七八糟資料交換方式,怎麼由來的讀者

Engineering

1. Software Engineering at Google

這本書也是各大軟體公司讀書會的熱門選書,基本上把 Engineering 各個環節的概念,已 Google 為例來描述實踐的內容和思維。推薦對於這個全世界最大軟體公司,怎麼已超規模思維思考 engineering 議題有興趣的讀者

2. The Staff Engineer’s Path

過往由於創業公司的身份,比較多是以技術結合商業的思維,去思考軟體團隊怎麼運作與管理。加入大型軟體公司後,對於 Staff ,也是俗稱的 主任 工程師,職責的定義有更濃厚的興趣,因此入手了這本書。

如果你的職涯目標期許自己已技術為本,影響團隊,希望能成為管事不管人的優秀工程師,這本是個不錯啟發。

3. Code Complate 2

經典大作,91 老師也特別撰文推薦:

筆者也曾發表過長度約 30 篇的書籍摘要精選分享:

軟體開發實務指南

30 stories

最後節錄 91 老師的一個講評:

幾乎是每一位頂尖的開發人員都閱讀過很多次的好書。

4. 經理人之道

很少見,從 Engineering Manager 的角度分析,並給予成長的建議。從技術專案領導 -> 領導單人 -> … 跨團隊領導,最後到 CTO 的角度,可以說在職涯的任何階段,都有機會獲得啟發的一本好書

Project Management

1. 軟體專案管理的 7 道難題

在資訊服務業興盛的台灣,如果你想搞懂其運作模式,則不可錯過的一本好書。尤其特別切入外包這個筆者較少聽到有書籍著墨,但其實又是大家最常但不想觸碰的傷痛。

就算是工程師,也推薦用這本書來至少搞懂自己平常被怎麼搞了 XD

2. 鳳凰專案

知名工程師小說 XD,主要講的是一個亂七八糟軟體團隊的重生故事,主要可以幫助讀者了解以高階技術管理者的角度,會怎麼看待與處理公司中一團混亂的技術文化。

如果還有興趣,也推薦閱讀另外一本番外篇 — 獨角獸專案:

感謝各位的閱讀,希望這些啟發我的書籍,也能幫助你的職涯發展 !

題外話,技術選書大概佔了我的閱讀佔比 60 % 左右,其他 40 % 包羅萬象,出自於個人興趣使然的書,之後有機會再跟大家分享 :)

--

--

Johnliutw
JohnLiu 的軟體工程思維

熱愛軟體全端技術開發,較為擅長 Web 領域,並有多年線上與線下授課經驗,專精軟體新手教學。 相關合作: johnliutw@hotmail.com