1. 程式人生 > >百度校招-等待百度的那些日子裡

百度校招-等待百度的那些日子裡

百度一面2013年10月11日下午5:00 天津晉濱國際大酒店

有幸通過了對我來說很有挑戰性的百度筆試,迎接來了度孃的一面,約的下午5:00,4:50我來到了一面面試官所在房間的門口(1220),門大開著,裡面有個哥們正在面試,就沒打擾,在門口老實等著,等到5:30他們才結束,就輪到我了。一面比較順利,沒有自我介紹,上來就是一道演算法題:一個vector<int> a,現在給定一個整數x,要把a中所有等於x的數刪除,時間複雜度O(n)。上來我給了一個思路,用兩個指標pBeg, pEnd同時從頭開始對a進行處理,其中pBeg指向已處理完的最後一個元素,pEnd指向當前處理的元素。思路OK,可以解決問題,但面試官又提出我這種演算法在針對x在a中出現很少的時候,資料交換的次數有些多,有很多的交換不必要,換句話說,現在要求發生資料交換的次數僅與x在a中出現的次數相關,而與a的大小無關;想了想,換了個思路,還是兩個指標pBeg, pEnd,只不過是一個從頭開始,一個從尾部開始對a進行處理,其中pBeg指向當前第一個等於x的的位置,而pEnd指向當前最後一個不等於x的位置,交換兩個指標指向的值,然後兩個指標向中間查詢,相遇時結束。說完思路,簡單寫寫程式碼,OK,第一個題過關;緊接著,第二個,也是比較常規的,就是兩個有序的單鏈表,將其合併成一個連結串列,仍然保持有序性,這個寫得很快,他好像很著急,正在檢查邊界問題,他就急著要看,說主要看思路,看完點了頭,算過關了吧;第三題,也很常規,就是對一個單向連結串列,進行反轉,寫得很快,但邊界情況處理有點小問題,後來面試官指出後我立馬改過來了,my god!OK,演算法問完了,就開始聊別的了,聊聊專案,作業系統中的程序通訊啊、C++中的多型啊、指標與引用的區別等等。總之問的都是些零散的知識點,沒有太深入的問題,自己答的還是不錯的,一直面到約6:30才結束,然後面試官很友好地開門送我出去,並隨我一起進了電梯下到酒店一層(估計他也是準備吃晚飯了),中途他跟我說,我應該表現得再自信一點,其實技術面表現得還是不錯的,哎,汗顏吶。

百度二面2013年10月13日上午11:00 天津晉濱國際大酒店

經過兩天的等待,12日晚上,百度的HR給我來了電話,通知13日上午11:00二面,當時已經收到了華為的offer,展訊的也給了口頭的offer,而且更坑的是華為的13號就必須簽了,否則就無效了……我想了,華為的還是先簽了吧,儘管要違華為的可能手續比較難辦(據說雖然不要違約金,但三方得到來年4、5月份才退回來)所以我跟百度的HR說,我說上午我可能有點事,能不能往後調整半小時,他說可以,OK,但願籤三方的時間不會太長,事實證明我這是瞎操心,手續只要齊了,真快!一下子就把自己賣出去了!那時還不到10點,我就慢悠悠地從天宇大酒店(忘了說,這是華為面試在的酒店)走到了晉濱國際大酒店,進去以後我就在一層大廳的沙發上座下了,拿出包裡的搜尋引擎這本書翻了翻,邊看邊等。在這又碰到了之前去微軟面實習生時認識的一位博士校友(跟我同時進天大的,應該是碩博連讀,自動化學院校友),在樓下聊了聊,他是10點的,跟我說了一個演算法題,說是這個題好像問得比較多,就是類似於在百度搜索欄中輸入過程中會動態地在下拉表中提示比較熱門的搜尋串,這個是怎麼實現的?唔……還沒問清怎麼搞,他就急匆匆地上去了,好吧,自已上網搜了搜,也沒搜到啥,自己想了想大概有個想法就行,看命了。10:40,上了趟廁所,就坐電梯直奔817了(HR的房間),去了一按門鈴,我說我是來面試的,他立馬就說,你是***吧?我說是。然後就查了下,然後立馬讓我去718。立馬下去直奔面試房間,進去就開始了,不過這一輪一開始有自我介紹,然後對著簡歷聊了些,接著就一個海量資料題:200億個64位的整數,要求其中top 10%大的整數,可用資源1000臺記憶體為8G的機器,說了一個思路,後來想了些,哎,這麼明顯的MapReduce問題,自己竟然沒想到用mapreduce,好吧,這個勉強過了。接下來,是一個網路題:用C/S模型實現C到C的聊天,好吧,這個我答得不好,最後他提示了一句,在C端用一個心跳(以一個週期,向伺服器傳送一個空訊息,通過這種方式來接收S的訊息佇列中的訊息)……

百度三面 2013年10月156:00 天津晉濱國際大酒店

哎,一不小心,竟然走到了三面,好吧,淡定地走完吧,能得度娘垂青,得之我幸,失之我命。三面是在712,三面的面試官很nice,一進門主動與我握手,進來後先讓自我介紹了一下,然後聊了會天,說我導師是誰(頭一回有面試官問我導師是誰的……),然後問我為什麼投百度,當然了,我就從百度的技術跟文化這兩方面講了些自己的想法。然後言歸正傳,開始考察coding的能力,給一長串英文句子,中間包英文單詞、標點和空格,現在想對每個單詞進行操作,讓每個單詞首尾翻轉一下(包括標點符號)如I love baidu.處理以後變成I evol .duiab,好吧,這個思路應該是很清晰的,只是在coding的過程中注意些細節就可以了,大約10分鐘,寫好了,給他看了看,然後問了STL中的容器有哪些?map容器是怎麼實現的?紅黑樹與AVL樹有什麼區別?(這個竟然沒有想起來,我都把紅黑樹描述了一遍都沒有想到它與AVL樹的區別,汗!)解釋下Spring MVC以及MVC這種框架的好處?作業系統中常見的程序通訊方式?資料庫中索引為什麼要用B+樹?等等,整個過程回答得一般吧。最後問我還投了哪些公司?拿到了哪些Offer?然後我有點太誠實了,當時已經簽了某某公司了,老實交待了,但表示依然很想去百度,希望不要把這點作為一個減分項,他嘴上說不care,但我想多少還是有些care的,至少表明想去百度的決心、信心不夠強烈。最後問我還有沒有什麼問題,我就問了他我距離百度還有多遠?希望他能給我技術發展提一點建議,他建議我至少去學好一門指令碼語言,尤其是PHP或Python,然後去深入學習一下Mysql,瞭解下其它一些NoSql,如MongoDB等。學會去分析下一般的網站是怎麼實現登入的?還有其它一些功能是怎麼實現的?等等,恩,非常感謝!最後他反倒說:“應該謝謝你投遞百度”,然後主要跟我握手道別,好吧,這一別,沒想到在未來的三天時間等待裡成為了永別……

2013年10月18日,應該是百度研發類Offer發放的最後一天,跟我一起參加三面的哥們在18日上午10點收到了電話Offer,很感謝他第一時間告訴了我,在接下來的一個小時時間裡,才發現等待是件多麼難熬的事,11:00了,依然沒有訊息,12點也,還是沒有訊息……這次百度校招,此刻跟我Say Bye Bye了。

總結下吧:一方面,從技術準備上來講,自己準備得可能不足,尤其是關於Linux中程序操作的一些指令(如ps, jobs, awk)瞭解不夠深入,以及資料庫主從機的同步啊等。

另一方面,自己處事不夠圓滑,太誠實了,真心不會說半個字的假話……心裡怎麼想的就怎麼說的,再加上我技術水平不高,這個可能就成為軟肋了。恩,不能太滑,但在適當的時候要學會迂迴戰術。

寫在最後:最近不打算再找工作了,想給自己放放假了,祝大家都能拿到自己滿意的Offer

#------------更新--------------------

沒想到在2013年12月6日,接到了百度軟體研究院HR的電話,她們現在在補錄階段,答應給我offer了,但希望我能在年底把之前籤別家公司的違約手續辦好……

哎,真心是命吶,我籤的那家年底是絕對不可能退回三方的……跟百度HR商量也沒有辦法了。真是失之我命!

#-------------------------------------更新:有時候命運真的會給你開個玩笑----------------------------

今天 是2014年9月18日(竟然是九一八紀念日),今天,所在公司開員工大會,結果是,我們的部門要併入百度了,馬上就要搬進百度大廈了。