剛放暑假時,就發現暑假好短,快七月下旬才開始放假,而BOSS的一句話也讓暑假到處旅游的夢想破滅,于是整個暑期基本上都在實驗室呆著,前期是在改 ANDROID程序,由于保密的原因,這事不能說太細,后來在幫一個單位寫標書,主要是一個視頻網站和一個在線商城,由于之前沒有寫標書的經驗,所以寫出 來可能不怎么專業,他們后來再找公司修改了一下,我看了修改后的標書,發現雖然內容差不太多,但是公司改出來的文筆要好很多,并且他們在原基礎上進行了細 化,對一些細節部分還給出了圖示,這個是我需要學習的,編程雖然重要,但是文筆也很重要,技多不壓身嗎。
在七月未的時候,收到百度給我發 的郵件,說讓我有興趣的話可以把簡歷發給他們,他們會在校招之前安排一次面試,由于是在校招之前的,所以不管結果如何都不會影響我的校招流程。想了想我下 學期也要找工作,這是一次比較好的實戰機會,就給他們發簡歷了。但是一直沒有收到回信,正當我以為被他們“放鴿子”的時候,就在8月28號下午5點左右, 百度給我打電話說安排我明天面試,想想29號也沒什么事情,就答應了,然后她說面試信息會在隨后通過郵件發給我,收到郵件后,發現面試時候是下午2點,這 個時間還可以,部門是推薦與個性化部,這個部門就一點都不了解了,于是請教了一些人,終于對這個部門有了一個比較清楚的理解。
由于時間比較緊張,也沒有什么時間準備,就在上午看了一些基本數據結構之后就出發了。到達百度的時候離面試還經半小時,就坐在大廳里好好的休息了一會兒。到快面試的時候去前臺叫她幫我叫人來面試,等了一會兒,就來人帶我去面試了。
一面上來就是問我對哪門語言的最熟悉,我說現在應該是JAVA ,最近一直在用,然后他說他們部門只用C++和python,我說我對C++了解還可以,但是對python就不太熟悉了。他聽說后也來了興致,于是就問了許多C++相關的問題,包話C、C++的區別,C、C++內存分配的差異,C++多態的實現方法,C++虛函數與純虛函數的實現方法,C++抽象類相關的問題等,雖然很久沒用C++寫程序了,但是兩個月前左右看了一些C++的知識,所以這些問題還是答出來了。在這之后就開始是現實應用了:一個問題是在搜索MP3的時候是根據歌曲的權值排序的,但是會發現有這樣排序后有很多歌手的歌在一起,影響了用戶體驗,用什么辦法把這些排序后的歌曲變成沒到兩個歌手的歌在一起的情況下并且盡量保證是按權限有序的?這個問題上來就想了一個簡單的算法,然后他讓我分析算法復雜度,我一分析,擦,是O(n^2)的,然后問我有沒有什么更好的方法,我又想了一會,然后他說去給我打杯水,面試官還是挺nice的,等他回來后,我又想了會,終于想出一個O(nlogn)的算法,他說還有優化的地方嗎?想了半天沒想出來,于是他就把他們使用的一個O(n) 的方法告訴我了,我一想,還真是,他們的方法很不錯。再聊了一些小問題,再就是一個大的開放性問題了,如果讓你組織一個團隊,這個團隊是向看小說的網友推 薦小說更新的,你會怎么做,你會需要哪些人,這些人分別是做什么,這個開放性問題中最重要的就是,你怎么保證向用戶推薦的小說更新是他感興趣的?你所有的 數據就是用戶瀏覽記錄。然后我答了大約用5個方向來判斷用戶對某小說是否感興趣,百度面試這種題的策略是讓你想,你想一個,如果他不了解的他就會深入問你,想完一個后再問你:還有嗎?然后答一個后還會問你:還有嗎?想不出來了就只好跟他說:沒有了,暫時想到的就這些。一面到這就差不多結束了,時間大約是80分鐘左右,然后他說讓我先坐著,他馬上去叫人來進行第二面。
第二面的哥們是個大胡子,他上來就沒問題語言相關的問題,估計一二面面試官之前互相交流過,包括哪些問題己經問過了。第一個問題就是給m個關系,每個關系2個數,表示這兩個數是一個團體里的,然后問給定2個數,詢問這兩個數是不是一個團體的,這是一個很簡單的并查集的應用,秒殺之,然后他要我現場寫出來,我就現場寫給他看了,還是不太習慣在紙上寫代碼,不過這個代碼還是比較簡單的。第二個問題也是m個關系,每個關系兩個字母,如A,B,表示A小于B,然后給定2個字母,問這兩個字母是大于關系,小于關系還是未知,當然不存在沖突的關系,也挺簡單的,有向無環圖而己。除些之外就是一些小問題了,最后問的也是一個開放性的問題,我們現在知道A與B的關系,就是微博的關系,數據只有a 是否follow了b,a轉發了b和a評論b,問怎么樣最大概率的找出a沒有follow的,但是a在現實生活中能接觸到的人,這個問題比較開放了,面試官對于對于細節要求很高,扯了半天,二面就結束了。然后他叫我先在這坐著,他馬上去叫第三面的面試官過來。第二面大約是一個小時左右。
然后第三面估計是他們的一個頭頭,他上來看了一下表,就說面試會控制在一個小時以 內,也沒有技術相關的問題,就是聊聊天,感覺完全沒準備。很多問題太突然,沒有準備,但由于不是技術問題,所以也不存在能不能答上來的事情,聊完后,他將 我送到樓下,說讓我回去等消息。出來后看了一下表,三面是四十分鐘。
雖然連續三個小時的面試感覺很累,但是這次面試對我幫助還是挺大的,畢竟走完了整場面試,知道了整個面試的流程。二是對于開放性的問題一定要多想,答錯了沒有關系,你需要向面試官展示的就是你思考的方式,你想問題的方法能給面試官一個比較好的印象。三面給我幫助最大,我會在下次面試之前想一些這方面的問題再來自己解答,這樣就不會在回答的時候顯得比較蒼促,這樣對于給面試官一個思路清晰的印象,畢竟臨時蒼促的想法與成熟的想法是有差距的。這就是整個面試的過程,希望對找工作的同學們有幫助。