想去美國科技業請參考!Google、Facebook、Microsoft 等面試心得

抱著去美國科技業工作的夢想嗎?那麼請進。本文刊載了作者如何赴美一邊念學程,一邊在矽谷科技業求職的心路歷程。
評論
評論

原刊於 PTT Soft_Job 版,INSIDE 經作者 sorryla 同意後轉載。本文刊載了 sorryla 如何赴美一邊念學程,一邊在矽谷科技業求職,最後前往微軟就職的心路歷程,其中許多知名的矽谷企業都投過履歷。以下分為「求職經歷」與「面試心得」兩大部分,讀者可依自己需求參考。

先自我介紹一下,我是國立台灣大學資訊工程學系(Computer Science)學士以及碩士,研究領域為電腦視覺以及影像處理。從台大畢業後進入趨勢科技當研發替代役的工程師。全職工程師經驗約 3 年。主要擅長寫 C/C++,役畢離職後決定開始行動追求以前的夢想:到美國軟體業闖關,所以先跑來矽谷唸 UCSC extension 的學程班當作一個跳板。最近課程結束了求職也告了一段落,於是寫了一些心得想分享給大家。

求職經歷

以我個人這 9 個月的 CS(編按:就是 Computer Science)求職經驗來說,最重要的條件是有無在美國合法工作的身分,再來是工作經驗,再來則是學歷。由於 Certificate program(編按:類似於進修學程)是屬於比較特殊的無學位學程,所以我經常得跟人資們說明清楚我的情況,像是我已經有碩士學位也有工作經驗,念這個學程是為了合法身分等等,試圖說服人資不要把我當作 new grad(新人)看待。

我在 2015 年 9 月到美國時就開始嘗試著投履歷了,但絕大部分都是沒下落的,然後會有一些獵人頭和人力資源公司的人聯絡,但這些人一開始就會先詢問有無合法工作的身分,需不需要 VISA Sponsor,由於現在 H1B(工作簽證)競爭激烈,需要靠運氣才能取得,所以這一點變成很多公司徵才的第一要件。

願意忽略身分問題而給面試機會的公司基本上都是跨國大公司如 Google、Amazon、Apple、Bloomberg 之類的,所以相較之下沒身分的人要拿到面試的機會非常的低。我個人到美國的前半年只拿到了 JP MORGAN 和 Google 的面試機會而已。直到我快要取得 OPT(Optional Practical Training,校外工作許可)前的三四個月,面試機會才開始增加。

我的求職策略是能請人幫忙內推就請人,沒有的公司就海投,投個一兩百家不為過。看到有 HR 在 FB 社團發文就傳訊息問,Hacker News 上的職缺適合的就寄信,LinkedIn 上職缺都給他申請下去,總之就是免錢似的投履歷就是了。不用想說這個職缺是否適合你,或你認不認識這家公司,因為八九成的公司是連理都不會理你,所以不用想太多。

這個策略主要的目的其實是想辦法拿到面試的練習機會而已,能夠有越多的面試機會,才能讓剛從美國來、連英文都還不是很熟悉的人多一點練習的次數。不過即使是我這樣的策略,我拿到非內推的面試機會也是寥寥可數,內推的面試機會則是有 50% 左右。

此外 LinkedIn 上面的履歷盡量更新的豐富一點,有時候會有一些 Recruiter(招聘人員)寄信來問,不妨多跟一些 HR 聊聊,即使他們公司最後沒打算給你機會也沒關係,只要你有跟他加到好友,那他的 HR 的朋友就可以從他那邊看到你的履歷,能見度還是會增加的。

美國 CS 雖然職缺也很多,但想應徵的人更多,而且大多數公司都想找有合法工作身分的人選。所以不要認為會寫程式就可以輕鬆來矽谷找到工作,那是完全錯誤的。

面試心得

矽谷大多數公司的面試流程都是:

  • 線上測驗或電話面試 (或兩者皆有)
  • 通過第一關後邀請 On site 面試,連續 1 ON 1 車輪戰面試 4~5 關
  • 通過 On site interview 的話,如果經理同意錄用,則進入談薪給 offer

如果你過去對英文沒有下過很大的苦心去練習,那來美國遇到的第一關電話面試就會讓你吃足苦頭。在 CS 界遇到印度人面試官是家常便飯的事情,印度腔英文、電話通訊的品質以及無法使用肢體語言的限制,會讓電話面試成為初來美國求職的一大挫折。

以軟體工程師的面試而言,刷 leetcode 練習是必要條件,但不是充分條件,絕對不是像鄉民說的 leetcode 刷完就一定找的到工作,面試中解出題目其實只是評分的一部份,你如何跟面試官互動討論,說明你的思考,如何測試你的程式等等都很重要。就算真的全都解出來,也不一定會拿到 Offer,還得看同時間的競爭者的程度如何。

練習 leetcode 可以熟悉一些面試常考的基礎演算法和資料結構,但如果只是單純背題目的話,一但遇到沒遇過的題目就很容易慌,所以要練的是心法而非架式,要懂的是演算法而不是解題方法。除此之外,在面試前也可以多參考一下 glassdoor、一畝三分地、CareerCup 上面的面試心得,會有一些最近該公司考的題目,可以稍微思考一下如果被問到的是你,你會怎麼做。

以下是我個人的面試經驗:

  • 拿到 offer:Nutanix,Microsoft
  • Onsite interview 後被拒:Cisco,Facebook,Google,Two sigma,Youtube
  • Phone interview 被拒:Apple,Yelp,JP Morgan,indeed
  • 人資 screen 後不符資格:LinkedIn,Dataminr,sportsvision ... 很多新創公司
  • 履歷直接被拒或無下文:Twitter,Uber, Airbnb,Oracl,Mozilla... 太多了記不清
  • 其中內部推薦的有 Facebook,Google,Yelp,Cisco,Microsoft,Apple Nutanix

以下為一些公司的面試心得:

Cisco: 我是透過朋友直接內推給部門主管而拿到面試的,所以流程比較不一樣,我完全沒有接觸到人資,從頭到尾都直接跟用人主管接洽。一開始是先用 webex 來一場電話面試,是一個印度小哥,問的問題很多很雜,從網路基礎 osi model, switch 到資料結構演算法的 coding problem 都有,面了約一小時才結束。過一個禮拜後聯絡主管而拿到 onsite,onsite 共有五關,基本上全都是 coding problem, 只有一關是偏 system design。

午餐是由朋友帶我去吃公司的 cafe。寄信詢問主管後主管說兩個禮拜內會有決定,然後會通知我,但後來就完全沒有消息了,所以最後其實拿到的是無聲卡 XD。不過 Refer 我的朋友有跟我說面試官們對於我的 Coding 能力都覺得不差,只是有一兩位面試官覺得英文能力還得再加強。同時那個職缺有另一個面試者因為還有 QA 的經驗,所以當時比較傾向於錄取那位有 QA 經驗的面試者。

Facebook:Facebook 在去年底我剛開始唸書的時候就連絡我了,當時我跟他說我 OP T 隔年六月才生效,不知道能不能先面試先抽 H1B,人資說還是希望我 OPT 開始前幾個月才來面試,並跟我約隔年四月再連絡。原本以為 Facebook 只是應付我一下,沒想到隔年四月真的連絡我了。面試的流程一樣是電話面試然後 onsite 面試,由於當時剛好拿到 Nutanix 的 Offer,所以問看看人資能不能加快面試流程。不得不說 Facebook 的標語 move fast 真不是蓋的,效率極高的結果就是將兩個禮拜後的電話面試提早成兩天後。

電話面試完隔天就說要安排 Onsite,Onsite 完隔兩天就發 Thank you letter。Facebook 的辦公室很寬敞,一整棟超大辦公室連在一起,而且全都是開放式空間,頂樓還有個花園可以逛。Onsite 面試內容有兩關是純粹考 Coding problem,一關為 culture fit 和 coding,由於我是以 experienced role 來應徵的,所以還有一關是專門考 system design。收到感謝信後人資說雖然這次很抱歉沒有錄取,但希望未來還是有機會能夠繼續合作。

Nutanix: 一家穩定成長的 pre ipo 公司,由朋友幫忙內推而拿到面試。一開始電話面試有兩次,第一次是印度人主管,考兩題跟 binary tree 有關的問題。第二次運氣很好遇到同學認識的中國同事,所以就用中文聊聊天就過了 XD 接著就接到 onsite 的通知,公司位於 San Jose 機場旁邊的新創區,離 downtown 很近。

這邊 onsite 總共有五關,內容也是 coding problem 居多,但有一關是考數學證明題,算是比較特別的問題。公司裡面雖然沒有廚房,但公司會提供午餐,我那天的午餐是美國蠻有名的一家 pizza,帶我去吃飯的同事剛好是第二關電話面試的中國人,就跟他到個謝聊個天後結束午餐。面試完後隔了一陣子都沒消息,所以寄信詢問人資,人資收到信後就打電話一直問我對那個部門有興趣之類的,卻又不跟我說面試結果如何。最後我跟他說如果我的面試回饋是偏正面的話我想要取消其他小公司的面試,人資就聯絡我說要給我 offer 了。Nutanix 是間很不錯的公司,package 也開的不差,可惜我因為 OPT 簽證只有一年,選擇新創公司在未來簽證和身份取得的問題上會比較不方便。

YouTube:YouTube 是由 Google 人資轉介紹給我的,因為當初我跟他們說我對 YouTube 比較有興趣。由於這時候我已經拿到微軟的 offer,所以跟他們說我希望可以加快面試流程。結果對方就決定直接跳過電話面試直接邀請我 onsite。公司本部在 San Bruno,辦公室區域不大,約只有三棟建築物,但裡面還挺開闊的。這邊我總共有 5 關面試,而且題目類型比較多變。

雖然也都需要白板 coding, 不是單純的 leetcode 類型,而是 system design 和討論。面試完後人資會通知說要不要送 hiring committee,如果面試平均分數過低就不會送,送的話才有機會進入下一步。我最後是在 hiring committee 被刷掉,人資說雖然被刷掉了,但覺得我很有潛力,所以希望未來我能再去面試看看。

Google: 在 YouTube 結果通知之後,我原本已經打算就去西雅圖微軟了,結果隔天 YouTube 人資說 Google 有另一個部門對我有興趣,所以想問我要不要再試試看。於是我又在面試地獄裡多打滾了一個禮拜。這次人資只幫我安排了三場面試,遇到的題目就是很標準的 leetcode 形式,面試官也不太廢話,進來寒暄一下就開始寫白板。這次我依然是掛在 hiring committee 這關,人資說有一個面試官覺得我的程式能力很強很好,但另一個覺得我沒寫出最佳解,所以 hiring committee 覺得我的能力還不夠穩定,於是決定不錄用。最後人資希望我能夠再多練習一些題目,10 個月後再跟她聯繫看看是否能夠再度面試。

Microsoft: 微軟這邊的狀況比較有趣一點,其實原本靠朋友內推都沒有下文,自己在網路上投履歷也沒下文。直到我在一個 FB 社團看到一位微軟人資 po 文徵才,我就私訊聯絡她,然後經過一些履歷的 screen 之後我拿到了第一關的線上測驗題。線上測驗總共有三題,網頁很簡陋,就單純文字描述的題目和一個 textbox 給你寫答案。有兩題是演算法題,第三題是 system design 題。由於當時已經先有了 Nutanix offer, 所以我就很放輕鬆的去寫,第三題因為題目描述太簡短,我直接回答說我看不懂題目 XD,一小時的作答時間我只用了 20 分鐘就繳卷。不期不待的我就默默接到 onsite 的邀請... 微軟的 onsite 面試公司會直接幫忙訂機票住宿租車等等,餐費則是事後報帳。我參加的是現在微軟比較新的徵才方式,有點類似海選般的活動。所有獲得 onsite 的候選人會在同一天一起到微軟的面試 building,然後一人分配一間會議室等著面試官進來車輪戰。我參加的是上午場總共四關,從 8 點到 12 點連續面試。

題目也是演算法和資料結構居多,但最後一關考了題 system design, 而且很類似第一關線上測驗的第三題那題我看不懂的問題... 有個有趣的點是上午場總共十幾位候選人,大概有 1/3 是從 Amazon 來面試的。面試前人資跟我們說他們的 opening(職缺)很多,不用擔心其他人是競爭者,只要能力夠就可以被錄取。面試完後隔幾天人資打來問說面試的感覺如何等等,然後說有兩個部門主管想跟我多互相了解一點,所以又多安排了兩通跟主管聊天的電話。聊完後人資請我選一個我比較喜歡的部門,最後獲得該部門的 offer。

Two Sigma:Two Sigma 是唯一一個我沒有靠 Refer 而拿到的 on site,一開始是在 hackerrank 網站上寫該公司的線上測驗題,通過之後對方人資打來安排電話面試。電話面試問了不少問題,包含簡答題以及 coding 題。之後人資寄信通知說邀請我去紐約曼哈頓 SOHO 區的總部 on site 面試。面試為早上連續三關,中午吃完飯後會有早上的面試的回饋,如果有通過的話下午會再三關。

早上的前兩關都是考 system design 相關的題目,第三個則是直接給你一台 Ubuntu 系統的電腦寫程式編譯跑過一遍,我是利用 vim+gcc 寫 C++ 去實作問題。吃完飯之後人資通知說不好意思沒有適合的位置給你,所以下午我就去玩樂紐約了。Two sigma 雖然是做程式交易的公司,但內部環境跟矽谷新創公司的風氣很像,也有開放式空間、micro kitchen 免費食物等等,網路上是說這家公司開的 package 非常的好,所以要錄取也是頗有難度。

Apple: 雖然我沒有拿到 Apple 的 onsite 面試,但我覺得 Apple 這次給我的電話面試的方式我還蠻喜歡的。Apple 這次的面試跟其他公司不一樣,不是考演算法和資料結構,而是利用線上偕同寫作的網頁來看我寫 project。面試官一開始就在網頁上貼了一份小 project 的程式碼約 300 行,然後稍微跟我講解一下這個 project 有哪些 components,然後叫我編譯執行、debug、新增功能等等。這樣的面試方式比較像是實際上在公司工作會遇到的事情,也比較能看出面試者在工作時會遇到問題的思考方式和做法。這是我第一次也是唯一一次在電話面試遇到這樣的考法,所以做起來速度稍微慢了點。可能是完成的功能不夠多所以沒有進入下一關。

通常每一關面試完後都會有一小段時間可以問面試官問題,這邊建議是至少問個兩三題,讓面試官覺得你對於該公司是有興趣的,同時你也可以多了解一點公司的制度和風氣。我個人是有準備一些經典問題,當沒有特別想問的時候就拿出經典問題來問。我最常問的是工程師在貴公司的一天是怎麼樣度過的,或是問說貴公司怎麼樣衡量一個工程師的績效、貴公司對於剛進去的新人有沒有什麼幫助新人快速進入狀況的模式。

由於我的 Offer 數量不多,而且剛好是兩個不同地區的公司,所以要直接拿 Offer 去談薪資不太容易,而且過去在台灣的工作薪資在美國並無參考價值,所以我並沒有跟公司討價還價,Package 跟我上網查的平均差不多後我就接受了。

若想進一步了解其他細節,請至作者 Githu

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數