[碎碎念] 程式開發領域由菜鳥到老鳥的成長歷程 (10) - 菜鳥階段-程式是用寫的,不是用看的。

不管是看書或是看前人的程式碼,別光是只有看,動點手寫下去,就算是模仿也好,一定會讓自己的寫碼能力進步,練的愈多,進步愈多。

其實寫程式和小時候學寫字很像,小時候父母總是要我們多寫字,因為字如果不用寫的話是記不住的 (英文字也不例外),每個人自從開始閱讀及寫字以來,至少都累積了數百萬字的抄寫經驗了吧,所以除非沒有寫過或鮮少寫過的字不會以外,常用的 5000 多字應該都會寫。自己寫也有個好處,透過筆和紙可以輔助記憶,所以很多人都習慣在背書時用手抄的方式,多抄幾次就可以記起來了。不過,如果從一開始都沒有用筆寫過字的話,就算讀了很多書,也未必會寫字。

寫程式也有相同的情況,當你買了一本初學用書 (即使是聖經本),但如果你只有從頭到尾翻過,叫你上機馬上寫一段 Hello World,可能你還是寫不出來,理由很簡單.就和學習寫字一樣,從來沒有寫過一行程式的人,就算閱讀了十幾本好書,但實務上機了還是寫不出來,當然你也可以說用硬背的,但程式語言的指令非常多,而且真正運用的時候,組合是千變萬化,而且程式基本上很難背誦,就算給你背下來了,那你要如何應付它的變化?但指令的用法是例外,那是寫程式的根本,也是專業之一,至少常用的部份要背下來。另外,透過實際上機的方式寫程式,有另一項特別的好處,當相同或相似的程式寫多了,會自然而然的在腦中建立指令的地圖,下次要用的時候很快就會想到了,這方法不限於指令,像是某些功能的特定作法,或是 Class Library 的操作等等都可以,久而久之,這樣的方式會慢慢的累積成感覺 (sense),一旦寫程式的感覺形成了,那也代表你的進階之路也不遠了。

但很多菜鳥往往都有一種毛病,就是跟別人問了一大堆推薦用書,買回家看後卻仍然學不好,其中有一部份原因就是不動手,實驗 (lab) 性的實作是讓功力進步的唯一法則,不論你是在抄人家的範例程式,或是思考自己的程式功能都一樣,而且實際寫程式學習的速度會比只看書學習的速度要快非常多,透過實際動手,也可以讓腦中的藍圖和對照表建立的更快,而這也代表你的功力提升了。

這點在公司內的培訓或是資深人員授課時也可以套用,雖然讀程式是一件很重要的能力,不過光是讀基本上是沒有什麼感覺的,最好的記憶方式就是寫,以前在課堂上作筆記不也是如此?寫過一遍會有印象,寫過兩遍會有記憶,寫過三遍以上就不容易忘,而且多寫幾種不同的程式,有助於未來能力以及思維上提升,這些都只是 "只讀程式" 無法得到的。

所以,請務必記住:程式是用寫的,不是用看的。如果你也有這種只動眼不動手的學習心態,請趕快改掉,然後馬上上機打開你的程式工具來寫程式。