作者 Nick 是台灣長大的囡仔,畢業後在矽谷工作,至今軟體經驗超過二十年。Nick 在十四歲時自學程式設計,當中遇到很多問題與困難點,因此非常了解初學者的痛點,在此與大家分享學習程式語言的訣竅與方法。
首先,什麼是 side project?這到底是什麼意思?
一般來說,每個人都會有一個正職,例如是一份工作,還是學生要去上學,或者家庭主婦要忙家務等等。在這個正職之外,你還想要做一些事情,就可以叫做 side project。
既然要用 project 這個字,就表示這件事情有目標與時間性。如果你除了正職,其他時間你想要去網咖打電動或者跟朋友吃吃喝喝,這不能叫做 side project,因為沒有時間性也沒有目標。
Side project 有很多種形式,不光是寫程式而已,尤其在美國很多人喜歡在工作之餘做一些自己有興趣的事情,例如有人把一台 20 年老車改裝得很漂亮,還有一個小女孩跟爸爸一起打造了一架飛機等等,這些都是 side projects。以軟體的角度來說,希望三個月做出一個新聞閱讀的 App, 那就是很棒的一個軟體 side project。
走軟體這條路,為何 Side Project 很重要?
- 除了工作之外,side project 是提升你能力的最佳方法。因為很多東西光看書遠遠不夠,必須要實作才能熟練並且融會貫通。而且學程式的唯一訣竅就是不斷地學習與練習。
- 尤其在你還無法找到好工作之前,你必須要透過 side project 提升能力。有些人會覺得你先給我好薪水我就會好好發揮,但現實是公司會看你是否有能力可以直接貢獻,才會把好工作給你。
- Side project 是你的能力最佳「證明」。由於社會新鮮人沒有過去的工作經驗,往往會抱怨工作很難找,這時就是要靠 side project,因為 side project 可以寫入履歷裡面,更可以在面試的過程拿出來給面試官看,不但有助於公司雇用你,也有可能因為你的作品很好,還會增加薪水。
- 對於有經驗的人找工作也是一樣,經歷只是文字,過去公司的專案又需要保密,side project 就可以解決口說無憑的困擾,而且 side project 一拿出來,馬上就看得出來實力,不用怕因為溝通不良而找不到好工作。
- 有時 side project 也可能演變成為一個賺錢的生意。所以說,side project 可以提升能力又能增加收入與創業的機會,何樂而不為?
例如唐鳳在 GitHub (開源代碼平台)有兩百多個專案,這些都可以算是 side project。當然,他真的是天才,像我只是一般人是搞不了那麼多啦,我大約半年到一年會做一個 side project。主要是看有什麼新的、好玩的技術想學,有時候 side project 做得好,還增加了業外收入。例如之前寫的一個 App 本來只是當作學習 Swift 之用,寫完放到 App Store 上面後還滿受歡迎,因此增加了一個額外收入來源,這個 App 讓我每個月多出兩萬多塊的零用錢。
而且你知道嗎?年輕人愛用的 Instagram (IG) 的前身也是 side project 喔。IG 的創辦人凱文本來是做行銷的工作,但他想學寫程式,於是在下班和週末時間做了一些 side project,大部分只是用來練習寫程式,不過他發現其中分享照片的功能很受到喜愛,於是就找一些合夥人一起發展,最後的成品就是 Instagram。而且後來臉書以 10 億美金買下 IG,所以千萬別小看 side project 的意義與可能性。
很多學軟體的人都會有 side projects 嗎?很令人驚訝的,很多人並沒有。我在台灣面試了許多軟體工程師,無論是資深還是資淺的,當我問及是否有自己做的 side project 專案,很多人都拿不出來。我心中最大的疑惑就是,如果一個人對軟體很有興趣,除了工作之外,難道都不會自己想做點什麼嗎?其實你只要用 side project 證明你的程式設計能力,很多 50k-100k 的工作就是探囊取物。所以不要抱怨沒有好的工作,先做一些 side project 來證明你的能力。尤其台灣這幾年面臨轉型危機,出現越來越多新創公司,因此對於軟體工程師的需求越來越多,薪資福利也都開得很不錯。而且台灣號稱科技之島卻找不到軟體工程師(因為過去是硬體導向),呈現粥多僧少的現象可以好好利用,最後這裡附上「快速上手」三小時程式語言課程(三選一),可以透過我們合作夥伴聯成電腦的獨家優點來提升自己的軟體能力:
- 深耕教育超過 25 餘年,推動國人的電腦專業不遺餘力,培育上萬人進入電腦軟體產業。
- 首創 168 安心學習服務,透過符合政府評核的一貫式教學,讓學習與就業緊密結合,每個學習的環節都有意義。
- 超過十個就業機會、全國徵才見面會、大型廠商聯合徵才讓結訓學員挑選。
因此如果你對軟體有興趣或者想要成為科技搶手人才,只要填寫以下表格就可以獲得「快速上手」三小時程式語言課程:C#(Unity 遊戲製作)、 Java(安卓 Android 平台) 或者 Python(應用廣泛),這些都是學習軟體很好的出發點,並可以了解自己對程式語言的接受度,為自己的未來規劃,每人限填一份喔: