本文作者 Nick 是加州州立大學電腦碩士,畢業後在矽谷工作,至今軟體經驗超過三十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常了解初學者的痛點,在此與大家分享學習程式語言的訣竅與方法。
很多人想學程式,往往問的第一個問題就是:到底該從哪個程式語言開始?
關於這個問題,你會看到有許多文章針對目前比較熱門的程式語言做分析,例如 C、C#、Java、Javascript、Python、Swift … 一大堆。說真的,對於第一次學程式語言的人,應該一頭霧水,完全不知道怎麼選擇,這個問題讓許多想學程式的人打了退堂鼓。
其實這個問題應該用另一種角度去分析,先了解這個概念:程式語言是相通的,主要是先學過一個「臨界點」
雖然有點抽象,聽完我的故事你就明白了。當初我在十四歲的時候,還是 Apple II 時代,由於對電腦遊戲深深著迷,不過不是著迷玩遊戲,而是著迷遊戲是怎麼做出來的,所以超級想學寫程式。我記得我還報名了救國團開的 BASIC 程式語言課程,印象中那個老師笑容滿面很會講,但我就是猛抄筆記,因為什麼都聽不懂。兩個月的課程過去了,完全有聽沒有懂,對程式語言還是一竅不通。
不過我的熱情未減,我問念資工系的表哥什麼語言最厲害,他說組合語言 (Assembly, 是一種低階的機械語言)但是對我來說太難了,所以他建議我學高階的 Pascal 程式語言,至於為什麼已經不可考,於是我就去買了一本 Pascal 的書來看。當時我才國二,也沒人教,也沒人問,基本上這本書根本是無字天書,大概從第一句話開始我就”有看沒有懂”。但是由於我對學寫程式太有興趣了,雖然看不懂,還是每天拿出來看,居然還看到了第七章(大概那本書的一半多)。
大約半年後有一天,我還是拿著那本 Pascal 無字天書在那裡傻傻的看。忽然間,我印象非常深刻,神奇的事情發生了,就像被雷打到了一樣,莫名其妙「磅的一聲」,下一秒我忽然完全懂了,我興奮的從椅子上跳了起來,心裡一直想著「啊,原來如此」,馬上跑去找出來之前補習班的 BASIC 課程筆記,裡面記錄著當初上課內容,我一行一行的看著,每一行我都看得懂了,心裡想著「原來老師當初在教這個」「原來這只是個雙迴圈」「原來這麼簡單啊」。
接下來的人生,程式語言對我來說簡直易如反掌,我國三學了 C 語言,到了大學唸的是數學系,沒有教程式語言,但是靠著國中學的程式語言基礎,還可以到美國念資工研究所,畢業後還在矽谷做軟體工程師。所以說,你第一個先學哪個程式語言真的不重要,你要學的是其中相通的道理,只要你學超過一個臨界點,學通了之後,再來學其他的程式語言就很簡單了,大多只是一些語法的不同或者一些不同的資料結構,學起來知道要點,會非常自然、非常快。
但是每個程式語言還是有其深度,並不是通了就好,通了之後還要求精,而且觀念要精確,不可有“可能可以”或者“試試看”的心態。之前看過有個工程師對 C 語言的指針 (pointer) 不精,也不求甚解,寫了奇奇怪怪的 code,一時好像 work 了,但是卻藏著 bug,因為這些 bug 還害我飛去日本客戶那邊一趟。
由想做的應用來反推,自然就知道該學哪個程式語言
講了那麼多,你已經了解主要是學程式語言的共通性,哪個語言先學並不是那麼重要,結果還是得回到同一個問題,總要先選一個吧?是沒錯啦!
其實很簡單,就看你想學程式語言做什麼?例如你想學會程式語言後,能夠做手機 App?還是機器人?還是網站?還是 Windows 程式?還是 Mac 遊戲?有太多的地方都會需要軟體,所以你只要先選定應用,就可以反過來推出你應該先學什麼程式語言。舉例來說,也許你想寫 Android 手機的 App,那你就先學 Java,如果你想寫遊戲,就可以學 C# 在 Unity 平台上開發,如果你真的不知道學什麼,那就學 Python,因為它的應用很廣泛,很多平台都會用到 Python。就像我的故事,什麼語言都可以,即使是過時的 Pascal 也沒關係(當初 Pascal 讓我對程式語言開竅後,我再也沒用 Pascal 寫過一行程式),但是不建議從網站的基本語言 HTML/CSS 開始,因為這是標記語言和其他語言不是那麼的相通。
現在 ChatGPT 那麼厲害,你可以透過跟他聊天,把你的問題與想法跟他溝通,例如你想開發什麼樣的產品,這樣會需要用到什麼平台,什麼程式語言之類的。如果 ChatGPT 講太多,你看不懂或者希望他精簡,也都可以告訴他你實際的感受與問題,他也會給你符合你需求的答案。AI 只是一個工具,不要逃避,善加利用,是增加效率的好東西,以後對你寫程式也有幫助。
看清未來趨勢,成為科技搶手人才
從種種的跡象顯示,軟體的確已經成為下個世代的產業主流,例如 AI 人工智慧、App、大數據、物聯網等等的重要趨勢都是建立在軟體設計上面的應用。由於台灣這幾年面臨轉型危機,無論是傳產還是新創公司,對於軟體能力的需求越來越大,薪資福利也都開得很不錯,目前呈現粥多僧少的現象可以好好利用。最後這裡附上三小時線上課程(四選一),可以透過我們合作夥伴聯成電腦的獨家優點來提升自己的軟體能力:
- 深耕教育超過 25 餘年,推動國人的電腦專業不遺餘力,培育上萬人進入電腦軟體產業。
- 首創 168 安心學習服務,透過符合政府評核的一貫式教學,讓學習與就業緊密結合。
- 超過十個就業機會、全國徵才見面會、大型廠商聯合徵才讓結訓學員挑選。