寫 Python、跑模型、做後端、架 pipeline、分析數據,這些事對我來說都不算陌生。但越做越久,我越發現 — — 我會「用」,但有些更底層的東西,我其實沒有學過。
例如:程式寫好之後,compile 到底在做什麼?Python 不需要 compile,我以前也不太在意;
但真正開始學 C 之後,才發現這背後有一整個世界:preprocessing、compiling、assembling、linking… 每一層都像在拆開機器外殼,讓你看見齒輪是怎麼咬合在一起的。
而我喜歡 CS50 的最大原因,就是:
它帶著你去理解「表象背後」,事情真正的運作方式
AI 時代,基礎更珍貴
現在是 AI (從 gpt 到最近的 Gemini 3 Pro) 迭代超快的時代。
就算不懂底層程式語法、不懂資料結構,也可以靠 AI 做出一個 prototype,只要下幾個 prompt 就好
- 比如一個股票資產管理平台
- 或一個日記 app
- 甚至小型的工具服務或自動化流程
AI 讓「學習門檻」變低了,但也讓我更想知道:
如果我真的對這些技術有興趣,我是不是也想理解它們到底怎麼運作?
這就像是:
可以不用懂引擎,也能把車開得很順;但如果有一天你開始對機械感興趣,就會想知道引擎怎麼燃燒、齒輪怎麼轉動。
我覺得我現在就處在這個階段。
工作後再回來上 CS50 的感覺:紮實、穩定、甚至有點感動
以前還沒有足夠的工作經驗,很多東西聽得懂,但沒有「深度的懂」,大概只停留在會用,程式會動的階段。
隔了幾年、經歷了職場、寫過更多 code、踩過更多坑後再回來上 CS50,
那種感覺完全不一樣。
你會理解老師為什麼要講這些、
會知道某些觀念以後真的會用到、也會在某些瞬間突然體會「啊原來我以前一直都只懂表面」。
例如:
- 不同資料型別為什麼需要不同的記憶體空間
- ASCII 字母大小寫之所以能互換,是因為設計上剛好只差 32(而那背後其實藏著非常巧妙的位元邏輯)
- 程式語言裡的「抽象化」為什麼那麼重要、為什麼它能讓程式設計變得乾淨
雖然 CS50 的課程是用 C 語言教學,但我主要的開發語言是 Python。
所以在學 C 的過程中,我常常會不自覺開始對照:「欸,Python 有沒有類似的語法?」
這種「跨語言反思」反而讓我學得更快、更立體。
例如:
- 在 loop 裡直接建立變數(Python 有嗎?)
C 語言:
int n = strlen(s);
for (int i = 0; i < n; i++) {
Python 語言:
寫法一:
n = len(s)
for i in range(n):
if s[i] >= "A":
...
寫法二: 最 Pythonic 的寫法:用 enumerate
for i, ch in enumerate(s):
if ch >= "A":
...
寫法三:真的想「一行處理」 — — 海象運算子 :=(python 3.8)
for i in range((n := len(s))):
...
2. C 語言的 function prototype vs Python 的函式定義順序
在 C 語言:如果某個 function 的定義寫在 main() 後面,但你想在 main() 裡呼叫它,那就必須先宣告
void hello(void); // function prototype
int main(void) {
hello();
}
void hello(void) {
printf("hi!");
}
但是在 Python
Python 沒有 function prototype
因為 Python 是直譯式語言,它會從上往下執行。
因此 Python 的習慣是:
所有函式、類別都放在上面
主程式邏輯放在最下面:
def B():
print("hi")
def A():
B()
if __name__ == "__main__":
A()
這樣也能支援模組化:
當這個檔案被 import 時,底部的程式不會跑。
我目前學習進度
- Week0 — Scratch
- Week1 — C
- Week2 — Arrays
每堂課大約 2.5 小時,並且在 Heptabase 做筆記,大概 4 小時能完成一週內容。我是在 edX 上學習,也有各個不同的平台可以選擇(例如: youtube) 而且 CS50 是 免費課程,完成課程後可以付費取得證書。

最後我覺得在任何時間點,都可以開始 CS50的課程
不管你是:
- 轉職的人
- 想補 CS 基礎
- 工作很多年後突然覺得「底層好像不太懂」
- 或單純想把「會用」提升成「會理解」
都可以再回來學 CS50。
有時候反而因為有經驗,更懂得這些知識的價值。
最後
附上在 Heptabase 白板整理的 snapshot (白板累積越來越多的卡片)
有需要的話~ 🎁 Heptabase 折扣碼:https://join.heptabase.com?invite-acc-id=889dbd70-632c-446d-b7f8-ffa41b27e716
有需要筆記的人可以透過 email (karen.kao.2023@gmail.com) 聯繫我~






















