未分類

寫程式「由上而下」和「由下而上」

寫程式有兩種基本方法:由上而下,和由下而上。由上而下,先規劃架構流程,再一一切分,把各部分功能做出來;由下而上,像積木一樣,先寫底層的功能,再一一堆到上面的架構。程式設計教科書都會說:「由上而下,由下而上,各有優缺點。」這實在是講得太保守了。

我以前也是「由下而上」的人。太陽處女喜歡精細工作,月座牡羊喜歡衝撞。與其搞抽象無法捉模的系統架構,不如實際把東西寫出來。實際試著寫寫看跑跑看,才知道自己想的對不對。這一直到我念了資訊教育研究所,學了電腦程式教學法,才有所改變。

小朋友電腦程式教學的核心,是學習「程式化思考」:碰到問題時,想解決方法,化為程式邏輯,轉為程式碼寫下來。重點不是「寫程式」,是「程式化思考」。掌握程式化思考和程式邏輯,不管是視覺化的Scratch、AppInventor,還是工作用的C、Java、Python、PHP,都只是工具而已。

唸研究所寫論文,為設計教材苦惱那一段日子,我的思考模式,也因應教材設計,從由下而上,轉為由上而下。回頭看,說「各有優缺點」實在太保守了。「由下而上」與其說喜歡具體成果,不如說是因為沒有能力掌握抽象架構流程,只能先撿會做的東西來做,橫衝直撞。

「由下而上」最大的問題,在於目標不明,所以沒辦法驗證成品,到底對不對,需不需要。用Cookie認證登入,和用token認證登入,資料結構和控制邏輯,都不一樣。不知道怎麼登入時,要怎麼寫?憑空寫下的程式,怎麼實際應用?

當然要「由上而下」啊,不然你怎麼知道你在寫什麼呢?

留下一個回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料