作者 Nick 是台灣長大的囡仔,畢業後在矽谷工作,至今軟體經驗超過二十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常了解初學者的痛點,在此與大家分享學習程式語言的訣竅與方法。
最近常常聽到人工智慧、大數據、FinTech 等等新趨勢,你知道其中的共通性是什麼嗎?就是寫程式的能力。蘋果創辦人賈伯斯早在 20 年前就開始提倡「每個人都要學程式,要懂程式語言,因為那會教你如何有邏輯性地思考。」現在許多國家已經將寫程式納入未來必學的技能裡,像是歐巴馬將「寫程式的重要性」比喻成「國家未來重要的發展」,甚至以身作則成為史上第一個會寫程式的美國總統。針對這種現象,電腦科學家彼得(Peter Norvig)提出了一些看法:
大家在急什麼?
為了要成為外科醫生,你很甘願地念好幾年醫學院,還要實習幾年後才熬出頭成為外科醫生,而且你從來不會看到一本書叫做「24 小時自學外科手術」。但是很奇怪了,到了電腦軟體領域就變了個樣,走進書店,電腦書架上總是可見《24 小時自學 C++》《24 小時學會 Java》之類的書籍,誇口在極短時間內讓你學會某某程式語言。如果在亞馬遜網路書店上輸入幾個關鍵字:「24小時」、「C++」,你會找到幾百本相關書籍,相信這裡面有很大的誤解。
首先寫程式入門的確很簡單,正如電腦科學家馬帝亞斯(Matthias Felleisen)所說:「要寫很爛的程式很簡單,連笨蛋都做得到。」但是要成為專家,就需要天資加上努力,還需要多年的實務經驗累積。從軟體初學者到專家這中間是差異很大的,許多人卻以為只要會寫幾行程式的就是專家,而且軟體不像一般的產業,軟體人才的產出差異性可高達十倍以上。因此你有時會聽到軟體工程師是低薪又爆肝,但同時又會聽到有些軟體工程師輕輕鬆鬆年薪破百萬。
學寫程式沒有捷徑
任何領域的專長都需要幾年的時間去培養,最重要的訣竅還是不斷接觸與學習,以下是彼得的五個建議:
- 確定你對軟體真的有興趣,因為你得花上萬小時去鑽研。
- 「做中學,學中做」,並牢記「有效學習需要挑戰有難度的工作來刺激。」
- 多與其他專家對話,看他們怎麼寫程式,現在有一些寫程式直播的網站,你可以去看看。
- 利用空餘時間做一些自己想做的專案 (side project),不只會讓你的履歷表更好看,也能更精進你的學習。
- 試著和其他程式人員一起工作,可從他們身上學到你沒想到的東西。
千萬不要以為學會一些皮毛就是會寫程式,然後抱怨找不到什麼好工作,程式語言有其深度,需要時間去學習以及練習,所有寫程式厲害的人都是花過時間去學習,並不是天生就很會寫程式。平常自己可以多做一些 side project,不但增加自己的能力也在找工作時有作品可以拿出來。
看清未來趨勢,成為科技搶手人才
從種種的跡象顯示,軟體的確已經成為下個世代的產業主流,例如 App、大數據、物聯網、虛擬實境、人工智慧等等的重要趨勢都是建立在軟體設計上面的應用。由於台灣這幾年面臨轉型危機,也出現越來越多科技新創公司,對於軟體工程師的需求越來越大,薪資福利也都開得很不錯。不過台灣雖號稱科技之島卻找不到軟體工程師(因為過去是硬體導向),目前呈現粥多僧少的現象可以好好利用。如果你對軟體有興趣或者想要成為科技搶手人才,最後這裡附上「快速上手」三小時程式語言課程(三選一),可以透過我們合作夥伴聯成電腦的獨家優點來提升自己的軟體能力:
- 深耕教育超過 25 餘年,推動國人的電腦專業不遺餘力,培育上萬人進入電腦軟體產業。
- 首創 168 安心學習服務,透過符合政府評核的一貫式教學,讓學習與就業緊密結合,每個學習的環節都有意義。
- 超過十個就業機會、全國徵才見面會、大型廠商聯合徵才讓結訓學員挑選。
因此如果你對軟體有興趣或者想要成為科技搶手人才,只要填寫以下表格就可以獲得「快速上手」三小時程式語言課程:C#(Unity 遊戲製作)、 Java(安卓 Android 平台) 或者 Python(應用廣泛),這些都是學習軟體很好的出發點,並可以了解自己對程式語言的接受度,為自己的未來規劃:(每人限填一份)