天天看點

我的阿裡,百度面試經

     鑒于很多同學都問我有關面試的問題,作為一個樂于分享的人來說,我就把我的經曆和大家彙報一下吧。

     兩次面試都是通過師兄的内推,好處是不用筆試了(對于一個不善于考試的我來說,這着實是一個很大的福利啊)。廢話不多說,直接上真家夥。阿裡一面過了,二面光榮挂掉,百度很幸運,順利通過二面,拿到實習生offer。因為當時阿裡的面試在前,可以說是一點經驗都沒有,想着自己平時項目啊,知識儲備神馬的還行,是以也就沒有放在心上。呵呵,正如前面所說二面順利挂掉。吃一塹長一智,為了百度的面試,我前幾天狂看書,算法,資料結構,面試寶典,網上别人分享的面經,可以說是天魂地暗吧。(PS:給大家推薦一本書《程式設計之美》,相信很多人都看過,起碼對我來說是受益匪淺)

     阿裡和百度都是電話面試,畢竟不可能為了你自己安排一場當面的面試吧。一般情況是那邊的HR先和你預約一下面試時間,你可以根據自己的情況來做決定。到了時間後,你的電話一定會準時響起,接下來就是你大顯身手的時候了。有一點我要特别提一下,兩個公司的面試官真的是十分和藹,純正的國語發音給我留下了深刻的印象哈哈。說是面試,我更願稱為一場技術的交流。當你有的問題一時想不起的時候,通常電話那頭會說:沒關系,我們換個話題吧,說一下你擅長的點吧。一瞬間你會覺得對方萬丈光芒啊。

    兩個公司的方向不一樣,是以面試也是完全不同的風格。因為時間有點長了,是以我就盡我所能回憶點滴吧。先說阿裡,我在履歷中說的是我比較擅長Java,是以面試官問了很多關于這方面的問題。其實問的問題都不難,卻是真的十分十分基礎(我已經夠強調了吧)。比如問到get和post的差別(這個相當經典),ArrayList和LinkedList的差別,HashMap和HashTable的差別,preparedstatement和statement的差別諸如此類吧。我們很多時候隻知道如何用,卻不清楚為什麼這樣用,總是用别人封裝好的接口,類,卻不知看看底層是什麼,如何實作的。這算是給我一個很大的觸動吧。阿裡畢竟時間長了,我還是着重說一下近期百度的面試吧。

    一面上來問了一道基礎的冒泡排序,百度很注重算法的時間複雜度,要求你說出最好最壞的時間複雜度。然後問到如果是最好的情況下,什麼時候退出循環。面試官說有很多同學都知道最好的情況是o(n),但是卻說了一個o (n*n)的算法退出循環。其實看到這兒大家都知道冒泡一趟比較沒有交換,直接退循環,不多說。然後是一道連結清單的題,如何走一趟循環找到連結清單的中間結點,和判斷循環交點一樣也是快慢指針,不多說。接下來數組題,找到一個位置使左右兩邊之和相等,資料是整形的。想了一會說到,頭尾指針,左邊和右邊交替相加,如果左邊小于右邊,右邊加數,右邊小于左邊,左邊加數,直到頭尾指針重合。這個時候面試官笑道,你回答了一個80%的同學會想到的一個标準的錯誤的答案。哦,mygod,面試官,你敢不敢再可愛點!為什麼是錯誤的呢,因為數組中有可能是負數,這一點我是萬萬沒想到啊,是以又想。沉默了好一段時間,終于binggo!第一遍數組求和sum ,然後從頭周遊求和count,此時位置記為a[i],判斷count-a[i]與sum-count是否相等。還問了數塔的問題,果斷動态規劃。我的想法是從下往上規劃,面試官意思是從上往下做,他說他的比較傳統,然後我們就探讨了下從下往上做,這樣也是可行的。二面上來也是排序,問的是快排,最好最壞時間複雜度,是否穩定。一道算是數字遊戲吧,不借助第三個變量,如何交換兩個變量的值。然後問了我知道哪些linux下的指令,像什麼cp啊,ls啊就沒必要說了,來點高大上的指令,比如chmod,ps,fdisk啊,當然了肯定還有其他同學的指令更加高大上。然後問了履歷中hadoop hbase 的内容,還好有準備,哈哈。碰巧又問了hashmap和hashtable的差別,這次可就難不倒我了。接着又是數組問題,求個一數組中個數大于一半的數。方法有很多,面試官會不停的問還有沒有效率更好的辦法,其實這才是他想要的。最後是一個大檔案中字元串比對的問題。明顯是一道大資料的問題,記憶體中是一次裝不下這麼資料的,并且比對也會很慢。這種類型題目網上很多,無非是以大化小,我的想法是果斷分割成幾個小檔案,面試官問怎麼分割啊。沉默片刻,那就hash一下吧,寫個hash函數,把字元串hash到不同的小檔案中去,這樣我比對起來就會快一些吧。我問到可行嗎?面試官說你這個也可以,方法是有很多的。最後問了我一些搜尋方面的問題,比如你要做搜尋會從哪些方面考慮,了解搜尋技術嗎?還好有接觸過網絡爬蟲方面的知識,然後blabla一通。

    有些問題可能記不起來了,但大緻看上去題目還是比較考察基本功的,不會考你很複雜的東西,畢竟是應屆生,沒有太多經驗的。總結幾點,準備是一定要的,當然除了大牛,我這類資質平凡的人不僅要準備,還要用心準備。面試的時候要放松,有時候緊張的話會影響發揮的。對自己的履歷要十分了解,不論面試官問哪點,都能對答如流。面試過程中,遇到不能解決的問題,也要給出自己的想法,千萬不要說我不會,我不懂,一定要試着解決,即使不正确,也能讓面試官看到你執着,努力,勤于思考的一面。

    随着時間的飛逝,各大公司的面試,筆試就要輪番轟炸了。因為我是網上面經的受益者,是以也希望我的經曆能夠幫助到一些人。無非是希望大家都能找到一個适合自己,自己感興趣的公司。就這麼多吧,祝各位安好!

繼續閱讀