“Everybody in this country should learn how to program a computer...because it teaches you how to think."
--Steve Jobs
母校四十週年校慶,我和好朋友Cherry一道回校,和闊別多年的老師們敘舊。沒想到臨走前還碰到中四、中五時的班主任Miss Koo,聽了一個感動的故事。
Cherry剛升中時,成績不算突出,她又內儉,對許多師生來說,只是個中規中矩的同學﹣﹣直到她交出第一份電腦程式(programming)功課。
Miss Koo是數學老師,兼教電腦。我們中一開始要交programming功課,Miss Koo記得當年收到Cherry的功課時大吃一驚,忍不住告訴其他老師:這位同學一定好聰明,因為她寫的program不但精簡,而且邏輯性極強,將來成績一定拔尖。這番話當時可能沒有引起其他老師注意,但三年之後文理分班,Cherry成績果然一枝獨秀,此後兩次公開試,都是全校成績最好的學生。
令Cherry感動的是,當沒有人看到她的潛質、連她自己都未肯定自己的能力時,有一位老師肯定她必光芒四射。而這位老師之所以如此肯定,憑的只是一份初中的programming功課!利用programming功課預測成就,莫非有算八字般厲害?
我小時候也被一些老師視為資優兒童,主要因為我作文成績好。但事實上,一個小朋友作文成績好,除反映其詞𢑥較豐富、記性較佳外,沒有太大啟示。但programming卻遠遠不同。
寫program的目的,是要讓電腦替你完成一個任務。電腦語言遠比中文「簡單」,說到底就是0和1,所以再複雜的任務,都必須經過分類、定義、簡化,被切割成無數細小任務,最後化成按部就班的指示。Programming是最講究精簡的語言,不能有廢話,否則會慢;programming也是最講究結構的語言,嚴密或鬆散的根基,後果會差之毫釐謬之千里。語言越精簡、結構越嚴密,寫出來的program就越有效快捷。一個人的思考過程如何,他寫出來的program必如何,沒有討價還價的空間。所以programming可以準確反映一個人的思維能力,亦能有效訓練思維能力。就像當年的Miss Koo,憑一份programming功課就可斷定Cherry很有潛質。
我認為每個小朋友都應該學programming,當作學樂器一樣,一生受用。中產家長與其訂購一台霸佔整個客廳的豎琴給女兒做生日禮物,不如簡簡單單買部Mac機。
***
相關舊文:寫書
「我有沒有給你說過?好的programmer,也能寫出好文章? 反之也是。
因為好的program,應該簡潔易明、邏輯清楚…(「而且首尾呼應」,我接上去)是,因此如果一個programmer寫得出一篇好文,我也會對他寫的program有信心…
反過來說,你也很有潛質寫program呀。如有一天你想學一種新的語言,別學意大利文啦,不如考慮學C++。」他說得很認真。
from 這雙手雖然小 http://wongleona.blogspot.com/2013/03/code.html