前面所舉程式範例,包括整數和、三角形面積,甚至多項式的微積分,都有已知公式,何不直接套用公式?當然可以,如果是數學考試,熟背公式、套用公式是絕對必要的,但在此是為了學習迴圈,不用公式更好。
當我們學一個新技能、新工具時,應該先拿新工具來解已知問題,這樣一方面能逐漸熟悉新工具,另一方面,用新工具得出來的結果,可以用舊方法來加以驗證,就知道我們學得對不對。而新工具,往往威力更強大,才值得學習。
而我們學習的過程都是從簡單到複雜,從特定解法推廣到通用解法,從已知領域探索到未知領域,所以不要看到熟悉問題就說:「這個簡單,我會了,跳過去!」用不熟悉的新工具,去解決未知的問題,絕對不是個好方法。
學習程式設計跟數學稍有不同,因為我們人腦無法像電腦重複大量計算,所以善用數學公式簡化問題對人腦很有幫助。而電腦可以大量運算,所以程式設計盡量學習通用的解法,而不是特定問題的快速解法。套用公式是針對已知問題,比較特定,用迴圈則是通用解法,遇到沒有公式的問題也能適用。
很多已知問題,上網Google一下都可找到答案,透過網路分享,我們能快速累積知識,只要有人遇過類似問題,就有可能在網路上找到程式碼,這也是為什麼要學習通用解法,因為大部分已知的問題,別人都幫你做好,只要會呼叫函式就行,我們自己要解決的,通常是獨特的問題,也就是自己創新的地方。
無論如何,紮實的基礎很重要,把程式設計的基礎學好,以後才有創新的機會。如果沒有基礎,甚至連抄襲模仿的機會都沒有。
下一節:人生的「變數」