「等我學完 XX 再做項目」是一個謊言
幾乎每個初學者都對自己說過這句話。
然後你花三個月把教程看完了,合上電腦,發現腦袋空空的。課程上有 300 道練習題,你做了 200 題,但你坐在一張白紙前,還是不知道從哪裡開始。
這不是你的問題,這是學習方式的問題。而且,早在 1960 年代,就有人提出了它的解決方案。
Seymour Papert 和他的建構論
西摩·帕珀特(Seymour Papert,1928–2016) 是麻省理工學院的數學家和教育家,同時也是人工智慧先驅馬文·閔斯基(Marvin Minsky)的合作者。
他從皮亞傑(Jean Piaget)的「建構主義(Constructivism)」出發,提出了一個更進一步的理論:建構論(Constructionism)。
兩者的區別,是帕珀特自己解釋的:
“Constructionism holds that children learn especially well when they are engaged in making something shareable, whether it’s a sandcastle, a machine, a computer program, or a book.”
——Seymour Papert
皮亞傑認為:學習者透過與外界互動,主動建構自己的知識體系(而非被動接收)。
帕珀特在此之上加了一個關鍵條件:當學習者正在製作一個可以被分享、被展示的「實物」(artifact)時,這種建構最有效。
學習不是把知識「倒進」頭腦,而是透過製作來把知識「建構出來」。
建構論 vs 傳統教育觀傳統教育假設:先有完整的知識,再去應用。
建構論假設:知識在應用的過程中才真正被建構。沒有應用的知識,不是知識,是記憶。
維高斯基的「近側發展區」:為何壓力是學習的引擎
蘇聯心理學家 列夫·維高斯基(Lev Vygotsky) 提出了「近側發展區(Zone of Proximal Development, ZPD)」的概念:
學習者現有的獨立能力,和在適當協助下能達到的能力之間,有一個最適合學習的「甜蜜區間」。太容易的任務沒有挑戰,太難的任務讓人崩潰,處在 ZPD 裡的任務,才是成長發生的地方。
項目為何是學習的最佳場域?
因為一個真實的項目,會不斷地把你推入 ZPD——每解決一個問題,就出現下一個你剛好夠不著的問題。這不是偶然,這是複雜系統的本質。
用一個項目看建構論如何展開
讓我用「從零做一個多人線上應用」這個例子,展示一個項目是如何把你逼著學習完整的工程體系的。
第一層:基礎功能 → 學網路編程
你想讓兩個人的程式能互相通訊,你必須選擇協議。
- TCP 可靠但有延遲,UDP 低延遲但可能丟包——不是課本上的選項題,是你現在要做的決定。
- 你搜索、你實驗、你遇到丟包的問題,你理解了為什麼遊戲用 UDP 但銀行轉帳用 TCP。
這個理解,不是你讀書讀來的,是你的程式掉包讀來的。
第二層:版本出錯 → 學 Git
你改壞了,你需要回滾。
git reset、git rebase、git stash——這些指令在課程裡是乏味的,在你急著修復 bug 的那個下午,它們是救命稻草。
第三層:數據丟失 → 學資料庫設計
用戶的資料斷電就消失了。你需要持久化,然後你需要選型、設計 schema、理解正規化,然後遇到 N+1 查詢的性能問題,然後學索引。
每一步都不是因為課程要求,而是因為你的系統在壞。
第四層:撐不住流量 → 學緩存與並發
1000 人同時上線,資料庫扛不住。
你開始理解為什麼 Redis 存在,什麼是緩存穿透、什麼是緩存雪崩——然後你明白為什麼這些東西面試必考:因為任何上規模的系統都會遇到它。
第五層:本機能跑 → 學部署
要讓別人用,你需要 Linux、Nginx、Docker、防火牆配置。
「在我機器上好好的」這句話,會讓你親自去理解環境依賴、容器隔離、環境變數管理。
第六層:上線出問題 → 學可觀測性
你不知道系統哪裡壞了。
你學 Prometheus + Grafana,學日誌分析,學分散式 trace——因為在黑盒裡找 bug 是煎熬,你需要光。
第七層:更新怕中斷 → 學部署策略
用戶在使用中你要推版本,你學灰度發布、藍綠部署、金絲雀發布——這些不是架構師的玩具,是你避免讓用戶看到 500 error 的工具。
第八層:單點故障 → 學高可用架構
流量繼續大,你的系統開始有單點故障。你學集群、負載均衡、熔斷限流降級——你理解了「99.99% 可用性」是什麼意思,因為你算過你的系統如果掛了損失多少。
這條路的每一步,都是真實問題驅動的學習。 帕珀特說的「製作一個可以分享的實物」,就是這個上線能跑的系統。你的知識,建構在它的每一個 bug 和每一次修復裡。
知識留存率的研究怎麼說
美國國家訓練實驗室(National Training Laboratories)的研究提出了著名的「學習金字塔(Learning Pyramid)」模型,顯示不同學習方式的知識留存率差距懸殊:
| 學習方式 | 平均留存率 |
|---|---|
| 講授(Lecture) | 5% |
| 閱讀(Reading) | 10% |
| 視聽(Audio-Visual) | 20% |
| 演示(Demonstration) | 30% |
| 討論小組(Discussion Group) | 50% |
| 實際操練(Practice by Doing) | 75% |
| 教導他人 / 立即應用(Teach Others) | 90% |
「做項目學習」對應的是「實際操練」至「立即應用」這個區間。它不是最輕鬆的學習方式,但它是留存率最高的。
為什麼「做中學」留存率高帶著問題學習,知識有了「錨點」。你記住的不只是「緩存穿透是什麼」,而是「當年我的服務因為緩存穿透掛了,然後我這樣修好的」。情境記憶比純語義記憶更持久。
AI 時代,為什麼基礎反而更稀缺
AI 可以幫你寫代碼。
但它不能幫你判斷那段代碼在你的業務場景下是否正確。
2023 年,GitHub Copilot 的研究顯示,初級工程師在使用 AI 輔助後,生產力確實提升了;但在系統設計、架構決策、安全審計等需要原理理解的任務上,知識不足的工程師無法有效評估 AI 的輸出品質。
這揭示了 AI 時代一個反直覺的真相:
AI 降低了「寫出來」的門檻,卻提高了「看得懂、判斷對不對」的稀缺性。
- 不懂 TCP/IP 的人,AI 給了他有問題的網路層,他也不知道
- 不懂緩存的人,AI 給了他會雪崩的架構,他照用了
- 不懂分散式的人,AI 給了他有單點故障的設計,他上線了
基礎知識,是你使用 AI 的上限,不是你要繞過去的障礙。
帕珀特給工程師的隱含訊息
帕珀特的建構論在提出的年代,主要用於兒童教育。但它的核心原則——人在製作「可以分享的實物」時學得最好——適用於任何年齡、任何領域。
工程師的「可以分享的實物」就是可以運行的程式、可以使用的服務、可以被人看到的產品。
不要等所有知識準備好再開始做。
讓項目帶著你學,帶著問題學,讓真實的失敗成為你最深刻的課程。
需求 → 遇到障礙 → 帶著問題學習 → 解決它 → 遇到下一個障礙這不是學習路線圖,這是一張項目地圖。
跟著問題走,你不會迷路,你會走得更深。