1. 程式人生 > >谷歌,微軟,阿里,美團實習生面經

谷歌,微軟,阿里,美團實習生面經

新鮮出爐的實習生面經!主要包括:Google,微軟,阿里,美團和因為各種原因沒有面試成的公司……

基本情況

基本情況:某985碩士,常用語言C/C++、Python,研究方向為深度學習、計算機視覺,有一篇水的會議論文、一篇水的期刊論文,有ACM等演算法競賽和資料探勘類競賽獲獎經歷,在導師和Github上都有專案。除了谷歌投的是SWE,其它都是演算法崗。

谷歌

Warm up: Google mock interview

1月31日,GCJ獲得資格,45min。
演算法題:有一個n乘n的棋盤,上面有m個糖果,最開始有一個人在棋盤左上角,他可以向左向右或者向下移動,但不能向上移動,問他最少需要多少步吃完所有糖果。
正解:一個糖果或者沒有糖果的行很簡單,多於一個糖果的行其實一定是從最左或最右的糖果處下去,所以只需要維護吃到每一行最左或最右糖果的最小值就行了,轉移的時候討論上一行的端點在這一行最左到最右區間的裡面還是外面。
詳細經歷看

這篇部落格
3月12日,A Day with Google,配套活動,參觀一下。

一面

3月19日,45min。
沒有其它廢話,上來直接演算法題,
- 有一些單詞對錶示同義詞,單詞對之間不考慮傳遞性,判斷兩個句子是否表示完全相同的意思?map套map解決,寫了第一個解法。
- 你的方法複雜度多少?M*logN*logN
- 能不能更快?unordered_map或者字典樹解決。
- 寫個字典樹看看?寫寫寫,寫了第二個解法。
- 如果考慮單詞對之間的傳遞性呢?floyd解決。
- 如果資料規模很大呢?離散化+並查集。
- 並查集複雜度多少,為什麼複雜度是這樣?O(1), 路徑壓縮。
- 還有8分鐘,寫並查集的解法讓我看看?寫了第三個解法。

整體就是這樣,一共手寫了三套解法,重點考察了資料結構,由於最後一個解法時間比較緊,被面試官挑出兩個bug。基本算滿意,有一些小瑕疵。詳細經歷看這篇部落格

結果

3月23日,通知狀態變為hold,介於過和拒之間的狀態。內推的同學說投的太遲了,很多人過年前投的,過完年就開始面試了,到了3月中旬崗位不多了。怪不得我說一面感覺也不差怎麼就hold了,所以謹記,內推實習生一定要早投!!!

微軟

秒殺筆試演算法題,4月24日,面試去現場…

一面

40min,面試官是我整個實習生面試期間遇到的最棒的面試官。
- 編譯工程的各個檔案間有相互依賴,如果想編譯通過需要滿足什麼條件?有向無環圖。
- 給定檔案間的依賴關係,怎麼判斷一個工程是否能編譯通過?拓撲排序,然後白板寫了拓撲排序。
- 如何找出所有合法的編譯順序?深搜+拓撲排序,白板寫了一下。
- 才過去15分鐘,你寫的也太快了,我們聊些深度學習的東西,問了卷積的基本原理,簡單計算了感受野、引數數量。
- 聊了放在github上的一個唐詩生成器。

我想這一面給的一定是strong hire

二面

40min,典型程式設計師,一句廢話都沒有。
- 白板寫個單鏈表的氣泡排序。先走一遍統計長度再冒泡。
- 能不能優化?想了一會兒沒什麼想法,面試官提示記錄尾部節點。然後白板寫了一遍用tail記錄每一次冒泡的結尾。
- CNN有哪些基本單元和作用?卷積、pooling、fc等等說了一大堆
- Relu的原理,與sigmoid比優缺點?求導、畫圖說明了一下,不容易梯度消失,但是會導致神經元死亡。

除了面試官提示了一次記錄tail節點,其餘還好。

三面

40min,Boss面,可能是看前兩面寫程式碼反饋不錯,所以把紙收起來了,沒寫程式碼。
- 把論文從background到conclusion都講了一遍。
- 講了在老闆這裡做的一個專案的詳細設計。

然後基本聊聊天。應該還挺滿意的吧,最後加了我微信,說很希望我能去他們組,受寵若驚啊!

結果

4月28日,收到微軟C信,5月9日,收到微軟offer!

阿里

通過Github被阿里獵頭選中,本來他的期望是招前端,我覺得不OK,跟他說了一下我的情況,然後轉而把我推到機器學習演算法崗去了……

一面

3月23日,45min,全程緊張,面試官一直讓我放鬆。
- 自我介紹,然後根據自我介紹問專案,一共40分鐘。
- 最後5分鐘演算法題:

有一些字串,定義前後字元差值形成的序列一致的兩個字串為相同字串,問如何將給定的這些字串分成若干集合,每個集合中字串都滿足相同字串的定義。
解法:將差值序列作為hash表的key,形成的集合用一個vector或者map隨便什麼作為value就行了。
面試官說很OK,自己面下來感覺也很好。

二面

4月14日,週六面試…,25min,似乎是被我的專案震驚了。
遲來的二面,因為14日是網申截止,而網站上一直是面試中的狀態,所以我一直以為涼了,而面試官說這一面應當屬於三面?我也不是很懂。
面試官只問了兩個專案,問得比較細,連裡面有什麼函式,函式怎麼設計的,類之間的繼承關係都問了一遍,然後就說很好,看了一眼我的github,又問我平時是怎麼學習的?怎麼做這麼多專案的?
最後又跟我說面試過應該沒什麼問題,而且較大概率去他的團隊,然後就誇他們團隊怎麼怎麼好…
我全程懵逼…這就面試完了???

交叉面

4月26日,70min,三個面試官,其中一個推進流程串場。
達摩院大佬:45min
- 說說深度學習調參的過程和一些常見技巧?網路結構,Data Augmentation,初始化,防止過擬合的方法,視覺化除錯,優化方法等等,想到什麼說什麼。說的比較亂,自己對自己的回答不是很滿意。
- 面試官對深度學習和CV很有研究,具體聊了論文,讓我總結目標檢測的主流方法,詳細說了Faster-RCNN、YOLO、SSD、FPN、R-FCN等各種目標檢測的方法。可以看出,面試官對裡面的細節不是很清楚,但是提的問題很有質量。

搜尋事業群大佬:25min,這個我就真的懵逼了
- 我們有一個業務系統,每天要處理1000萬次服務請求,如何設計這個系統?我???靠著寫分散式系統大作業的老底,勉強擠了一點出來。
- 你覺得有哪些機器學習技術能用在搜尋事業群?為什麼?亂講了一些,希望他滿意,基本包含了所有機器學習裡的東西吧。
監督學習做分類迴歸:LR、SVM、XGB等經典淺層模型,CNN、LSTM、GAN等深度模型;
半監督學習充分利用搜索產生的大量資料:主動學習,直推式學習;
無監督學習減少計算開銷,同樣充分利用資料量:k-means、DBSCAN、譜聚類等聚類方法,PCA、SVD、ISOMAP、T-SNE等降維方法;
強化學習可以利用使用者的反饋;
後來擠牙膏想到的一些其它方法:bagging、boosting整合學習方法提升精度,矩陣分解、協同過濾等推薦演算法。

真的不知道該怎麼答!

HR面

5月2日,30min,以自我介紹為主線,我說完一點,她就會問點問題,比如做的專案是research還是面向實際需求的。主要說說非技術問題吧:
- 家在哪裡,家裡人同意來杭州嗎?不同意也得說同意啊。
- 為什麼選擇阿里?為什麼選擇這個職位?準備充分,背誦一下。
- 你有什麼問題?我問阿里對實習生有培訓嗎?我們對實習生不會有太多培訓!
- 什麼時候能來實習?我覺得這個問題她不滿意,因為她希望我馬上過去實習,實際上我是不可能馬上過去實習的,然後HR說實習時間短可能會影響轉正啊balabala。我在招聘網站上寫的好好的時間,你接受了我的申請就是同意了我的實習時間,現在看來,他們大約只是想招個苦力。由於我堅持不能馬上過去實習,HR態度發生了很大轉變。

聽已經實習的說,阿里實習生晚上九點都沒有人走的,看看我的髮際線,還是別那麼拼命吧。

結果

5月9日,收到阿里offer。

美團

一面

3月16日,30min,我見過的最不負責任的面試官。
遲到早退,完全沒有心思面試,只問了簡單的演算法題,連字串翻轉這種題都出來了…
然後聊了專案,問的問題極其外行,最後笑嘻嘻走了???

二面

4月25日21點,60min,把我當備胎了吧,一面那個面試官真不想吐槽了,就這樣面試下來就把我當備胎了?好在二面的面試官很專業,挽回一些美團的形象。
- 搜尋框內的候選項怎麼實現?A.統計字首詞語條件下,每個詞出現的概率,用雜湊表或者字典樹儲存,適當剪枝。B.用機器學習模型,如:LSTM等,根據字首詞預測當前詞。
- 簡述LR,有一些使用者屬性和購買記錄,如何用LR給他們做推薦?基本是資料探勘比賽那一套講講就行了,問的很細,從最開始的資料清洗到特徵工程到後面的整合都會問。
- 有一個無限長的數字序列,大到儲存其中所有數是不可能的,序列不斷傳輸過來,在某一個時刻喊停,要求以均等概率返回之前已經傳過來的某一個數。每過來一個數,就以1/n的概率保留,這樣只要存當前留下來的數返回就可以了。

三面

4月28日,45min。
說說比賽、專案、github開源、從系統的架構到每一個模組的細節都問了一遍。問我有哪些offer,說自己在螞蟻呆過,都是水貨寫業務沒什麼意思,吹美團這邊的資料是百億級別的?咱能不這麼浮誇嗎?

結果

5月3日,收到美團offer。

其它

一些投了,但是沒能面試的

京東

因為讓我去北京現場面試但是不報銷費用被我主動掛了。而且要吐槽一下,京東有影象標註實習生的崗位,要求吃苦耐勞,這是什麼鬼?

網易

我讓師兄內推,他們老大看了一眼簡歷就說應該能來吧,面試水水的…
後來知道所投崗位已經差不多滿了,要轉崗,也被我主動掛了。

Face++

投了簡歷,沒理我,後悔沒找校友內推!聽說內推的基本都進了?

小米

投了簡歷,沒理我,南京招的人比較少。

騰訊

筆試沒有參與聚眾討論,筆試掛了,題目一點誠意都沒有,全都一樣的,就是為了把不作弊的刷掉?今年招的人很多啊,各種水進去的,而我連水的機會都沒有,不開心!

總結

最大的感受是:有專案就可以一直吹,雖然我準備了,但幾乎沒遇到問數學公式推導和作業系統、計算機網路背概念的面試官,大多數是就簡歷問,也有結合業務場景讓設計方法的。我靠,枉我看了那麼長時間的西瓜書和本科教材…
總的來說,差強人意,因為谷歌崩了才投了這麼多亂七八糟的,keep calm and stay strong!

轉載註明出處!
本文作者: Jipeng Huang
本文連結: 點選這裡