「 閱讀原始碼 (Source Code)是有技術的,要從以下的順序逐漸詳細化來閱讀:
01 如果有解說內部構造的文檔,就先讀
02 讀目錄資料夾 (Directory)的構造
03 讀檔案 (File)的構成
04 調查各種簡寫
05 了解數據(Data)的結構
06 把握函數所建立的關係
07 閱讀函數 」
這一段關於閱讀程式碼的框架,摘錄自日本作者西尾泰和[1]的著書,
《エンジニアの知的生産術 - 効率的に学び、整理し、アウトプットする》[2]的第21頁,
引發我對數學背景的人看「編程 Programming」的思考。
數學系的訓練,與上面閱讀原始碼的優先順序,本質上是反過來的。
在數學的訓練中,是先把函數定義的非常清楚,
再進一步去看函數應用在具體的數據上會發生什麼行為,
然後就到此為止,不太會再有進一步的討論。
但如上面西尾泰和所述,工程師看事情的角度,
是先掌握全局,然後再進一步細化每一層的細節。
而根據我這幾年與工程師背景的學生合作的經驗,
優秀的工程師的思維,
真的是先思考整個系統最後要的輸出是什麼,
接著看有什麼是需要當作輸入的,
然後再進一步思考「輸入->輸出」中間需要經過哪些環節,
每個環節的原料以及成果物又是什麼。
如此不斷細化,其實每週都能進展,
而且問題會愈問愈詳細,解答也會愈問愈精細,
然後10-12週的Progress就能有很具體的成果。
看來我需要多練習這種工程師思維,
從輸出開始,然後定義好輸入,然後找到實現的手段。
將工作流建立起來,然後一步一步去實踐過程,
感覺這樣才是真的在鍛鍊「編程 Programming」的能力。