階段 1:鞏固基礎(1-2 週)
- 複習指針、動態內存、結構體、鏈表、文件操作、預處理器。
- 刷「指針專項」題(多級指針、函數指針、指針算術)。
階段 2:數據結構與算法(核心,4-6 週)
| 主題 | 必會實現 | 推薦練習 |
| 線性表 | 順序表/鏈表 增刪改查、逆序、合併 | LeetCode 206, 21, 83 |
| 棧/隊列 | 括號匹配、表達式求值、BFS/DFS 模板 | LeetCode 20, 150, 232 |
| 樹/二叉樹 | 三種遍歷(遞歸/迭代)、層序、構建、LCA | LeetCode 94, 102, 105, 236 |
| 圖 | 鄰接表/矩陣、Dijkstra、拓撲排序、並查集 | LeetCode 743, 207, 261 |
| 排序/查找 | 快排/歸併/堆排手寫、二分查找變體 | 手寫 qsort 比較函數 |
階段 3:系統編程與工程化(持續)
- Linux C 開發:《APUE》《UNIX環境高級編程》—— 進程、線程、信號、I/O 多路複用、網絡編程。
- 構建系統:CMake/Makefile、靜態/動態庫製作、版本號管理。
- 調試剖析:GDB、Valgrind (內存檢查)、Perf/FlameGraph (性能分析)、AddressSanitizer。
- 版本控制:Git 工作流、Code Review、CI/CD (GitHub Actions/GitLab CI)。
階段 4:專項方向(擇一深入)
| 方向 | 關鍵技術棧 | 經典項目 |
| 嵌入式/物聯網 | STM32/ESP32、FreeRTOS/RT-Thread、裸機/驅動、Modbus/MQTT | 智能傳感器節點、無人機飛控 |
| 後端/網絡服務 | epoll/io_uring、Redis/PostgreSQL、HTTP/gRPC、微服務 | 高併發網關、分佈式任務隊列 |
| 系統/內核 | Linux 內核模塊、eBPF、文件系統、調度器 | 自定義 sysfs 接口、內核同步鎖優化 |
| 編譯器/工具鏈 | LLIR/MLIR、Clang 插件、鏈接器、垃圾回收器 | DSL 編譯器前端、靜態分析工具 |
必讀經典書籍
C Primer Plus (第6版) — 入門百科全書
C專家編程 — 進階必讀
C陷阱與缺陷 — 避坑指南
現代C語言編程 (Jens Gustedt) — C11/C17 新特性
計算機系統:一個程序員的視角 (CSAPP) — 系統底層視角
一句話總結
C 語言是通往計算機系統內核的鑰匙:基礎要厚、數結要強、系統要懂、項目要實。