CS PhD 2018 北美找工作小結

忙碌的找工作季終於結束,總共持續了大半年,陸陸續續拿到了一些offer。寫篇文章總結一下苦逼的這段日子和一些經驗教訓,希望對大家能有點幫助。。。

PS: 這篇文章僅僅是個人的一些經驗,有不靠譜和不合適的地方還請大家指出和多多包涵。

先報下offer情況吧:

Offer: Google Research, Facebook AML, MSR, Apple, Amazon Alexa, Pinterest, Two Sigma, 騰訊AI Lab, 頭條AI Lab

Reject: DeepMind, D.E. Shaw, 螞蟻金服北美實驗室

去向:Facebook AML

個人背景

美國University of Maryland CS PhD, 浙大計算機本科,PhD主要研究方向是deep learning/ information retrieval/NLP. 之前有過一些實習經歷,在Google/Microsoft/Comcast AI Lab呆過。總體再回頭看實習經歷對找工作非常加分,基本上所有的面試都對我在Comcast實習的一段經歷非常感興趣,有時候一輪面試就只聊我實習期間做的項目(語音搜索和NLP相關)。還有一些IR/NLP領域灌水論文。另外最近幾年ML/AI/NLP/IR 方向確實很火,能拿到這些不錯的Offer很大程度上跟自己做的方向很有關係。

簡歷也是很重要的一關,基本保證了你的面試官對你的第一印象,建議大家可以去參考一些大神的簡歷看看。保證重要的Project/Publication/Experience寫在最前面,這些也是你可能要重點準備的面試經歷,我有好些電面基本上一輪就只聊我簡歷上的經歷。

Coding

雖然我自己拿的大部分offer都是research scientist title, 但是無論是swe還是rs, coding真的很重要!!我面的這些偏research職位(Google, FB, MSR)都有幾輪是coding面試,好的coding能力基本算是基本功了。我的準備過程也基本上靠leetcode了,從去年10月份開始刷題,刷到陸陸續續1月份,總共刷了大概前400道題的樣子。在一邊實習一邊趕論文的情況下刷題確實非常痛苦,那段時間基本都是晚上十二點到家,不過堅持下來再回頭看看還是非常值得,也希望和大家共勉。。

個人經驗是刷題不一定要全刷完,但是保證自己完全理解一道題很重要,每次AC了之後我會對比下別人提供的參考解法,看看怎麼樣能從coding style/思路上優化自己的code, 基本保證每道題的寫法是最優的,和最後AC的時間都是在前20%的樣子。另外強烈建議買一個leetcode會員(這點錢和你最後拿到的offer實在是算不上什麼),在每個公司面試前期有針對性的刷完有這個公司tag的所有題,這個對某些喜歡考題庫的公司太有幫助了。。。我刷題總共刷了兩輪,第一輪是每一道題老老實實做,第二輪選擇性的挑了一些題做,其他題基本是在腦里過一遍,覺得有思路了就不寫了。還有一點建議是刷題的時候記錄一些你覺得非常經典或者自己一開始沒做出來的題,方便你在第二輪刷題的時候有針對性的複習。

Machine Learning 相關

因為我面試職位的關係,有很多公司都會有一輪面試集中的聊一些Machine Learning相關的概念,或者在面試期間旁敲側擊一些基本概念,所以確保自己理解了基本概念。舉一些經常考到的例子(網上隨便搜搜應該蠻多的):

  1. Some strategies for avoid overfitting? Whats their advantages and disadvantages?
  2. Implement the pseudo code of SkipGram algorithm
  3. Some methods to extend binary classifier to multi-way classifier? advantages vs. disadvantages?
  4. Whats gradient vanishing/explosion? How does LSTM solve this problem?

我準備這方面主要看李航老師的《統計學習方法》,中文版,內容非常精鍊,個人感覺在時間不夠的情況下有針對的複習這是一本很好的資料。一些比較經典的論文和blog在面試前也可以溫習一下。如果面試前能知道面試官的話,可以有針對的讀讀他的論文,對可能的面試問題也能有個基本的了解。

面試經驗

Facebook: fb的面試流程還是非常中規中矩的,基本上是一輪電面+onsite, onsite總共五輪。我是兩輪coding+一輪ML system design+一輪research+一輪和manager聊天。可能因為我的簡歷比較match,面我的面試官全是Facebook Research下面NLP組的人,可能正常來看大部分人是三輪coding。面試時候放輕鬆,能夠和面試官很自然的溝通,碰到不會的題面試官會給一些hint,確保自己理解了這些hint。還有一個面試技巧可能會比較有用,可以善於和面試官拉進距離,我當時FB面試manager就是我們實驗室畢業的,還有一個面試官是JHU畢業的來UMD給過talk,還有一個認識我導師,面試的時候有的面試官可能會主動和你透露這個,你可以順便聊一下你們可能會有的一些共同經歷,對於調節面試氛圍還是很有幫助的。。

Google Research: 因為我之前在google實習過兩次,所以沒有電面直接onsite了。當時我的HR一度不回我郵件,本來想早點安排onsite的,結果拖了將近一個月才安排上,直到我FB offer deadline當天晚上十點才拿到google offer。。。Google給Offer的流程和其他公司不太一樣,onsite -> team match -> committee decision. 所以即使你過了onsite並不能直接拿到offer, 可能要額外安排個2-3周team match的時間,保證自己能Match上想去的組。建議大家安排google面試多預留一個月左右。

Google面試我是先過了一輪technical onsite, 四輪coding+1輪research,基本上碰不到leetcode原題,有兩輪應該是leetcode hard難度。碰到不會的不要太緊張,我有一道DP題沒答上來最後還是拿到offer了。後面又和google research聊了一輪,主要是research+ML面了。因為當時FB催的緊,只聊了一個組就接offer了,所以也導致當時沒match上特別想去的組。

MSR AI: MSR給的職位一般是research scientist或者applied scientist. 兩個職位其實做的事情沒什麼區別,都是Product-driven research, 不同的可能是面試流程和在公司performance evaluation不一樣。一般RS面試要兩天面試+給個talk, AS一天面完,當時給我安排的是AS。從拿offer的角度上來講,面AS可能會比較簡單一些,兩天的面試實在是太累了,RS的bar應該也會高一些。MSR的面試主要是和大佬們談笑風生了,會聊你的research也會聊他們組裡的一些項目,放輕鬆聊就好了,還有就是有一兩輪是和組裡的engineer面coding。對MSR印象還是超好的,感覺大佬們都與世無爭安心做學術,也非常缺人。還有MSR/MSRA培養了太多牛人了,reputation/connection/resource都是棒棒的。

DeepMind: 兩輪電面+倫敦office onsite,第一輪電面是差不多兩個小時的quiz,主要考一些基本的CS/Statistics/ML/Math的一些基本概念,準備這個面試個人是臨時抱佛腳了,面之前一天把一堆統計的概念重新刷了一遍。。第二輪電面是有兩個deepmind的RS和你聊你的research, 我只走到第二輪,所以也不了解onsite是面什麼了。不過因為deepmind來的特別晚,基本上當時我已經決定去fb了加上office在英國,所以雖然是dream place但是沒拿到也省的糾結。。

Amazon Alexa: 一輪電面+5-6輪onsite,電面是coding+ML+reseach混合聊,onsite我當時去的是波士頓組,主要做Alexa的Natural Language Understanding,聽上去非常有意思的項目和非常有潛力的組。Onsite先給了一輪talk,然後1輪coding,其他都是偏research+ML system design, 一度被問到了一些很bug的題,比如手推HMM+CRF公式之類的。。

Pinterest: 一輪電面+五輪onsite. Onsite有兩輪是和想招我的manager聊我的research,其他的是偏coding+ML system design了。個人對Pinterest印象很好,是個非常friendly和moving fast的創業公司,給的package也不錯,大家可以考慮。

Tencent AI Lab: 騰訊我只面了兩輪電面就拿到offer了,不過面我的也都是組裡比較senior的人,其中一輪是和AI lab的俞棟老師聊,都是偏research的面試+一篇比較open的research題。雖然只有兩輪,不過感覺impact和bar都還是很高的(我當時面的是北美這邊的position),進去之後也主要是做research, 考核應該主要是看發的paper了,package給的誠意也很足。

D.E. Shaw: 最初了解到de shaw是通過當時在google實習的MIT的一個小姐姐,她和我說這是她的dream company,後來才知道這是一家頂尖的對沖基金公司。抱著試試看的心態申請了一下,沒想到等來了面試,因為申的職位是偏quantitative researcher,所以面試過程中碰到了很多統計問題,但其實都是和regression相關的,尤其是multi-variate linear regression和statistical feature selection, 可能有一些比較深入的公式推導。當然也會有一些偏coding的題,比如python裡面tuple和list有什麼區別,能不能做dict的key之類的。

先寫到這裡了,如果對面試過程有問題的朋友歡迎留言,我會盡量回復 :)


推薦閱讀:

如何幫助想讀數學 PhD 的朋友冷靜下來?
如何看待威斯康辛麥迪遜大學cs專業16fall的phd學生quit掉只剩下4個?
校園訪問(三):UW 華盛頓大學
這個數學Phd課程是否值得讀?
女朋友君的北美社會學博士申請總結

TAG:面試經歷 | 計算機 | 北美PhD |