
需要為了某個職位學習新的程式語言嗎?
上一篇軟體工程師美國找工作經驗分享大致介紹美國矽谷缺人才的情況,以及我以半路出家之姿依然可以得到許多面試經驗,來傳達舊金山灣區的科技榮景盛況。本篇作為求職準備篇第一章:程式語言這麼多,如果我已經有經驗(或沒有經驗),我需要學特定語言嗎?
精簡版(如果以下太長,這段就是精簡的結論):如果你已經有經驗、有慣用的語言,把你最強的語言練到更強,不用刻意新學另一個語言,公司會找會你語言的工程師來給你面試。如果你還不會寫程式,那你可以選擇學習你理想工作中最常用到的語言:如果你想做網頁開發,你可以選擇 JavaScript、Ruby、PHP 或 Python(時代註:這是 2015 年的主流列舉;到了 2026 年,TypeScript 已成為 GitHub 上最多人使用的語言,Ruby、PHP 在新專案中的占比也大幅下降);如果你想做手機 app 開發,那就是 Kotlin(Android)或 Swift(iOS)(Google 自 2019 年起對 Android 採 Kotlin-first);沒有特定想法的話,C++ 和 Java 在許多公司都是一般類(generalist)軟體工程師會用到的。
有幾個朋友問我是否要特別學一個新的語言,來為未來找某某公司的工作做準備。我經驗沒有很多,程式語言會的也沒有很多,但我的經驗中,面試過程公司的第一關電話面試,人資都會問我最拿手的程式語言是什麼,他們的下一關技術面試就會找懂這個程式語言的工程師來給我面試。Google & Facebook 的人資都特別和我確認,他們通常是找 general hire,就是找沒有一定要會某個領域(或某個程式語言)的人才,他們都是看你是不是聰明、懂團隊合作、會持續學習新技術的人才。Facebook 的人資舉例說:Facebook 我面試的團隊沒有在用 Ruby,但是之前面試的候選人他的強項是 Ruby,他們也就找了會 Ruby 的工程師們來給他面試;他通過最後的公司面試,Facebook 也發給了他工作。他們相信,如果你的電腦科學基礎很穩固,又是會持續學習的人才,你一定可以學習職位需要的語言並融入團隊。
當然並不是每家公司都像 Google 及 Facebook 這樣子,但不論如何,你需要一個最強的語言,熟悉這個語言的寫法,目前這語言最紅、最好用的 framework 及 library 都要有所了解。我面試經驗中,其中一個小的新創公司需要很熟某個領域的夥伴加入,他們希望你最強語言的專業,可以在 architect(系統架構設計)上提供他們不同的意見,甚至是較好的解決方案。
所以,別擔心你的夢想公司沒用你的最強語言,練習用你的最強語言嘗試解決各種不同的問題。只要你是這個語言的專家,你的面試機會是會多到無法想像的!(時代註:這句話寫於 2015 年矽谷大缺工的時代;到了 2026 年,工程師入門市場已大幅收縮。)
本文原發表於舊站「半路出家軟體工程師在矽谷」(2015 年 8 月 8 日)。該站現已下線,全文由 Wayback Machine 備份保存,搬到本站時做了輕度編輯,並依現況加上時代註記。