本文作者 Nick 是加州州立大學電腦碩士,畢業後在矽谷工作,至今軟體經驗超過三十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常了解初學者的痛點,在此與大家分享學習程式語言的訣竅與方法。
最近常常聽到 AI 人工智慧、大數據、App 等等新趨勢,你知道其中的共通性是什麼嗎?就是寫程式的能力。尤其近來由於人工智慧 AI 的爆發以及伴隨的高薪資福利,很多人都想學程式,各種快速學程式的方法到處可見,然而在你開始學程式前,要有一些正確的觀念。
大家在急什麼?
如果你要成為外科醫生,首先你會很甘願地念好幾年醫學院,然後還要實習好幾年後才有可能成為外科醫生,而且你從來不會看到一本書叫做「24 小時自學外科手術」。但是很奇怪,到了學電腦程式就變得不一樣。走進一間書店,電腦分類的書櫃裡面總是有一堆「24 小時自學 C++」「24 小時學會 Java」之類的書,讓你覺得可以快速地學會某種程式語言。如果在網路書店上輸入這幾個關鍵字:「24小時」、「C++」,你會找到幾百本相關書籍,相信這裡面有很大的誤解。
首先寫程式入門的確很簡單,正如電腦科學家馬帝亞斯(Matthias Felleisen)所說:「要寫很爛的程式很簡單,連笨蛋都做得到。」但是要成為專家,就需要一定的努力與時間的累積。從軟體初學者到專家這中間是差異很大的,軟體不像一般的產業,軟體人才的產出差異性可高達十倍以上。因此你有時會聽到軟體工程師是低薪又爆肝,但同時又會聽到有些軟體工程師輕輕鬆鬆年薪破百萬。
學寫程式沒有捷徑
任何領域的專長都需要幾年的時間去培養,最重要的訣竅還是不斷接觸與學習,以下是電腦科學家彼得(Peter Norvig)的五個建議:
- 確定你對軟體真的有興趣,因為你得花上萬小時去鑽研。
- 「做中學,學中做」,並不斷挑戰新領域。
- 多多參考其他人的程式,例如開源平台 GitHub 裡面有許多寫得很好的程式。
- 從工作中學習,同事間的 Code Review 可學到許多你沒想到的東西。
- 利用時間做一些自己想做的 side project,不只充實你的的履歷,也能讓你學習到很多東西。
千萬不要以為學會一些皮毛就是會寫程式,然後抱怨找不到什麼好工作,程式語言有其深度,需要時間去學習以及練習,所有寫程式厲害的人都是花過時間去學習,並不是天生就很會寫程式。
有興趣就去做
但話說回來,學程式是一種理解的過程,對於死背的地方其實不多,都可以一面寫一面查資料,尤其 ChatGPT 的出現,可以針對你的問題給出非常精準的回答,根本不用再翻書或者不斷谷歌。我個人覺得學寫程式比成為醫生輕鬆得多,而且程式語言可以做中學、學中做,不像醫生必須要達到一定的 level 才能開始醫治病人。
所以學程式語言,即使只學了一些東西,就可以開始寫一些自己覺得有趣的 App,例如 Instagram 的前身也是一個練習用的 side project。IG 的創辦人 Kevin Systrom 本來是做行銷的工作,但是他想學寫程式,於是在下班和週末時間做了一些 side project,大部分只是用來練習寫程式,不過他發現其中分享照片的功能很受到喜愛,於是就找一些合夥人一起開發,最後的成品就是 Instagram。後來臉書以 10 億美金買下 IG,所以千萬別小看 side project 的意義與可能性。
看清未來趨勢,成為科技搶手人才
從種種的跡象顯示,軟體的確已經成為下個世代的產業主流,例如 AI 人工智慧、App、大數據、物聯網等等的重要趨勢都是建立在軟體設計上面的應用。由於台灣這幾年面臨轉型危機,無論是傳產還是新創公司,對於軟體能力的需求越來越大,薪資福利也都開得很不錯,目前呈現粥多僧少的現象可以好好利用。最後這裡附上三小時線上課程(四選一),可以透過我們合作夥伴聯成電腦的獨家優點來提升自己的軟體能力:
- 深耕教育超過 25 餘年,推動國人的電腦專業不遺餘力,培育上萬人進入電腦軟體產業。
- 首創 168 安心學習服務,透過符合政府評核的一貫式教學,讓學習與就業緊密結合。
- 超過十個就業機會、全國徵才見面會、大型廠商聯合徵才讓結訓學員挑選。