有好多朋友問硅谷公司招工程師的基本流程。作為應聘者,我試過Facebook,Google,Yahoo,Oracle,均拿過offer; 作為面試人員,面試過不下于300余人,清楚大概流程,做此短文,希望對于希望去硅谷工作的朋友,或正在準備面試的朋友,或正在設計招人流程的創(chuàng)業(yè)公司有所啟發(fā)。經驗有限,如有毗漏,請指正。
面試機會
在硅谷,最容易獲得招人的機會是熟人推薦。就是目標公司的某某人是你的朋友,你讓她給你做一個內部推薦。Facebook大概60-70%的員工是通過這種方式雇傭的。Facebook最早期的一大撥中國籍工程師都是我做內部推薦面試進來的。熟人推薦對于求職的朋友還是公司相對成本都要低。對于求職的人,可以通過熟人了解公司內部的真實情況; 對于公司,熟人的推薦讓求職人的質量得到一個背書。也是介于此,我收到過不下200多個推薦的請求,但我決定做的推薦不到100,其中有12個朋友成功了,每個成功的推薦公司給5000刀的獎金。做內部推薦的員工應該對自己的推薦有所篩選,不能一味為了推薦獎金來一個推一個; 否則,很快你的名聲要爛掉。
這里講一個我自己的故事。我找到的第一份工作是通過2005年在Chicago的KDD大會上和Yahoo 數據挖掘部門的一個技術總監(jiān)陶瓷獲得的面試機會。開會的閑暇時間,我在展廳里面瞎晃蕩,和各個booth的人聊天,聊幾句后提提我正在找工作,問他們有沒有合適的機會; 到了Yahoo的展廳之后,和該技術總監(jiān)聊了一會之后我們就去到酒店的大廳中找了塊干凈的地板坐下來,開始面試。對幾個大的問題探討了算法上的設計,貌似他比較滿意。之后他讓他的一個工程師在第二天做了一個電話面試就把我飛過去了。這里想說的是你如果想找工作,試試在你“未來同事未來老板”出沒的活動,場所之中,認識他們,讓他們對你感興趣,然后通過他們做內部推薦。
另外的幾種方式就比較常規(guī),如集中性的校園面試,通過網站完成Puzzle提交簡歷 (成功率極低),在各種編程大賽中出類拔萃被發(fā)現。
還有的就是公司主動出去挖的人,這屬于高端人才,我挖過一些資深的工程師; 這些人往往不容易動,如果你是這種人的話,恭喜你,你不需要讀這篇文章。
流程
絕大公司的流程都是因為上述的途徑(內部推薦,學校面試,網站申請等等)開始對一個簡歷產生興趣,然后讓Recruiter聯系,做一個摸底性質的電話面試,然后是2-3個電話面試,最后就是到場面試4-6個人,大多數公司是一輪。
Recruiter的電話面試
這個了解是雙向的。聊聊應聘者的一些經驗和背景,他們感興趣的方面,為什么換工作,對這份工作有什么特別的要求等等; 聊聊公司的一些基本情況,尤其是公司文化等等,現在空缺的職位,還有對面試人希望有的基本要求。
電話面試
一般是30-45分鐘。我通常是花40分鐘讓對方做兩道題,然后花5分鐘讓她問問題。一般做完第一道題,我會問自己,要不要做第二道; 不管如何,我一定騰出這5分鐘讓對方問一些關于Facebook的問題。這是對對方一個起碼的尊重。由于是40分鐘兩道題,不能太復雜,一般是編程集中但設計沒有太多挑戰(zhàn)性的問題,比如翻轉單向鏈表 (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是通過問問對方以前的經歷,解決過的問題,來發(fā)覺她的做事風格。最后我們想得到的一個判斷是她能不能get shit done.Design主要是某個大系統(tǒng)的設計,比如如果讓你來做Facebook News Feed,你會怎么實現,需要哪些構建,數據如何傳輸; 你的設計會有什么樣的優(yōu)點和缺點,等等。每個人都有不同的實踐,這是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或者白板),不關心細微的語法錯誤,和實際的編程還是有些區(qū)別,所以練習還是很有必要的。
準備好自己的故事:
真實的故事,能夠讓面試的人迅速認識你的故事。比如你做過的最讓你驕傲的項目,你在里面的具體的貢獻,你碰到的最大的阻力,你是如何解決的,等等。這里的問題很多網上有列表,但我提的是能夠和你自己的故事溶在一起,適當的時候講出來,有血有肉有說服力。
事先了解好公司的情況:
了解一些基本情況,讓你知道為什么你對該公司感興趣。對公司已有的產品有什么建議,等等。
Offer的考慮:
在Facebook,所有的面試的評估到最后都會匯總寄來,經過一個review committee討論做出是否雇傭的決定。在這個review committee上所有的應聘者都會被討論,明顯不行的最快,明顯行的也比較快,慢的是那種所有人都說行但沒有一個人被震驚到,或者有人說不行有人說很行的情況。這時候如果有一個人愿意站出來挺她,她一般不會被砍掉,可能會過,也可能被安排一個后續(xù)的面試,見1-2個人。整體上的思路就是“請拿亮點來說服我”。
最后的Offer一般有兩部分,工資和股票。Facebook的情況我不方便講,但硅谷的工程師大致行情是新的本科畢業(yè)生年薪9-10萬,碩士博士10-12萬; 有多年工作經驗的應該在11-16萬左右。而股票就是八仙過海各顯神通,沒有定論。不管你是在美國讀的書還是中國讀的書,這個標準應該都是差不多的。