超過 30 歲,開始學程式還來得及嗎 ?

最近時常遇到想學習程式設計的朋友問彼得潘,他(她) 已經超過 30 歲,現在開始學程式,會不會太晚 ?

不會的 ! 蘇永康唱過,愛上一個人永遠都不會太遲。學程式也一樣,開始學程式永遠都不會太遲。

的確,比起 17 歲的年輕人,超過 30 的人可能思考慢一點,記性差一點,體力弱一點。但是彼得潘看過許多學得好和學不好的學生後,發現唯一和最後學習結果百分百相關的,其實是小時候我們最討厭的事情,

寫作業 !

我平常在教課時,會要求學生以寫 Blog 的方式交作業,所以當他的文章愈多,除了暗示著他很文青,想成為網紅外,也代表他寫愈多的作業。以最後的結果來說,幾乎可以說作業寫愈多的同學,學得就愈好。

為什麼寫作業那麼重要呢 ? 主要有以下兩點原因 :

1 程式的學習就像爬山,是段由淺入深,愈來愈難的過程。後面的課程要聽懂,往往需要理解前面教過的內容。程式學不會從來不是因為聰明才智不夠,而是因為遺忘。就好像學數學時,當你忘了加法,想學會乘法根本是天方夜譚。而寫作業正是一個幫助我們加深印象,不會忘記的奇幻良藥。

2 很多學生跟我說,他們上課聽得懂,但是輪到自己從頭寫的時候,卻很容易卡住。要解決這個問題,在程式天才藥發明前,沒有別的方法,只能靠自己多花時間思考練習。因為唯有自己想通後,才真的能寫出程式。這部分沒有人能幫你,就好像你看蕭邦彈了一千小時的鋼琴,看鈴木一朗打了一千支安打,自己卻還是不會一樣。一般來說,課後練習寫作業的時間往往要是上課的好幾倍,比方你報名一個 30 小時的課程,課後練習的時間,應該要有至少 2 倍,60 小時的時間,才能有較好的學習效果。

也因為發現了作業的重要性,所以我決定花更多的時間,出更多的作業折磨學生。(也不用太害怕啦,沒寫作業我也不會打你,因為我打不過你。) 我想世界上沒有一個課程或老師敢保證你一定能學會或找到工作,甚至可以說就算你能免費的重上課程,不寫作業的話,聽老師重覆講 100 遍也學不會,甚至可能產生對老師日久生情的副作用。

但是有一點我滿有信心的,如果你能完成每一個作業,比方彼得潘的 100 道 Swift iOS App 謎題,應該有 99% 的機率可以找到工作,勝任新手 iOS App 工程師的工作。畢竟你親手完成了這些作業,它們已經涵蓋大部分常見 App 的功能。只要你不是用抄的或找鬼幫忙,到時候完成工作時老闆指定的 App 功能,自然也不是問題,它們終究也只是另一份作業,而且還是會給你錢的好作業呢。

這世上很多事情,長大後我們才知道跟小時候老師說的不一樣,比方做好事不見得有好報,修電腦不見得會感動女生。但是只要花時間寫作業,它卻是一定有回報的。江湖上流傳一句名言,你不需要很厲害才能開始,但你需要開始,才會很厲害。其實願意開始的人很多,難的是開始之後,你會持續多久。花 100 個小時練習的你,絕對比花 10 個小時的你厲害。

現在開始學程式永遠都不會太遲,超過 30 歲,還是來得及再出發 !

ps: 
1. 寫作業的確不是普通的苦,所以除非你真的有興趣,不然是不用強迫自己寫程式的。就好像你對化學沒興趣 , H2O 不認識還是可以活得好好的一樣。這世上還有很多事情可以學,要學會同樣都要花很多時間練習,所以不如選一個自己有興趣開心的主題吧。

2. 正常人都不愛寫作業,不過 iOS App 已經算比較有趣了,你可以發揮創意,找自己有興趣的主題發揮,而且還看得到美美的畫面,不像傳統的 C , C++ 等程式語言,剛開始學習時,你只看得到純文字的黑白畫面,只能印出欺騙自己長得像星星的 *。