tech-interview-handbook 詳細教學

「不是 library,是一本書」——本教學文件帶你把這個 139k stars 的內容型 repo,當成一份可規劃、可追蹤、可整合的「個人面試準備工作系統」。

1. 專案定位

yangshun/tech-interview-handbook 是由 Blind 75 / Grind 75 / Front End Interview Handbook 作者 Yangshun Tay 維護的精選技術面試準備材料 repo。需要先釐清:

  • ❌ 它不是 library、不是 CLI 工具、不是 leetcode 題庫
  • ❌ 它不是 線上判題系統(題目仍需到 LeetCode / NeetCode 練)
  • ✅ 它一份 curated 內容集——告訴你「該練什麼、怎麼練、練完之後 behavioral 怎麼答、resume 怎麼寫、offer 怎麼談」
  • ✅ 它一個可離線閱讀的 markdown 倉庫(內容主體在 apps/website/contents/
  • ✅ 它一個可線上閱讀的網站(https://www.techinterviewhandbook.org)

涵蓋面(依重要度排序):

領域在本 repo 的位置與外部資源差異
Algorithm cheatsheets(19 個 topic)apps/website/contents/algorithms/*.md比 NeetCode 更偏「考試重點 + edge case」整理
Coding interview 元方法論coding-interview-{prep,study-plan,cheatsheet,rubrics,techniques}.md比 Cracking the Coding Interview 精煉、更新更頻繁
Behavioral interviewbehavioral-interview-*.md提供 STAR 框架 + senior candidate 差異化建議
System designsystem-design.md只是入口,深度內容導向 System Design Primer
求職周邊resume.md, negotiation.md, engineering-levels.mdFAANG-style,需自行本土化
工具:Grind 75 計畫產生器functions/grind75/ (Cloudflare Workers)替代 Blind 75 的可自訂版本

核心訴求:「最少必要知識」——本 repo 不堆量,留時間給你練題。

2. 如何取用(非「如何安裝」)

本 repo 沒有 install 步驟,三種取用方式:

方式 A:直接線上閱讀(最快)

打開 https://www.techinterviewhandbook.org,從 Software Engineering Interview Guide 開始讀。

優點:永遠最新、有 sidebar 導覽、適合零散時段閱讀。

方式 B:clone 本地(可做筆記 / 離線)

1git clone --depth 1 https://github.com/yangshun/tech-interview-handbook.git
2cd tech-interview-handbook
3# 直接用任何 markdown editor 開 apps/website/contents/*.md

優點:可在本地修改、加自己的筆記、整合到 Obsidian / Logseq。

方式 C:fork 後客製(長期經營)

1gh repo fork yangshun/tech-interview-handbook --clone
2cd tech-interview-handbook
3pnpm install            # 需要 Node 20+ 與 pnpm
4pnpm dev                # 啟動本地 Vite dev server,瀏覽 http://localhost:5173

優點:可改成自己的「個人面試準備站」、加自製題目集、push 回 GitHub Pages 自己用。

注意:repo 已從 Docusaurus 遷移到 Vite+(2026-03-20 commit 155e636),編譯流程比舊版快但和先前 fork 不相容。

環境需求(僅方式 C)

  • Node.js 20+
  • pnpm 9+(repo 是 monorepo,用 pnpm-workspace.yaml
  • 磁碟 ~150 MB(含 node_modules)

3. 架構 — 內容地圖

本 repo 真正的「程式架構」是內容架構。下圖呈現主要內容分支與閱讀路徑:


graph TD
    Root["tech-interview-handbook"] --> Apps["apps/"]
    Root --> Algo["algorithms/ (legacy README only)"]
    Apps --> Website["apps/website/ (Vite + Docusaurus content)"]
    Apps --> Portal["apps/portal/ (deprecated)"]
    Website --> Contents["contents/ (核心: 全部 markdown)"]
    Website --> Functions["functions/grind75/ (CF Workers)"]
    Contents --> AlgoCheats["algorithms/*.md (19 topic)"]
    Contents --> CodingMeta["coding-interview-*.md (流程)"]
    Contents --> Behavioral["behavioral-interview-*.md"]
    Contents --> Resume["resume.md, self-introduction.md"]
    Contents --> Offer["negotiation*.md, choosing*.md, compensation*.md"]
    Contents --> SystemDesign["system-design.md (入口)"]
    AlgoCheats --> Cheatsheet["study-cheatsheet.md (總表)"]

apps/website/contents/algorithms/ 結構

19 個 topic 各自一份 cheatsheet,每份結構一致:

  1. Introduction
  2. Common terms / data structures
  3. Things to look out for during interviews(edge cases)
  4. Corner cases
  5. Techniques(pattern 列表)
  6. Recommended LeetCode practice questions
  7. Recommended courses

加總約 100-200 行 markdown 一個 topic,2-4 小時可讀完所有 19 個。

functions/grind75/

不是內容、是工具——Cloudflare Workers 後端,生成 Grind 75 個人化計畫。輸入「每週可用時數 + 幾週」,輸出排序好的 75 題清單。前端在 https://www.techinterviewhandbook.org/grind75/

4. 學習路徑(取代「Helper Scripts」)

本 repo 不是執行用的,「學習路徑」才是它的 helper script:

路徑 A:4 週密集計畫(適合急迫求職者)


flowchart LR
    W1["W1: study-cheatsheet + array/string/hash/linked-list"] --> W2["W2: tree/graph/heap/trie"]
    W2 --> W3["W3: DP/recursion/sorting-searching + system-design 入門"]
    W3 --> W4["W4: behavioral + resume + mock interview"]

每週搭配 Grind 75 的 20+ 題 LeetCode 練習。

路徑 B:1 週速攻(已準備過、要快速複習)

Day主題
Day 1coding-interview-cheatsheet.md + study-cheatsheet.md
Day 2自選 3-4 個薄弱 topic 的 algorithm cheatsheet
Day 3behavioral-interview.md + behavioral-interview-questions.md,準備 5-7 個 STAR 故事
Day 4system-design.md 入口 + 外部資源(System Design Primer 章節 1-3)
Day 5resume.md 對照、更新 LinkedIn
Day 6Mock interview(找朋友 / Pramp / Interviewing.io)
Day 7negotiation.md+understanding-compensation.md,研究目標公司 levels

路徑 C:topic-driven(按弱點補強)

不照順序、直接點開最弱的 topic cheatsheet,搭配對應 LeetCode 題單刷 15-20 題。重點是「讀 cheatsheet → 馬上練 → 回看 cheatsheet 看自己漏了什麼 edge case」。

5. 應用場景 — 不同求職者怎麼用

求職者類型切入點重點章節預估時間
在校生(new grad)首面software-engineering-interview-guide.md+ 全部 algorithm cheatsheets + behavioral 全套 + resume8-12 週
已工作 2-5 年要跳槽coding-interview-prep.md+ 弱點 algorithm cheatsheet + senior behavioral + negotiation4-8 週
Senior(5+ 年)/ Staffbehavioral-interview-senior-candidates.md+ system-design 外部資源 + leadership behavioral + L+1 levels 研究3-6 週
Career switcher(非 CS 背景)landscape.md+ 全部 algorithm cheatsheets + programming-languages-for-coding-interviews.md + resume 重寫6-12 月
想轉前端(spin-off 站)直接到 https://frontendinterviewhandbook.com(本 repo 已 spin-off)
準備當面試官interviewer-cheatsheet.md + coding-interview-rubrics.md + behavioral-interview-rubrics.md半天

6. 資安與內容限制

內容型 repo 沒有典型 attack surface(無使用者輸入、無 API key、無資料庫),但內容本身的限制值得評估:

限制說明緩解策略
FAANG-style bias題目選擇、薪資、levels、流程描述都偏北美大廠(Google / Meta / Amazon),對台灣 / 亞洲 / 新創不完全適用用 Glassdoor / Levels.fyi / 1on1 社群(Blind / Teamblind)補本土資料
系統設計章節薄弱system-design.md 主要是「外部資源連結頁」,自身不提供完整系統設計教學搭配 System Design Primer、ByteByteGo、Educative 課程
內容更新頻率2026 年 commit 數 < 10;演算法 cheatsheet 經典少變,但「薪資 / VoIP 平台 / engineering levels」需自行確認最新對「會隨時間過時」的章節,去 Levels.fyi / Blind 確認
沒有實作題單刷題環境連結到 LeetCode,但不提供整合練習平台配合 NeetCode 150 / LeetCode 自家 Top Interview / AlgoMonster
廣告 / affiliate linkREADME + 部分章節含 Design Gurus / AlgoMonster 等付費課程的 affiliate 推薦廣告內容明示,可自行忽略;本身仍 MIT 開源
工程基建升級風險(方式 C)2026-03-20 已遷到 Vite+,舊 fork 需重做;Cloudflare Workers (Grind 75) 部署細節需自查若僅讀內容,用方式 A/B 即可

apps/packages/ 內快速掃描(grep -E "(api_key\|secret\|password\|token)[[:space:]]*[:=][[:space:]]*['\"][a-zA-Z0-9]{20,}"未發現嵌入式憑證——MIT 內容 repo 預期狀態。

7. FAQ

Q1:跟 Cracking the Coding Interview(CTCI)比哪個好? A:互補。CTCI 提供題目 + 詳細解析;本 repo 提供「準備流程的元方法論」+ 簡潔 cheatsheet。建議 CTCI 用於刷題、本 repo 用於規劃 + 複習。

Q2:跟 Blind 75 / Grind 75 / NeetCode 150 是什麼關係? A:Blind 75 是作者本人 2020 年於 Teamblind 發的清單;Grind 75 是其進化版(更系統 + 可自訂);NeetCode 150 是第三方擴充。本 repo 內含 Grind 75 工具,並推薦其為主要刷題清單。

Q3:要不要付費課程? A:本 repo 內容已足夠「自學者」過關。付費課程(AlgoMonster / Grokking)的價值在「結構化 + 已濃縮 + 互動練習」——對「自律差 / 時間極少」者值得。

Q4:可以離線讀嗎? A:可以——clone 後 apps/website/contents/*.md 即可。或用 markitdown / docling 把網站匯出成 PDF。

Q5:Front End 內容在哪? A:已 spin-off 到 https://github.com/yangshun/front-end-interview-handbookhttps://frontendinterviewhandbook.com。本 repo 仍有歷史前端章節但不再更新。

Q6:System Design 章節為什麼這麼薄? A:作者明示系統設計需要的「圖 + 案例」格式不適合 markdown cheatsheet,所以僅作為入口頁。建議去 System Design Primer + Designing Data-Intensive Applications + ByteByteGo。

8. 進階用法

8.1 自製 flashcards(搭配 Anki / Mochi)

每個 algorithm cheatsheet 的「Techniques」+「Corner cases」section 適合做卡片:

1卡片正面:Tree topic — corner cases 有哪些?
2卡片背面:Empty tree / single node / unbalanced (linked list) / duplicate values / large depth (stack overflow)

可寫 Python 小 script 用 markdown-it parser 抽 H2 段落自動生 csv → 匯入 Anki。

8.2 Interview tracker

用 Notion / Airtable / Obsidian Dataview 建追蹤表:

公司階段日期用到本 repo 哪段結果下次補強
OAarray.md, graph.mdDP cheatsheet 沒讀

8.3 與 spaced repetition 結合

把 19 個 algorithm cheatsheet 排成 SR 卡組,每 1 / 3 / 7 / 21 / 60 天複習一次。本 repo 內容已是「最少必要知識」格式,極適合 SR。

8.4 翻譯 / 在地化(注意 license)

MIT license 允許修改、商用、再分發(保留 copyright),可做台灣 / 亞洲版分支,但建議:

  1. 保留 upstream attribution
  2. 標明哪些段落已本土化(薪資、流程、levels)
  3. 不要直接把作者推薦的 affiliate link 換成自己的——這違反 README 的精神

8.5 結合 LLM 工具做模擬面試

把 cheatsheet 灌進 RAG(本專案的 paper-qa-lite 即可,雖然名字是 paper,markdown 資料夾通用):

1# 假設已 clone 到 /tmp/tih
2bash scripts/paperqa-lite.sh build --src /tmp/tih-clone/tech-interview-handbook/apps/website/contents
3bash scripts/paperqa-lite.sh ask "interviewer 問我 'tree 題目常見 edge case 有哪些',怎麼回答"

9. 與本專案(AI-knowledge_template)的整合

本 repo 在本專案內的位置:

本專案 layer與本 repo 關係
ai-gh-save本 layer 已將此 repo 存為 inbox/2026-05-22-github-yangshun-tech-interview-handbook.md(即上一份產物)
gh-tutorial-qd即本教學產生的 layer,產出本 md + 4 個 HTML
paper-tutorial不適用——本 repo 不是 paper
paper-qa-lite可選用法——可把 apps/website/contents/ 當 RAG 來源做問答(見 §8.5)
docling不需要——已是 markdown,不必再轉檔
graphify不適用——內容型 repo,沒有程式 symbol 圖可建
kami可用——若想生成自己的 resume,本 repo 的 resume.md 是好範本,丟給 kami: resume 當參考
quarkdown本教學的 HTML 渲染即由此 layer 完成

定位:reference repo,不是執行工具。和本專案其他 layer 不會自動串接;但可作為「面試準備」類 prompt 的權威 reference。

10. 重點摘要

  1. 內容型 repo:MIT 開源、139k stars 中絕大多數是「讀者」而非「開發者」
  2. 作者來源權威:Yangshun Tay(Blind 75 / Front End Interview Handbook)
  3. 核心訴求:最少必要知識,留時間給你練題
  4. 真正主體apps/website/contents/ 下的 markdown(網站殼是 Docusaurus → Vite)
  5. 取用三方式:線上讀(推薦)/ clone 本地 / fork 客製
  6. 三種學習路徑:4 週密集 / 1 週速攻 / topic-driven
  7. 限制:FAANG-style bias、system design 章節薄弱、薪資 / levels 章節需自行對齊最新
  8. 與其他資源關係:補 Cracking the Coding Interview 的「準備流程」缺口;題目本身去 LeetCode;System Design 去 System Design Primer
  9. 資安:內容型 repo,無典型 attack surface,未發現嵌入式憑證
  10. 進階整合:可做 flashcards、interview tracker、SR 卡組、本地 RAG 問答(搭配本專案 paper-qa-lite

11. 進一步閱讀