程序設計 = 三個問題
- 做什麼:程序要實現的功能 (需求)
- 怎麼做:實現步驟/邏輯/算法 (核心難點)
- 如何描述:用程序語言語法表達邏輯 (語法學習)
經驗者學新語言快的原因
前兩個問題已解決,只需學第三個問題 (語法映射)。
深度拆解三問題
1. 做什麼 —— 需求分析
- 大型項目 (ERP) 中企業往往無法清晰描述具體功能
- 需專門需求分析師挖掘細節 (如找女友:年齡/身高/性格/收入…)
- 搞清「做什麼」同樣是專業工作
2. 怎麼做 —— 程序邏輯 (最頭疼)
- 現實世界與程序世界存在差異,轉化過程極其痛苦
- 大師名言:程序 = 數據結構 + 算法
- 轉化為:持有什麼數據 + 如何操作這些數據
- 初學者最大障礙:現實邏輯 → 程序邏輯的轉化
3. 如何描述 —— 語法學習 (最枯燥)
- 學透一套格式,深刻理解語言特點
- 類比學漢語:字怎麼寫、語法結構、標點規則
- 不需學十幾年,但需耐得住寂寞、細致領悟
為什麼叫「程序設計」而非「編程」?
- 蓋涼亭 = 簡單規劃 = 小程序/腳本
- 蓋摩天大樓 = 嚴密設計 = 大型軟件系統
- 規模越大,設計越關鍵:架構/模塊/接口/擴展性/可維護性
給初學者的建議
細緻體會「數據結構+算法」的含義。
先理解邏輯,再學語法映射。
不要倒果為因——語法服務於邏輯,而非相反。