1. 程式人生 > >2017校招面經(BAT、搜狗、搜狐、一點資訊、360、華為優招)

2017校招面經(BAT、搜狗、搜狐、一點資訊、360、華為優招)

總體流程:簡單介紹下自己、各個公司面經、總結、薪資

1.簡單介紹

面試崗位:機器學習 | 資料探勘 | 演算法工程師 | 基礎研究

比賽經歷:天池比賽Top 10,滴滴演算法大賽Top 5,京東演算法大賽Top 1

科研經歷:實驗室主要方向:計算機視覺+生物資訊。在研一上課的時候,實驗室有師兄在做計算廣告ctr預估、異構平臺搭建,自己也算是耳融目染,學習了一些吧。

個人背景:本科普通院校資訊管理與資訊系統(計算機與管理的交叉學科),考研到哈工大,到找工作的時候剛好一年(工大本部2年畢業),這裡其實可以看出我比較菜(微笑臉)。

語言背景:C++、python、SQL黨

下面的面經是按照時間順序來的

2.華為優招

7月份回家一趟,沒有投遞華為優招,後來在師兄和室友的幫忙下,得到了面試機會。

一面:C++裡面static的作用,判斷一個數字是否為迴文數(此處需注意,面試官一直問我有沒有更優的方法,我當時已經說出了2-3個方法,囧),自己選擇一個專案進行介紹。

二面:介紹專案,意向城市,期望薪資,聊天。。。

線上筆試:三道程式設計題,總分600,get 525。

測評:只要注意不要選完全不加班就好。

3.360

華為面試回來之後,接到了360面試通知(提前批)。

部門: 核心安全事業部

崗位:機器學習/資料探勘/自然語言處理工程師

一面:介紹了滴滴演算法大賽,面試官比較關注特徵工程。詳細問了特徵如何設計、為什麼這麼設計、那些特徵會比較重要。商品推薦中如何進行個性化推薦,特徵你會想到那些,為什麼這麼做

二面:避免過擬合策略、如何提高模型泛化能力、L1與L2正則區別,優缺點、生成式,判別式模型、深度學習這塊瞭解多少、說說xgboost、gbdt區別、Tree-based Model如何處理連續型特徵。

HR面:畢業之後比較注重什麼、期望薪資、比較注重過程還是結果、對360的瞭解

能力測評:一個小時,題比較難,但是要好好做。認識的幾個小夥伴都到了HR面,但是沒有收到offer,不知道是不是能力測評的緣故。

4.搜狗

在等待360出結果的時候,接到了搜狗網頁搜尋一個技術面試官的電話,說我6月份提前批面試過了,後續會有HR聯絡我(當時,筆者真是一臉懵逼,現在都9月份了,6月份的面試,現在才告訴我結果,後面那個技術官告訴我,當時是忘了)。

6月份提前批面試:當時搜狗來學校招實習,對比較優秀的同學會直接給offer(主要針對工大自然語言處理、機器翻譯這兩個實驗室,顯然我不是),所以我就抱著試試看的心態去了。由於時間太長,具體面試內容有點忘了,我現在印象比較深刻的就是當時討論了一個評價指標(多目標優化)和建模(如何選擇訓練集、測試集)的問題。

HR面:手上有哪些offer、期望薪資、對搜狗感覺怎樣、對於技術面試感覺如何,最後聊了聊人生。那個HR姐姐真的很贊,當場算是對我比較認可吧,直接告訴了定級、薪資。贊贊贊(直到現在依然很感激那個HR姐姐)

後面又有戲劇性的故事發生了,正如前面所說,我並不知道我提前批面試過了,在搜狗官網投遞了簡歷,雖然沒做筆試,面試官居然要面我,我也鬼使神差的去了。。。

一面:聊天,因為我有搜狗offer,這個部門直接一面過

二面:部門總監面。先聊專案,從資料預處理到特徵工程、到模型(模型創新,以及為什麼用這個模型),再到ensemble。然後大資料方面的程式碼考察,主要特徵資料量大,如何做到速度與記憶體上的優化。(trick:這個時候你可以問下面試官,是要線上做,還是離線做,當然自己要有把握再問)然後有一個比較有意思的題目,對大小在1-10000的1億個數進行排序,你會怎麼做?(友情提示,不要用基於比較的排序演算法哦)。整體聊的比較high,接近2個小時。

HR面:幾個方面吧:團隊意識、對一些公司裡面常見問題的處理、對於業內其他一些公司的看法、個人性格、愛好

5.搜狐

搜狐今年來工大的貌似只有搜狐北研,印象特別深刻,因為當天剛好開題,開完題改完報告交了之後,跟實驗室同學一起去做了筆試(現場筆試)。搜狐筆試技術崗是一套試卷。

筆試:一些概率題、計算機網路題、三道演算法題
(1)第一道題有點想不起來了,大概有個有序的資料,時間複雜度要O(n),主要有序的數組裡面可能有重複的資料,注意邊界就行了
(2)給定一顆二叉樹,節點的值表示money,一個強盜想要偷錢,但有一個規則,如果一個節點被偷了,那麼與他相鄰的節點則會報警(即不能偷),最終返回這個強盜最多能夠盜取的money。
(3)給定兩個黑白影象,即0-1矩陣。四個操作(水平翻轉、豎直翻轉、90度旋轉、黑白翻轉),問這個影象能否通過有限步驟操作,最後變成一樣的。

一面:C++裡面const有什麼作用,在函式名、引數名不同位置有什麼作用、C++ 記憶體分配、指標與引用、函式傳參如何更快、大致寫下C++ vector程式碼、聊了下筆試中一道概率題(甲乙兩個人輪流(甲、乙、甲、乙這樣,一旦有人中獎就停止)去抽獎,最後問甲中獎的概率)、最後聊了下專案。

二面(略帶HR面的風格):二面剛開始,面試官說昨天是他看得我的筆試題,對於我第二題的解決方案有點不理解。於是我說了下,最後發現自己做錯了。最後在面試官的提醒下,說出瞭解題思路。然後問了問自己比賽的經歷,未來想從事什麼樣的工作,如何進行自學。

6.一點資訊

可能有些同學對這個公司不是很瞭解,大概只知道今日頭條,其實一點資訊做得東西跟頭條差不多,聽說給的工資比較高,我就去了(哈哈哈)

現場筆試:資料結構、計算機網路、作業系統、2道演算法題
(1)給出一個數組,返回陣列中滿足類似a > b < c >d這種情況的連續子陣列的最大長度。時間複雜度當然是O(n),比較有意思的題目。
(2)同樣是一個數組,去掉其中一個數,得到與這個數相鄰中比較小的那個數的值(如果是最左側或者最右側則返回0)。不斷重複上面的操作,直到陣列為空,返回累加的最大值。

一面:聊專案,滴滴演算法大賽。主要兩塊,模型演算法創新、DNN裡面各種引數,啟用函式的選擇及理由。這兩塊自己言之有理即可。也有人一面寫程式碼的,我並沒有遇到哎,不只是簡歷還是筆試的緣故

二面:另外一個專案,做資金流入流出預測的,大約一年之前做的。先說下當時自己是怎麼做的,如果現在讓你做,你會怎麼做。然後比賽的話,往往資料是給定的,如果讓你自己可以收集資料,你會想到哪些資料,為什麼,從而提高準確率;因為一點資訊做推薦也會比較多,然後問了一個他們實際業務中的問題,對於使用者在一點資訊APP上輸入關鍵字,公司和使用者會關注哪些指標,針對這些指標你會如何優化。主要從定義損失函式,概率分佈這些方面聊聊吧。

HR面:手裡的offer、期望薪資、比較care那些東西,畢業之後、對於大公司,創業公司如何看待。

7.阿里

關於阿里,真是一個讓人傷心的故事,很早之前是比較想去阿里的,並且一直在參加阿里的比賽,比較拿到的Top 10終面的機會也被取消了。

實習、校招部門:螞蟻金服人工智慧部、阿里媽媽,比較核心,難度也比較大。

阿里最後結果是掛了,這裡寫點教訓吧,哎

螞蟻金服技術終面不出意外的話:會讓做題,題目一定要仔細聽清楚,coding是一方面,演算法優化和使用mapreduce、spark做處理是加分項

阿里媽媽:團隊人不多,主要做ctr預估。對於比賽經歷貌似不太看重,比較care工程、科研經歷。面試官也會查考的比較有深度,從對機器學習、統計學習的理解、普通線性迴歸到廣義線性迴歸的本質、深度學習的本質、AUC、KMeans的演算法虛擬碼、最後寫了下歸併排序。給出的建議就是面試阿里媽媽的話,提前對計算廣告這塊做些準備,然後面試的時候,儘量用數學語言、虛擬碼的方式進行清晰地闡述,當然這也跟面試官有關。

8.騰訊

面試騰訊的路是比較坎坷的,內推找同學推的CDG(做廣告的),從簡歷評級(A+),到簡歷鎖定,到鎖定面試官都是比較順利的,不知道什麼緣故,那個面試官一直沒有面我,導致我內推就這樣不明不白的掛了。後來大致瞭解的是因為HC沒了,校招的時候,騰訊的BG是不可調整的,所以基本希望不大了,最後是TEG面試的我。

筆試:數學題為主、三道簡答題,比較開放。

一面:聊一聊專案,面試官不care特徵工程,我就講了講模型演算法。然後要求手寫純C字串拼接,當時筆者想到了三個細節(1:const char* str 2: 空串判斷 3:返回新串還是原有串),寫完程式碼之後面試就結束了。在出門的那一剎那,我想起了程式碼中一個問題,空間申請啊,內心是崩潰的。。。

二面:一直在做題
(1)數學題:類似一點資訊那個抽獎題目,做好之後一直問我為什麼這麼做,囧
(2)資料結構演算法題:給定一顆二叉樹,如何把它儲存到文字中,然後再從這個文字中恢復
(3)資料結構演算法題:S型遍歷二叉樹,如何優化,最後說了個空間優化的方法
(4)大資料問題:大於計算機記憶體的儲存IP的檔案,統計出現次數最多的幾個。這裡面要對b、B、儲存有點理解,一般優化都會想到0-1bit,這個時候要注意,要會寫程式碼,而不只是說(其實就是位操作)。
(5)LR、NN簡單聊了聊

三面(HR面):對技術面試官的感覺,對於產品經理的錯誤決定你會怎麼做,平時如何解壓,對自己前面面試打分、手上有哪些offer

最後說下結果吧,自己報的是北京地區,今年(2017)校招的時候,TEG已經沒有太多的名額了,加之TEG比較偏基礎演算法吧,這一塊自己相對薄弱。據我瞭解,最終TEG在哈爾濱基礎研究崗招了一個人,當然那個人不是我。

建議:能內推就內推,如果可以接受去深圳,對於騰訊,就去深圳吧,崗位相對會多一點。

9.百度

內推由於之前實習被推過、還有在官網上投遞過簡歷,沒有收到面試通知

校招崗位:商務搜尋部 機器學習 | 資料探勘崗位

筆試:選擇題+簡答題+程式設計題(主要考察動態規劃)

一面:聊專案,聊的比較多的是如何知道一個特徵的重要性,如何做ensemble哪些方法比較好。聊了聊計算廣告方面FM,embedding。最後手寫S型遍歷二叉樹

二面:主要考察兩個方面
(1)機器學習:LR推導、LR與最大熵本質關聯、LR最終迭代數值的本質,目前DNN為什麼會有效、簡單說了下mapreduce、spark、mpi、parametersever
(2)coding:陣列滑動視窗得到最大的視窗,O(n)複雜度、擴充套件:這個滑動視窗中必須有m個不同才可以,目標不變,如果改,並分析時間複雜度;二叉樹路徑和等於某個值的所有路徑輸出。

三面:百度的三面是部門經理,看上去比較年輕。上來對著我的部落格問,你寫的東西自己現在還記得嗎(當時好方)?問了下Xgboost的原理吧。然後就是滴滴演算法大賽。最後聊了下自己目前做的課題。

10.總結

一家之言

面試機器學習、演算法崗需要注意以下幾個方面吧:

(1)coding:從基本的資料結構、到分治,動態規劃這些演算法思想需要很熟悉;進階:實現過機器學習演算法;更進一步:能夠利用mapreduce | spark | mpi | ps 開發分散式機器學習演算法。(github你值得擁有)

(2)機器學習理論:這一塊不僅限於常規的機器學習演算法、深度學習演算法,如果能對自然語言處理、影象、推薦、廣告等特定領域方面的演算法有所瞭解,必然是加分項。

(3)數學基礎:求導、矩陣、最優化方面的一些知識

(4)不錯的大資料比賽或者科研經歷

小建議:

(1)簡歷排版、描述很重要,要做到凡是簡歷上有的自己必須會,且能做到深入淺出。有亮點的地方可以通過數字的形式進行描述。

(2)面試的時候講解演算法要注意邏輯清晰、突出重點,難點、如何解決。

(3)面試環節中溝通也很重要,遇到自己沒有碰到的問題,可以先冷靜思考下,實在解決不了,也要說出自己思考的過程,如果可以的話,在面試官的提醒下,解決問題。然後,技術面試到了HR面也要注意,就我瞭解的是,不少公司的HR在最終是否給offer也是有比較大的話語權的。

(4)最後一點,對於想爭取sp的同學,注意每一面都很重要,每一面都要讓你自己表現到最好。

11.薪資

由於許多公司HR跟我說了薪資要保密,本著契約精神,這裡給出一個薪資排序,供大家參考(注意裡面大多是sp,且一點資訊異常高)。

一點資訊 > 搜狐 > 百度 = 搜狗 > 華為優招 > 360
祝願看到本文的你也能找到一份令自己滿意的工作
Work hard, Play hard , Good Luck , Happy ending!!!

大概一切皆有可能吧,在今年即將畢業的幾個月裡,經過五輪的面試,拿到了阿里媽媽的offer(杭州),最後也是選擇了阿里。

主要面試有以下幾個點,記錄以下,給看到這篇文章的同學一些建議

(1)滴滴演算法大賽Top 5
(2)京東JData演算法大賽Top 1
(3)實驗室基金專案—轉錄調控網路構建演算法研究
(4)深度學習在推薦系統方面的paper,實踐等
(5)一個開放性的題目,從實際業務中抽象出來,探索一些現象背後的原因以及如何改進