作者 Nick 是台灣長大的囡仔,畢業後在矽谷工作,至今軟體經驗超過二十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常了解初學者的痛點,在此與大家分享學習程式語言的訣竅與方法。
每次問說先學哪個程式語言好,總是有人半開玩笑地回答「英文」。似乎很多人認為想要學程式語言,一定要先把英文學好,造成很多英文不好的人就先打了退堂鼓,我看了覺得可惜,因為英文好不好其實沒有太大關係,即使英文再差還是可以把程式語言學好,以下我就詳加說明。
我英文很差,是否可以學好程式語言?
可以!為什麼?就用我本身的經歷來證明吧。我是在國小時開始接觸到電腦,那時只是喜歡玩裡面的遊戲,玩了一陣子之後就在想,怎樣才能把遊戲做出來,問了人之後原來是透過程式做出來的,因此我開始想要學寫程式,那時我才國中一年級。由於學校沒有教,我就自己看書,也去電腦補習班,但是依照我國一的程度,其實學得有點困難,書本寫的我看不懂,老師教的我也聽不懂。但正是因為不懂,更是引起我的好奇心,我並沒有放棄,還是繼續研究程式語言。就這樣六個多月之後,忽然有一天我忽然整個融會貫通,我終於知道書本在寫什麼,老師在教什麼了,從此寫程式對我來說易如反掌,就算我大學不是讀電腦相關科系,最後還是到了美國念資工系(Computer Science),並留在矽谷成為軟體工程師。
所以我在國一時學會寫程式,那時我的英文程度可以有多好?不過就是國一的程度,國一才剛教完 ABC 二十六個字母(在我那年代,國中才開始學英文),單字量也非常的少,但卻沒有影響我程式的學習,因為寫的是裡面的「邏輯」並不是在寫英文。
雖然程式裡面好像有許多英文單字沒看過,其實所有程式語言的保留字或者函數庫名字都是固定的英文,用多了就會自然記起來,就算不知道這些英字本身英文含義也沒關係。至於你命名的變數名稱大不了就是比較醜的名字(例如 flagA, flagB),只會影響可讀性,並不會影響程式的執行,更不會影響你的學習。
太好了,我可以不用念英文了?
錯!如果你要更上一層樓以及增加日後的學習效率,英文的好壞就很重要:
- 電腦軟體相關知識一直有新東西出來,如果你要保持在在科技的前端,獲得第一手資訊,看英文資料才是最快的方式,不然你就得等資料被翻譯成中文。
- 雖然很多資料有中文,但是還有很多資料並沒有翻譯成中文,如果你想要閱讀更多、更完整的資料,一定要看英文。另外,很多資料如果你不看英文,可能就得看「簡體中文」的版本,畢竟中國大陸人口眾多,很多資料被翻成簡體中文。
- 許多服務與資源還是英文居多,例如全球最有名的程式問答網站 StackOverflow 也是用英文在問答。中文的問答網站沒有那麼大的社群,無論是回答速度、數量還是深度,StackOverflow 絕對是軟體工程師的第一首選。
電腦相關知識日新月異,你只要到達一個程度,再來幾乎都是透過自學來學習新的東西,所以如果學習新資訊的效率好,同樣五年的時間,英文好的可能學得比英文不好的多好幾倍,這樣差距就出來了。所以有時候你看到同樣是五年年資的軟體工程師,為何一個可以比另一個厲害好幾倍?除了天份外,就是學習效率的差異。
別擔心,英文不是很好還是可以做成很多事情,但是在生涯規劃裡,建議還是要把英文學好這件事情安排進去,因為無論是在學習上還是工作上,英文好不好還是有差。另外就是「不要拖」!我遇到很多年輕人都很有上進心,都說想把英文學好,但都只是說說,卻沒有實際去做,或者做了一兩個月就默默地沒下文了。再過幾年後,很有可能在職場上已經定型或者也沒衝勁了,學習英文這件事情也就完全消失不見。
如果你從小在美國長大,肯定你的英文也是很好,所以不是有沒有英文天份的問題。英文好的人不是因為他天生英文好、聰明還是出過國,而是他有花時間去接觸英文,他所知道的每個單字也都是花時間去學習,因此英文不好的原因很簡單,單純是懶惰而已。同樣地,程式學不學得起來最大的問題不是能力好不好、英文好不好或者數學好不好的問題,而是本身的興趣夠不夠,是否願意好好花時間在上面而已。
看清未來趨勢,成為科技搶手人才
從種種的跡象顯示,軟體的確已經成為下個世代的產業主流,App、大數據、物聯網、虛擬實境、人工智慧等等的重要趨勢都是建立在軟體設計上面的應用。由於台灣這幾年面臨轉型危機,也出現越來越多科技新創公司,對於軟體工程師的需求越來越大,薪資福利也都開得很不錯。不過台灣雖號稱科技之島卻找不到軟體工程師(因為過去是硬體導向),目前呈現粥多僧少的現象可以好好利用。最後這裡附上「快速上手」三小時程式語言課程(三選一),可以透過我們合作夥伴聯成電腦的獨家優點來提升自己的軟體能力:
- 深耕教育超過 25 餘年,推動國人的電腦專業不遺餘力,培育上萬人進入電腦軟體產業。
- 首創 168 安心學習服務,透過符合政府評核的一貫式教學,讓學習與就業緊密結合,每個學習的環節都有意義。
- 超過十個就業機會、全國徵才見面會、大型廠商聯合徵才讓結訓學員挑選。
因此如果你對軟體有興趣或者想要成為科技搶手人才,只要填寫以下表格就可以獲得「快速上手」三小時程式語言課程:C#(Unity 遊戲製作)、 Java(安卓 Android 平台) 或者 Python(應用廣泛),這些都是學習軟體很好的出發點,並可以了解自己對程式語言的接受度再來規劃,每人限填一份喔: