矽谷公司招人二三事
有好多朋友問矽谷公司招工程師的基本流程。作為應聘者,我試過Facebook, Google,Yahoo,Oracle,均拿過offer;作為面試人員,面試過不下於300餘人, 清楚大概流程, 做此短文,希望對於希望去矽谷工作的朋友,或正在準備面試的朋友, 或正在設計招人流程的創業公司有所啟發。經驗有限,如有毗漏, 請指正。
面試機會
在矽谷, 最容易獲得招人的機會是熟人推薦。就是目標公司的某某人是你的朋友,你讓她給你做一個內部推薦。Facebook大概60-70%的員工是通過這種方式僱傭的。Facebook最早期的一大撥中國籍工程師都是我做內部推薦面試進來的。熟人推薦對於求職的朋友還是公司相對成本都要低。對於求職的人,可以通過熟人瞭解公司內部的真實情況; 對於公司, 熟人的推薦讓求職人的質量得到一個背書。也是介於此, 我收到過不下200多個推薦的請求, 但我決定做的推薦不到100, 其中有12個朋友成功了,每個成功的推薦公司給5000刀的獎金。做內部推薦的員工應該對自己的推薦有所篩選,不能一味為了推薦獎金來一個推一個; 否則, 很快你的名聲要爛掉。
這裡講一個我自己的故事。 我找到的第一份工作是通過2005年在Chicago的KDD大會上和Yahoo 資料探勘部門的一個技術總監陶瓷獲得的面試機會。 開會的閒暇時間, 我在展廳裡面瞎晃盪, 和各個booth的人聊天,聊幾句後提提我正在找工作, 問他們有沒有合適的機會; 到了Yahoo的展廳之後,和該技術總監聊了一會之後我們就去到酒店的大廳中找了塊乾淨的地板坐下來, 開始面試。 對幾個大的問題探討了演算法上的設計, 貌似他比較滿意。 之後他讓他的一個工程師在第二天做了一個電話面試就把我飛過去了。這裡想說的是你如果想找工作, 試試在你"未來同事未來老闆"出沒的活動,場所之中, 認識他們, 讓他們對你感興趣, 然後通過他們做內部推薦。
另外的幾種方式就比較常規, 如集中性的校園面試,通過網站完成Puzzle提交簡歷 ***成功率極低***,在各種程式設計大賽中出類拔萃被發現。
還有的就是公司主動出去挖的人, 這屬於高階人才,我挖過一些資深的工程師; 這些人往往不容易動,如果你是這種人的話,恭喜你,你不需要讀這篇文章。
流程
絕大公司的流程都是因為上述的途徑***內部推薦,學校面試, 網站申請等等***開始對一個簡歷產生興趣, 然後讓Recruiter聯絡,做一個摸底性質的電話面試, 然後是2-3個電話面試, 最後就是到場面試4-6個人。大多數公司是一輪。
Recruiter的電話面試
這個瞭解是雙向的。 聊聊應聘者的一些經驗和背景, 他們感興趣的方面, 為什麼換工作, 對這份工作有什麼特別的要求等等; 聊聊公司的一些基本情況, 尤其是公司文化等等, 現在空缺的職位, 還有對面試人希望有的基本要求。
電話面試
一般是30-45分鐘。 我通常是花40分鐘讓對方做兩道題, 然後花5分鐘讓她問問題。一般做完第一道題,我會問自己,要不要做第二道;不管如何,我一定騰出這5分鐘讓對方問一些關於Facebook的問題。 這是對對方一個起碼的尊重。由於是40分鐘兩道題, 不能太複雜, 一般是程式設計集中但設計沒有太多挑戰性的問題, 比如翻轉單向連結串列 ***reverse a singly linked list***, 可以換itereative或recursive的要求來寫,中間問很多問題。通過像 我們雙方打的字都可以裡面看到。
第一個電話面試後我需要在一個內部工具寫上我的反饋, 可以建議後面的一個電話面試可以更加關注哪些方面。
現場
一般見4個人 ***2005年我在Oracle見了10個人…***, 每人45分鐘。 其中有2。5人會集中在coding上面進行考察, 0。5個人考察culturual fit, 1個人專注design。 典型的coding問題應該在網上都能查得到,這裡就不提了。 但要注意的是不是所有人都能適應white board coding***在白板上寫程式***, 最好事先練習練習。 Cultural fit是通過問問對方以前的經歷,解決過的問題, 來發覺她的做事風格。 最後我們想得到的一個判斷是她能不能get shit done。 Design主要是某個大系統的設計, 比如如果讓你來做Facebook News Feed, 你會怎麼實現, 需要哪些構建, 資料如何傳輸; 你的設計會有什麼樣的優點和缺點, 等等。每個人都有不同的實踐, 這是OK的, 但這中間的交流可以體現一些設計思想的厚度, 這才是面試的目的。 Design能力考察的權重對於不同職位不同, 比如backend要多一些, frontend要少一些; 剛從學校出爐的要輕一些, 做過很多年的要重一些。
每個參與面試的人都要對應聘者打個評價:strong hire, hire, weak hire, weak no hire, no hire。 strong no hire。 我一般無視所有帶weak的選項, 我的理念的是不需要平庸的同事; weak選項我是在被錯誤的放到一個其實我不該來的interview loop中時才用,所以很少很少用。
特別注意的方面
英文
直接從大陸招的人當中, 最大的問題還在於英語。 我面試過最早的幾位。 電話面試到一半, 我實在搞不懂他在講什麼,最後只好讓他開始講中文, 哇塞, 順溜了很多。 建議對去美國工作感興趣的朋友先多練練口語。
程式設計
對於工程師, 最多的工作是程式設計。 所以, 練習好程式設計。 由於面試題都有時間限制***20-25分鐘***, 特定工具***sync。in或者白板***, 不關心細微的語法錯誤, 和實際的程式設計還是有些區別, 所以練習還是很有必要的。
事先了解好公司的情況
瞭解一些基本情況, 讓你知道為什麼你對該公司感興趣。 對公司已有的產品有什麼建議, 等等。
準備好自己的故事
真實的故事, 能夠讓面試的人迅速認識你的故事。 比如你做過的最讓你驕傲的專案, 你在裡面的具體的貢獻,你碰到的最大的阻力, 你是如何解決的, 等等。 這裡的問題很多網上有列表, 但我提的是能夠和你自己的故事溶在一起, 適當的時候講出來, 有血有肉有說服力。
Offer的考慮
在Facebook, 所有的面試的評估到最後都會彙總寄來,經過一個review committee討論做出是否僱傭的決定。 在這個review committee上所有的應聘者都會被討論, 明顯不行的最快, 明顯行的也比較快, 慢的是那種所有人都說行但沒有一個人被震驚到, 或者有人說不行有人說很行的情況。這時候如果有一個人願意站出來挺她, 她一般不會被砍掉, 可能會過, 也可能被安排一個後續的面試, 見1-2個人。整體上的思路就是"請拿亮點來說服我"。
最後的Offer一般有兩部分, 工資和股票。 Facebook的情況我不方便講, 但矽谷的工程師大致行情是新的本科畢業生年薪9-10萬刀,碩士博士10-12萬到; 有多年工作經驗的應該在11-16萬左右。 而股票就是八仙過海各顯神通, 沒有定論。 不管你是在美國讀的書還是中國讀的書, 這個標準應該都是差不多的。