作者 Nick 是台灣長大的囡仔,畢業後在矽谷工作,至今軟體經驗超過二十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常了解初學者的痛點,在此與大家分享學習程式語言的訣竅與方法。
許多人對程式語言有興趣,而第一個遇到最基本的問題就是該從什麼程式開始,這也是我三十年前想學程式時最想知道的問題,相信對很多初學者來說也是如此。你如果上網研究該從什麼程式語言開始,就會看到許多文章介紹各種語言的特性,例如:
- C 語言很強大,可以用於內嵌式系統,也可開發服務器級的應用
- Python 語法容易上手而且應用廣泛
- Swift 是蘋果新推出的程式語言取代 Objective-C
- Java 是跨平台的程式語言,很多人使用,Android 也是用 Java
這個 list 可以繼續說下去,也可以解釋得更詳細,但是我不這麼做,因為對於初學者會來說,講這些根本就聽不懂,因為當初我就是遇到同樣的困境。所以,要選擇從哪個程式語言開始並不是透過這些特性來選擇,重點不在這裡。
程式語言相關的領域需要時間的累積才能越懂越多,初學者一開始就接觸這些東西,並不能加快學習程式,反而會覺得怎麼那麼多東西,學都學不完,有一種「排山倒海」被淹沒的感覺。
初學者真正要學習的,是一個核心,這個核心其實跟這些知識無關。你不懂這些知識,也可以學會這個核心。然而學會了這個核心,你就可以自己開始寫一些程式,透過「做中學、學中做」,你就會自然而然學習到其他相關知識。
所以重點是這個「核心」!你要學的是各種程式語言之間的共通道理,你先透過任何一個程式語言學會這個共通道理之後,其他只是一些語法的不同而已。舉例來說,你看看下面從左到右有三個程式語言,每個程式語言各有兩行的程式碼:
你現在看不懂程式碼沒關係,主要先看看這三個程式語言是不是都有點類似?根本就看起來差不多啊?甚至程式語言 (2) 和程式語言 (3) 根本就是一模一樣啊!
沒錯!他們看起來都差不多,甚至 (2) 和 (3) 根本一模一樣,而這三個程式語言分別是:
- 程式語言 (1) 就是 Swift
- 程式語言 (2) 就是 C 語言
- 程式語言 (3) 就是 Java
所以說,先學哪一個有差嗎?重點是要學會裡面共通的道理(例如變數、流程控制、迴圈、函數等等),再學另一個程式語言是不過是語法換一下而已,有一種「一通百通」的概念。
總要選一個程式語言開始吧?
如果你並沒有什麼想法,希望我建議的話,首先我不建議從「標記語言」(Markup Language)開始,例如網頁的 HTML/CSS 就是屬於標記語言,與一般的程式語言是不太一樣的。例如你學會了 HTML 再去學 C 語言,你會發現根本是不一樣的東西,並沒有我之前講的程式語言間「共通的道理」。如果你就是對網頁有興趣,那除了 HTML/CSS 以外還要學 Javascript 或者 PHP,這兩個語言跟其他程式語言就相通了。
至於從哪種程式語言開始,很建議從 Python 開始,原因如下:
- Python 容易上手之外,語言完整性也足夠,所以學會 Python 再學其他程式語言都很順理成章。
- Python 是全球最熱門的程式語言,包含 Google、Facebook、Youtube、Instagram 等科技龍頭都在使用。
- 有許多現成的程式庫,可以快速上手,適合 learning by doing(做中學)。而且資源豐富,有許多開發者可以問。
- Python 的應用廣泛,包含物聯網、樹莓派、嵌入式系統、影像辨識、人工智慧、大數據等等。你寫出的程式不但與科技接軌,也可以直接在實際生活中使用,會增加學習的興趣與動力。
- Python 由於應用廣泛,在職場上是搶手的職缺,有很多薪資不錯的工作可以選擇。
除了程式語言該從哪一個開始之外,常常有人問我「學程式的訣竅是什麼?」,其實答案很簡單,就是不斷學習與練習,沒有捷徑。唯一的差異就是誰會一直走下去、誰會半途而廢而已。聰不聰明並不是決定學不學得起來的因素,我也看過資質普普的人從什麼都不太懂,一路慢慢地學,過了幾年後還是做到上市公司的軟體部門經理。
千萬不要以為學會一些皮毛就是會寫程式,然後抱怨找不到什麼好工作,程式語言有其深度,需要時間去學習以及練習,所有寫程式厲害的人都是花過時間去學習,並不是天生就很會寫程式。平常自己可以多做一些 side project,不但增加自己的能力也在找工作時有作品可以拿出來。其實台灣這幾年面臨轉型危機,出現越來越多新創公司,因此對於軟體工程師的需求越來越多,薪資福利也都開得很不錯。而且台灣號稱科技之島卻找不到軟體工程師(因為過去是硬體導向),呈現粥多僧少的現象可以好好利用。最後這裡附上「快速上手」三小時程式語言課程(三選一),可以透過我們合作夥伴聯成電腦的獨家優點來提升自己的軟體能力:
- 深耕教育超過 25 餘年,推動國人的電腦專業不遺餘力,培育上萬人進入電腦軟體產業。
- 首創 168 安心學習服務,透過符合政府評核的一貫式教學,讓學習與就業緊密結合,每個學習的環節都有意義。
- 超過十個就業機會、全國徵才見面會、大型廠商聯合徵才讓結訓學員挑選。
因此如果你對軟體有興趣或者想要成為科技搶手人才,只要填寫以下表格就可以獲得「快速上手」三小時程式語言課程:C#(Unity 遊戲製作)、 Java(安卓 Android 平台) 或者 Python(應用廣泛),這些都是學習軟體很好的出發點,並可以了解自己對程式語言的接受度,為自己的未來規劃,每人限填一份喔: