1. 程式人生 > >一箇中國碼農在矽谷求職的經歷

一箇中國碼農在矽谷求職的經歷

每一個優秀的工程師可能都有一個矽谷夢,在全球頂級的網際網路公司,和最優秀的工程師一起,做最酷的事情。這裡,我希望能通過自己最近找工作的經歷,幫助大家瞭解矽谷求職的途徑與流程,拉近你和矽谷的距離。

美國工作的前提——簽證

大家聽得最多的應該就是美國工作簽證 H1-B ,每年 4 月,所有申請人在公司的 sponsor 下,統一進行抽籤 (lottery),角逐 85000 個名額。

因為其中 20000 個名額是保留給擁有碩士 / 博士學位的,所以近年來,本科生中籤率大約 25%,碩士 45%,與國籍無關。

H1B 歷年申請人數(2017 年 —23600 人)

?wx_fmt=png&wxfrom=5&wx_lazy=1

https://frontsimple.com/posts/h1b-2018-lottery/

谷歌,微軟,Facebook 每年都會在中國大陸招人,並 sponer H1B 簽證,如果一切順利,當年 10 年就可以來到矽谷 , 享受加州陽光。

如果不幸沒有抽中 H1B,根據不同公司的政策,可能會 relocate 到加拿大,英國,瑞士等不需要簽證配額的國家,也可能第二年繼續幫助申請。面試之前,可以和 Recruiter 瞭解這些情況。

第二種方式是申請美國研究生,獲得碩士學位,擁有美國留學經歷的同時,還能畢業後得到 (1+2) 年 OPT 工作機會 (文科專業只有 1 年 OPT 工作時間)。

三年工作期間可以進行三次 H1B 抽籤,如果運氣不是超級差,都可以獲取 H1B 機會。

美國碩士專案時間長短不一,1-2 年,有的甚至可以根據自己的選課進度適當調整。美國碩士申請比歐美國家可能略難,但是隻要英語過關,考過託福 /GRE,一般都可以申請到學校去讀。

不過,近年來 CS 專業水漲船高,隨著申請者越來越多,申請難度也越來越大。

OPT 全稱 Optional Practical Training(選擇性實習訓練),我想最初應該是給留學生畢業實習設計的,隨著情況變化,變成了一種美國畢業學生找工作的福利。利用 OPT 1+2 年的緩衝,找到工作,並獲得 H1B 簽證。 

1+2 年中的第一年,任何美國畢業生都可以申請,另外 2 年為 STEM 專業專有 (大部分理工科專業,詳細列表可以檢視:http://stemdegreelist.com/stem-degree-list/)。 

OPT 畢業後才可以開始使用。

與 OPT 類似的是 CPT,即在校期間的實習 (工作) 機會,美國留學生在 Google, Facebook, Microsoft 等公司實習期間就是使用這種身份。

CPT 要求來美一年後才可以使用,根據學校要求,可能還有每週工作時間的限制。

CPT/OPT 還有一大要求就是要從事專業相關領域的工作,EE 可以做 CS 的動作,統計可以做 Machine Learning 的工作。但是如果專業和工作 match 度很差,可能面臨拒絕申請的情況。

CPT/OPT 的存在,給努力學習,刷題找工作的同學們留下了寶貴的美國工作機會。但是也讓一些學校變得可以“掛靠”,即利用學校學生身份留在美國,投入少量時間上課,利用 CPT/OPT 進行工作,並最終獲得 H1B。

還有一種是 L1 簽證,跨國公司的高階員工,通過這種方式,到美國同一家公司工作。微軟、Amazon 都有這樣的機會。但是由於 L1B 只能為這一家公司工作,很多人到美國後可能會轉換成 H1B 簽證。

矽谷面試流程

矽谷的面試流程一般是以下流程:

  1. 投簡歷。到公司官網或者 LinkedIn 上申請喜歡的職位,或者利用 Indeed.com 搜尋職位。

  2. 被公司 Recruiter 發現。Recruiter 會根據 Hiring Manager 的要求進行簡歷篩選,然後和 candidate 進行聯絡,一般是先通過 email 預約電話時間,然後電話上問一些基本的問題,一般包括簡單的介紹,工作經歷,簽證身份等,只要被 Recutier 聯絡,一般都可以進行到下一步。

  3. Recruiter 聯絡後,會讓 candidate 提供幾個可以 phone interview 的時間。並安排工程師進行電話面試。

  4. Phone Interview,這一輪是和國內面試最不一樣的一輪,一般不會 focus 在你的背景,只是自我介紹時做個開場白,甚至都有可能跳過。

    最重要的是,在 30-40 分鐘時間內,解決一道 Leetcode easy 到 medium 難度的程式設計題。只有思路不可以,要完整的用程式碼寫出來,bug free 是基本要求,同時也會詢問時間 / 空間複雜度。

  5. Onsite Interview,如果 Phone Interview 通過的話,會安排 onsite Interview。工程師 Candidate 的話,是在一天內安排 4-7 輪面試,每輪 45 分鐘到一小時。

    Onsite Interview 一般也是以 coding 為主,在白板上寫出 bug free 的問題,有些公司甚至要求現場編譯通過,test 全過……同時,根據面試的角色,可能會被安排 system design 的面試,如: 如何設計一個 key-value store database

  6. 通過 Hiring Commitee,如果面試順利,Hiring Committee 會對候選者進行一定的評估,並由他們來 approval 或 deny。

  7. Offer! 到這一步,會受到 recruiter 的 congratulation,然後探討薪水與股票。如果這個時候有多個 offer,是最理想的情況,可以在有底牌的情況下談判。

    但是也要謹慎,recruiter 都是有一定經驗的,一個好的 package 可能要經過一定的鬥智鬥勇。

在上面的步驟中,沒有提到 team matching, 這是因為不同的公司有不同的 team match 方式。

有的是在面試前,在 recruiter 聯絡你的時候就已經確定是哪個組,大部分公司是這種模式,如微軟,Amazon 社招;有的是面試後,發 offer 前,會安排不同的 team 和 candidate 進行接觸,互相選擇,如谷歌,Linkedin;還有的是在入職後,進行一段時間 bootcamp,再進行 team 選擇,如 Facebook,Airbnb。

Sign offer 後,公司的 immigration team 或者律所就開始為 candidate 處理簽證,移民等檔案。這個過程一般只需要提供個人資訊即可。

矽谷最受歡迎的公司和職業

矽谷的公司其實很多很多,這裡列舉一些中國人關注度較高的公司 (排名不分前後):

Google, Facebook, Linkedin, Microsoft, Apple, Amazon, Yahoo, Uber, Snap(洛杉磯), Airbnb, Pinterest, Dropbox, Quora, Twitter, Ebay, Yelp, Nvidia, Intel, Oracle, DellEMC, HP, IBM, VMware, Cisco, Salesforce, Arista, PureStorage, NetApp ,Stripe.

這些公司都有不錯的簽證政策,公司也比較穩定。目前來看,矽谷的工程師工作有以下幾個大類:

  • Frontend: 發展迅速,百花齊放

  • Backend: 公司統一框架,統一開發流程,向標準化發展中

  • Infurstaure: 老牌公司做 Server 的軟體,網際網路公司開發新一代工業必需品 (如 Kafka)

  • SRE/DevOps: 讓工作越來越自動化。

  • Data Scientist/Data mining: 統計、數學背景的比較有優勢

  • Machine Learning/Deep learning: 全球最熱

這些職業發展方向也是各有個的特色,每個方向又有不同的分支。選好一個方向,認真做下去,也許會有意想不到的收穫。

矽谷的 Offer 多大與生活成本

矽谷的 offer 也會被叫做 package,由以下這些部分組成:

  • Base Salary(年薪)

  • RSU(限制性股票,按年或按季度授予)

  • Sign on bonus(簽字費)

  • Relocation(搬家費)

  • Yearly Bonus(年度獎金)

根據作者瞭解的資料,不同職位與工作經驗可以參考下表:

?wx_fmt=png

生活成本

如果是單身,H1b 簽證,12w 年薪:

  • 扣除保險,養老 401k,稅務 (約 35%, 聯邦稅 + 洲稅),每月到手 6000-6500 美元

  • 房租 / 車輛保險 / 油費 / 話費 / 網費 / 水電煤  2500 美元

  • 飲食的話,午飯可以 15 美元內解決,平時聚會,50 美元可以吃頓非常不錯的。

  • 如果沒有特別消費,理想情況下可以剩下 3000 美元。(FYI, 矽谷房價約 100W 美元 +)

如果成家立業:

夫婦年收入 30 萬,供著一個學區一般的平均價位房(現在灣區除了一些學區太爛或者治安超級糟糕的區,房價沒有下一百萬的),扣除 Fed tax、CA tax、SSN Tax、Medicare Tax、LTD tax、醫療保險,還剩 19 萬;再扣除 3 萬 2 的 401(k),還剩 15 萬 8,平均每個月稅後到手 13,167。

每月固定開銷:

  • 房貸 / 保險 / 地稅: 3,500

  • 兩孩 pre-school/daycare:2,500

  • 529 plan:2,000

  • Roth IRA:800

  • 小時工: 800

  • 吃飯: 800

  • 車保: 240

  • 汽油: 200

  • 才藝班:200

  • 電煤氣:100

  • 水 + 垃圾:100

  • 電話上網: 70

  • 手機費:70

  • 人保: 80

  • 小計:11,460

其他開銷平攤到每個月:

  • 一家四口每年回國一次:700

  • 其他旅遊:100

  • 衣物化妝品:400

  • 日用品:100

  • 小計:1,300

因此一家人每月可支配收入為 13167-(11460+1300)= 407。碰到大的不可預測開銷,還得向家裡要錢。

(引用: 知乎 https://www.zhihu.com/question/50662770/answer/122675446)

各大公司面試風格與建議

Google: 業界標杆,不斷的創造新題目,需要對資料結構和演算法非常熟悉 , 甚至要對圖論有一定的研究。

谷歌好的一點,他們不像某些宗教公司,迷一樣要求 bug free,谷歌更重視對題目的想法,有一個好的想法,一個不漏 corner case 的虛擬碼,也可以贏得面試官的認可。

同時,test case 要主動新增,時間複雜度,空間複雜度的分析要準確。雖然 Google 面試題目不斷更新,但是最近一段時間內的面經題目還是可能高頻出現,可以針對這些題目做些準備。

微軟:微軟有 New Graduate 招聘,Hiring Event 招聘,普通社會招聘。以 Hiring Event 為例,微軟 recruiters 會群發郵件邀請參加 Hiring Event,報名並通過簡歷關後,會安排 phone interview 或 Online Accessment 測試(在網站上做 3 道題),通過後會安排候選人 travel & hotel 等事宜。

在某一天,將所有候選人聚集在西雅圖,有對應的 Hiring Team 工程師面試所有人,一般 5 輪,每輪 45 分鐘,面試完成後面試官對候選人投票,到一定票數後,基本可以確定錄取。 

微軟的題目不難,尤其是 Hiring Event,基本都是 medium 難度以下。 值得一提的是微軟對候選人的旅遊住宿交通是非常的用心,每一個參加過微軟面試的人都對整個面試流程非常滿意。(作者去面試的時候還免費 upgrade 了一輛頂配的野馬跑車,非常拉風。)

Facebook:Facebook 是忠實的 leetcode 題目使用者,並且和 Leetcode 題目與時俱進,不斷出現 leetcode 上的新題。所以面上 Facebook 的唯一途徑就是刷 leetcode,刷很多很多遍。 

Facebook 對寫程式碼的準確度和熟練度都有很高的要求,甚至思路都不 care(反正是 leetcode 題目),但是要對,要快,45 分鐘內可能要解決 2 道題,完整程式碼且 bug free。Facebook 的 signon bonus 是非常的迷人,對於非常好的候選人,甚至能給出 10W 美元的 sign on bonus。

Airbnb:Airbnb 是非常受歡迎的公司,薪水高,福利好,公司環境一級棒。Airbnb 的題目是 Hard Level,並且要求編譯通過,test 全過,難度可想而知。

但是 Airbnb 有趣的一點是,他們的題庫非常小,coding 題目 30 道左右,system design 5 道左右,只要把這些題目準備好,應對 airbnb 的技術面試,難度大大降低。

除此之外,Airbnb 還有兩輪“價值觀”面試,從他們的角度瞭解你是一個什麼樣的人。

官方介紹如下:

Cross-functional interviews: Core Values are the foundation to Airbnb’s amazing culture. 

Everyone who interviews at Airbnb has two or three 30 minute conversations that will be based on the values of our company and why you would want to work at Airbnb, role and team aside. 

We’re passionate about our product and really driven by our mission to create a world where all 7 billion people can belong anywhere. 

These conversations will touch on these subjects and are focused on getting to know you better as a potential future colleague.

Airbnb 薪水高,股票高,考慮到以後上市,股票翻倍,package 應該是目前幾大公司最棒的。

如何刷題

通過上面的介紹,可能大家已經認識到了,矽谷公司面試對演算法題要求很高,雖然他們自己也認為這些題目不一定能在以後工作中用到。

但是作為一個客觀的考察方式,無論什麼樣的 level,都免不了演算法環節,尤其是 5 年工作經驗以下, 演算法是整個面試的重頭戲。

針對這些特點,誕生了 leetcode.com 這個網站。這個網站對題目按照知識點 (Topic) 進行了分類,大家可以按照不同的知識點按類練習。

leetcode 作為一個 oj,提供了足夠多的 test cases,同時 discussion 部分有很多精彩的回答可供參考。

演算法與資料結構的準備幾乎要花上三個月的時間,面對 FLAG 這類公司,要做到 Medium 一下題目秒殺,Hard 題目一小時內解決。

Leetcode 題目可能要刷上 3-5 遍,不一定全刷,但是一定要保證各個類別都有涉及,1000 題應該是個 magic number。

刷題是枯燥的,Youtube 上有一位印度人 對 leetcode 的題目的講解,推薦大家觀看。 

同時也有一些培訓機構,如九章演算法 ( https://www.jiuzhang.com/),來 offer(https://www.laioffer.com)。如果有經濟實力的話,推薦大家報名參加,會比自己單槍匹馬效率高很多。

最後,祝大家好運,歡迎在 Chat 中和我交流。

近期熱文