百度校園招聘回想
去年的秋招已過去很久了,這幾天完成了畢業設計的論文。感覺全部人輕松了很多,趁著這段空閑的日子,回想1下我參加的幾次的招聘的情況吧。由于秋招錯過了阿里巴巴的筆試,去霸面沒有給機會,騰訊基本不招java崗位,所以沒有投簡歷。所以也就參加了4個面試。先來講說第1個,百度的面試吧。
我在川大望江校區參加的百度成都的筆試,當時很多教室全都坐的滿滿的。我邊上的同學還是專程從云南跑到了成都來參加的筆試。頓時感覺到了就業的深深的壓力。
百度校招的題目還是比較偏向基礎。先是簡答題,總共3個小題,第1題是簡述TCP/IP連接時的3次握手和斷開時的4次握手。第2題是內存管理淘汰算法,我寫了4種,FIFO先進先出、OPT最好淘汰算法、LRU最近最少使用算法、 LFU最少訪問頁面算法。第3個題目是數據庫設計的范式,就是1NF,2NF,3NF,BCNF。然后是算法題,也有3個小題。第1題是找到1個單項鏈表的中項。第2題是在1個集合S中找出最大元素C使得C=A+B,其中A,B均屬于集合S。分析復雜度。第3題是使用棧先進后出來摹擬隊列先進先出的結構,實現函數:enqueue(入隊),dequeue(出隊),isEmpty(是不是為空)的判斷。最后是1個系統設計題,是1個大題。題目大概是設計1個云真個手機推送服務的設計。整體感覺百度的校招筆試題目難度還是比較大的。我做的不算太好。
筆試后的第2天晚上,接到了面試的通知電話。通知后天上午去1面。百度的面試安排的非常好,也是我感覺全部校園招聘中感覺最好的。在酒店里,1對1的面試。1面的面試官看上去很年輕,說話也很和藹。首先是讓我花幾分鐘自我介紹1下。順便說1下,這也是我參加的所有的面試的第1個問題。然后開始問我問題,這里想吐槽1下。百度的招聘1面會問1些腦筋急轉彎1樣的題目,比如問了我賽馬的問題,就是有9匹馬,怎樣通過最少的次數找出跑的最快的馬。當時由于想的太復雜,以為要考算法。居然想到了歸并排序,1直在回想歸并排序的算法,后來才發現是個很簡答的問題。結果浪費了1些時間,最后委曲說了出來。所以提示1下大家,面試時不要把問題想的太復雜,也不要太緊張,正常發揮就好。然后又問了上臺階的問題。就是總過有n階的臺階,每步可以上1級,也能夠上2級,問共有多少種不同的走法。后來才知道這個題是網上流傳很廣的1道題,惋惜我沒有看到過,不過我想到了遞歸,然后花了1點時間,答了出來。考完了腦筋急轉彎,就開始考察簡歷上的知識了。由于我面的java,所以就問了我1些基礎的java的問題,感覺沒有甚么難度。然后又看到我簡歷上說,熟習linux使用,就問我知道tail命令嗎?我說就是查看1個文件的末尾幾行,然后他就讓我寫個方法實現這個命令。我的方法是把1個文件所有的行存到1個ArrayList<String>中,然后輸出要求的最后幾行。他問我還有無更加好的方法,想了1會,就說沒有。然后又問了java的多線程的1些簡單的API,比如run和start方法的區分。我就說看過jdk的1些源代碼,start方法是native的,所以1定是調用底層操作系統啟動線程的,run方法里面是線程履行的任務代碼。然后又問了我join,yield方法。最后問我了volatile關鍵字有甚么作用,我說了,又問我它能實現原子性嗎?我說不能,說了些緣由。又問我知道volatile實現可見性的底層原理嗎?我當時沒有看的那末深入,就說不是很清楚。最后,他看到我簡歷上寫的hadoop,hbase,就問了我1些關于hbase的問題。由于我當時正在看那方面的書,所以感覺答的還不錯。最后就問我有無甚么問題要問的。我就隨意問了幾個問題,然后又問他我答的不是很好的問題的解決方法。這是1個學長教我的,可以顯示出你的好學。然后大概面了1個小時左右。面試進程中,面試官1直在打字,聽說是在反饋面試結果。
然后下午的時候接到了1個電話,通知后天上午去參見2面。2面的面試官是我遇到的最非主流的面試官。進到房間的時候,他好像剛起來的模樣。鞋都沒有穿,翹著2郎腿,首先介紹了下自己。然后我說我善于java,他長嘆了1口氣說,終究來了1個會java的,他也是比較熟習java,說最近遇到的都是面c++的。然后就開始問,先問我1些jvm的知識,比如jvm的內存模型,類加載的1些問題。又問了我1些java的垃圾回收算法,又問我怎樣設置參數,選擇甚么垃圾搜集器。我沒有答上來,然后他就說這些都是實踐,你們比較缺少實踐,理論方面看很多。他又看到我簡歷上寫的瀏覽過部份jdk的源碼,就開始問我HashMap的實現原理,由于我之前重點瀏覽了HashMap的源碼,所以沒有甚么難度。然后又問我知道ConcurrentHashMap嗎,我簡單說了1下,然后又問我知道實現原理嗎?我之前在1個博客大概看過,就說了它是通過分段,加寫鎖實現的并發,等等。然后他又問我了java5并發包的1些API,比如Callable與Runnable的區分,Future,當時也正在看java并發編程那本書,所以也基本都答出來了。接著又看到我簡歷上寫的熟習基本的java設計模式,就讓我寫1下單例模式,由于在紙上,寫了兩次才正確。然后又說,你熟習linux吧,說說經常使用的shell命令。我當時頭腦抽了,隨口說,知道的太多了,說不完。然后他就說,那你寫1下,在1個目錄下找出所有的文件名為xxx的第1行有xxx內容的文件,然后根據大小排列,輸出文件名。我當時就蒙了,果然禍從口出,早知道就隨意說幾個命令不就行啦。所以大家以后面試的時候1定要謹慎,謙虛。由于當時忘了find命令的參數,寫了給他,說不對。然后我就說用awk加管道可能可以,但是我忘了參數了。然后就問我平時上甚么網站,看甚么書學習。我就說了幾個,比如csdn,cnblogs,等等國內的1些論壇。然后我又說,還會用百度查資料,他頓時很鄙視的眼神看著我說,我要是你,就用google了。然后我就為難的笑了笑,拍馬屁拍到了馬腿上。然后就讓我問問題,我就說百度好像出了1個百度眼鏡,怎樣樣?他又是1副鄙視的表情,說,百度的算甚么眼鏡,后面那末大1坨東西。根本就不算是眼鏡,那末重,說會戴。然后又說人家google眼鏡把東西都做在鏡框里,大大的贊美了1番。然后我也笑了,我都有點懷疑他是google的臥底了。然后我就說,感覺您是1個比較有個性的人。然后又問了幾個問題,就結束了,面了大概40分鐘左右,感覺難度比1面要大1點。2面的面試官在面試進程中也在不停的打字。
下午的時候又接到了電話,通知明天下午去3面。3面的面試官是個年齡稍大1點的大叔,后來知道應當是lbs部門的1個總監級別的人。給我映像最深的是非常有礼貌。我進了房間馬上站起來和我握手,感覺有點受寵若驚。然后又介紹,完了問了我幾個c++的比較細節的問題。由于對C++不是太熟,回答的不是很好。然后就開始問項目。我說大2的時候曾做過1個人機對戰的5子棋的游戲,他就問我實現機器人下棋的算法。然后我又說之前做過1個超市的主頁系統,可以預定商品等等,類似于1個電商網站,他就問我的項目怎樣實現的權限管理,前真個代碼如何增加效力。最后又問我如果我的系統要實現類似于淘寶雙11的高并發的搶購功能的實現,應當怎樣設計。我就簡短的說了1下,反正答得肯定不怎樣樣。由于百度的3面面試官也有hr面的作用,就沒有問太多的技術問題,又問了我1些其他的問題,比如拿了多少offer,參加了甚么面試。我說華為,他就問我怎樣看華為的軍事化管理,高強度的加班,我是后來才知道百度是狼廠,以為百度加班應當正常。所以就說華為的制度多么多么的不好,不人性化。現在想一想,當時還是太年輕了!然后問起怎樣適應互聯網行業的高強度,高壓環境。問我怎樣看bat,說說各自的區分。問我知不知道lbs,有無用過團購的產品,由于我們新校區比較偏僻,我還真的沒有用過。最后又問了其他的1些問題,比如怎樣看待保研,工作,考研,等等。然后就讓我問了幾個問題。面試了大概1個多小時。最后又把我送到了電梯口,給我握手。就這樣百度的招聘就告1段落。
百度的招聘延續了1個多星期,雖然組織的比較有條理,但是感覺效力太低,速度太慢。今天就先寫到這里,過幾天有空了,再寫寫面去哪兒網的經歷。
下一篇 線段樹