百度機器學習實習面試經歷
一面:
上來應該先看的是專案。我專案裡有一個關於無監督聚類的研究,他問了一下有監督和無監督的區別,我的回答他應該不滿意。
接下來問的是程式語言,問主要問C和C++,比如C++的virtual關鍵字,C的friend關鍵字,inline關鍵字的作用和具體是怎麼實現的,這一塊C好久沒有複習過了,答得非常不好。
Python用過什麼內建的資料結構。
由於語言那塊答得不好,所以接下來問的問題明顯簡單了好多,這也是導致面試沒過的最直接原因吧,還是沒能發揮出自己的優勢來。
問了一下LR的損失函式,SVM的損失函式,稍微講一下原理。
問了一下矩陣秩的幾何意義,這個概念具體有什麼用。
寫一個連結串列的資料結構,連結串列和陣列的區別,在記憶體中的存放。
演算法題:走臺階問題,n個臺階,一次走一步或者兩步,最後走n階有多少種方法。讓用兩種方法實現,遞迴和非遞迴。
問了問資料庫。這塊我不熟悉,也是面試失敗的一個主要原因,問了問正規化有什麼用,為什麼用的時候不用級數很高的正規化。
問了問kaggle上的做過的一個專案,簡單介紹了一下。
Linux的知識,問用沒用過linux,查詢目前系統中執行的程式有哪些用什麼命令。
說一下自己的優缺點。
寫一下網路的7層協議,幀在哪一層,socket在哪一層。
問知不知道hadoop,以wordcount為例子來說一下hadoop的資料走的流程,在sort階段發生在什麼時候。
知道哪些聚類方法。
想在他們那實習得到什麼。
接下來就是一些閒聊了。
二面:
上來還是自我介紹,在說說自己做過的專案,然後稍微聊了一下專案的東西。
接下來給一個題,去掉字串中相鄰字元中的重複字元,比如abbcdb,處理完是abcdb,我用的是On的時間O1的空間
然後又給了一個題,讓完成一個類,這個類有兩個介面,其中一個介面在每次使用者訪問百度的時候都會執行一次,第二個介面返回最近一個小時使用者的訪問次數,也就是那個介面運行了多少次,類中的資料結構自己設計。讓完成這兩個函式。這個我沒做出來,有會的朋友可以留言告訴我一下具體怎麼做,非常感謝。
然後又問了問做的那個kaggle的專案,然後問了問LR,問LR的損失函式,向量更新的時候有什麼方法(牛頓,梯度下降),牛頓和梯度下降的原理,這兩個收斂的速度怎麼樣,所謂的收斂快中的快是以什麼為標準理解這個”快”。
之後說出去商量一下,然後。。。就沒然後了,告訴我今天面試結束,直接把我送出去了。
總結:
一面面的知識範圍太廣泛了,自己有的地方屬於知識的盲點,面試一開始就瘋狂地“我對這塊不怎麼了解”,導致面試官降低對我的期望,比如面向物件,資料庫,基本就宣告了我的GG。
二面面試官比較著急,問的沒有那麼廣了,但是深度上來了,雖然能說一些,但是被步步逼問就GG了。
問題是沒有發揮出自己的優勢,我的演算法題還是不錯的,但是面試中的演算法題實在是有點簡單了,根本構不成自己的加分項,而扣分項太多了。
接下來要好好學一下Java了,面試對語言的重視程度還是挺高的,要對語言的一些細節有清楚地瞭解。