百度2016實習生面經(三面)

五一在外面玩的時候收到百度發來的下週六上午10點面試的通知,那是一個興奮啊。唉,導致了五一玩的那叫一個糾結呀。一邊玩一邊想着面試的事,真叫痛並快樂着。嘿嘿。終於體會到了心在曹營身在漢的感覺。五一過後,便返回學校了。返回學校之後,便是複習以前的知識。數據結構、操作系統、計算機網絡、linux、C++等。唉,複習的想吐了,都有想撕書的衝動了。終於,這艱難的幾天過去了,週六來了。好激動啊。因爲10點面試,早上8點起牀,整理了一番後,蓄勢待發。找了一間比較安靜的教室,大概也就9點10分了。看了幾眼書,其實根本就看不進去。開始把耳機拿出來,等着電話過來,啊啊啊,但是悲劇了,耳機是耳塞式耳機,一個頭竟然掉了。只有一個頭,唉,只能帶着殘缺美上路了。終於等到10點了,以爲會按時打過來,結果還沒有,就怎樣一直等啊等,那叫一個緊張and糾結啊。終於10點40,電話all來了。面試官上來先道歉,說讓我久等了,面試官挺客氣的,說話的聲音聽着比我大不了多少歲。嘿嘿。然後就插着只有一個頭的耳機面試就正式開始了,
一面:
例行公事,上來要我自我介紹。還好之前我有準備。之前去騰訊面試的時候,第一次沒有經驗,連自我介紹都不知道該怎麼說。唉唉,還是自己太年輕了。然後我就把我之前準備的自我介紹說了一遍,中間還賤賤的反問了兩個問題。1、在棧上,定義數組時,爲什麼不可以用變量作爲數組的長度。2、在函數內定義一個字符數組,用gets函數輸入字符串的時候,如果輸入越界,爲什麼程序會崩潰。現在想想,這兩個問題還寫的比較有價值。然後面試官對我的第二個問題也挺感興趣的,就問我爲什麼,因爲之前準備過,然後我就balabala,涉及到C/C++函數調用機制,以及彙編層面的知識。感覺說的還可以,面試官聽完之後什麼也沒說就開始正式問問題了
1、上來問了我的最近的一個項目,技術難點啊,怎麼克服的。balabala
2、C++引用和指針的區別,這個學過C++的應該都知道,然後我也說了一些涉及到彙編層面的東西。比如引用其實是佔用內存空間的、引用的指向並非是不能修改的,可以通過嵌入彙編代碼修改。
3、C程序內存佈局,這個應該都知道。
4、說說棧區和堆區,又是balabala,說的挺詳細的
5、new和malloc的區別,其實都挺基礎的,繼續balabala
6、快速排序的思想、時間複雜度、三種快排以及四種優化方法。當時腦子抽了,把時間複雜度說成了O(logn),艹啊
7、進程和線程的區別,這個學過操作系統的都不在話下,可以說一些深入的東西,Linux內核級線程啊什麼的。
8、進程間的通信方式,管道、消息隊列、共享內存、信號量、套接字
9、又問我IO多路,select、poll、epoll,epoll機制
10、說幾個linux命令,我說awk、grep啊什麼的。怎樣建立文件夾、查看文件夾的大小、查看CPU使用率等
11、又問我最近在看什麼書。因爲之前看別人的面經的時候,說一面問你看什麼書HR面也會問,你最好回答的都一樣。我就說C++編程思想、深度探索C++對象模型、數據結構與算法
12、最後他說問我一個開放性的問題:秒殺一個獎品,讓你設計一種軟件模型。瞬間傻眼。然後一想,要解決高併發、高流量、避免重複秒殺獎品。然後就說可以用生產者消費者模型來,給獎品加鎖,他說,可以,但是加鎖之後會降低併發量,問我怎麼辦,我想了說可以分流,把高流量分流,他又問我怎麼分流,我說可以把獎品分組,每一組獎品加鎖,然後把分流後的每一組流量分別打到每一組獎品上。他說可以,問我還有沒有別的方法,我想了一會說,不知道了,唉唉,比較菜。他說,沒事,這就是一道開放性的問題,沒有確定答案。但是後來才知道,這是不可以使用鎖的。把數據放在內存中操作,不把結果立即寫入數據庫,在內存中操作以及用系統自帶的鎖機制。
13、差不多40-50分鐘也夠了,他說他要給我登成績,說我可以先去吃個午飯。也沒有讓我問他問題,不過這樣也好,我也不知道問什麼,之前準備了問面試官的問題,現在看來,還好沒問,我準備的兩個問題剛好二面面試官我問他一個,HR面試官問她一個。剛剛好。之前以爲自己撐不到最後就只准備了兩個問題,一面和二面。
二面:
下着雨,關鍵是還沒有傘,嗚嗚。吃完飯後回到圖書館休息,突然1點10分左右二面面試官就打過來電話了,問我方便麪試不,肯定方便啊,我說,讓我找一間比較安靜的教室。約定15分鐘後打過來。果然15分鐘後打過來了
1、上來就說對我的項目經驗比較感興趣。感覺自己做的項目在人家眼中就是小程序。問我項目中遇到什麼技術難題,怎麼解決的,還有對軟件設計的看法啊,拿到一個項目後,你是怎麼進行架構設計的,然後就在那裏和面試官扯開了,什麼自上向下啊、模塊分解啊、界面實現和業務邏輯實現分開啊什麼的等。又問我在我的那個項目中,C++是用面向對象程還是面向過程的方式寫的,我說我先抽象出一些類,然後balabala。問了大概有20分鐘,差不多快佔面試時間的一半了。說完之後就感覺自己戲不大,自信心暴減啊。感覺二面應該通不過。接下來終於問我具體的編程知識了
2、說說C語言中union和const關鍵字。又是一頓balabala,又問我union有什麼好處,我說節省內存空間,設計一個學生的成績時就可以使用共用體,他還問我有沒有別的好處了,我說還可以用來測大小端存儲,別的就不知道了
3、C語言中變量有幾種存儲方式。這個學過C語言的應該都知道,balabala,不過感覺最好說的細緻一點,我有說了一些關於編譯器層面的理解。
4、又是這兩個問題,一面都問過了。進程和線程區別、進程間的通信方式,回答的和一面一樣
5、線程間怎樣實現獨立訪問,我說可以用鎖,他說除了用鎖還可以用什麼,信號量,條件變量。可以使用互斥量和信號量來實現線程池之間的同步。
6、然後又問我對XX數據庫理解不,第一,沒有聽清是什麼數據庫,第二完全沒有聽過這個數據庫。直接說不知道。然後他說,那問你關係型數據庫的問題,他說的那個數據庫應該就是非關係型數據庫了
7、說說數據庫的事物,我說不知道。唉,沒有複習數據庫,艹啊,自信心又大減
8、數據庫爲什麼要建立索引,以及索引的缺點。索引由B+樹實現,索引類型等balabala,感覺說的一般般
9、vector的分配問題,balabala,還好沒有問vector爲什麼每一次擴容都是2倍,這個問題之前百度過,但是沒有找到答案,個人感覺是採用Linux內存管理的夥伴系統的思想。還有在vector中插入n個數的時間複雜度,尾插是O(1)即常數時間複雜度,如果插在中間或頭,就是線性時間複雜度了。插入後會造成之後以及當前迭代器失效等等
10、有2個很大的文件,也就是不能放到內存中,文件的每一行存放的是一個URL,每個文件的URL都不重複,但是兩個文件之間可能有重複的,讓你找出兩個文件重複的URL。明顯的大數據問題啊,還好之前準備過。我說,先通過哈希映射,用URL做哈希碼,把每個大文件分成許多的小文件,他又問我,URL怎麼做哈希碼,我說URL也是字符串序列,可以把每個字符的ASCII碼相加,他說這樣做哈希衝突有點大,又問我怎麼處理哈希衝突,等,這些都是課本上的,還應付的來。然後我又說可以把每個URL截取3段,最左邊,中,和最右邊,然後求ASCII碼。然後我又說,可以用bitmap來把每一個小文件裏的URL映射到唯一的一個位中,如果位有相同的那麼這個URL就是重複的URL。他又問我,怎麼把URL映射到每一位中,艹啊,於是想了之後說,可以用一個基準字符串,把URL的每個字符到這個基準字符的距離相加得到一個整數值,這個整數值就可以唯一的標識該URL了。其實後來才知道有字符串哈希函數的。最常用的莫過於ELFHash了。他說bitmap中有重複的怎麼辦,我說如果重複了就可以說明這個URL是重複的,就可以確定了。然後面試官也木有說什麼了。可能是我太菜了。。
11、有n個數,找出第k個大的樹。我說可以先維護一個k個元素的最大堆,然後遍歷剩下的n-k個元素,如果大於最大堆的根,就交換值(當時說錯了,應該是最小堆。艹啊,太緊張了餓。)遍歷一遍得到k個元素的最小堆裏的k個數就是最大的k個數,然後快排或者堆排,最小的就是第k個大的數
又問我時間複雜度是多少,我說O(nlogn),當時緊張說錯了,應該是O(nlogk),他又問我還有沒有別的方法,如果數據在內存中可以放下的話可以使用快排的partition函數。達到O(n)
12、問我有沒有想問他的,我就說了一個,感覺二面都不會過了,就直接回圖書館了
HR面:
剛剛到圖書館還沒有坐下來,HR姐姐打電話說她是第三面面試官,聲音好甜,嘿嘿然後我說等我找個安靜的教室。又是飛奔到教室。
然後上來就問我想什麼時候去實習,實習時間啊,我本來想說實習暑假的,想了以下太短,又說實習3個月,她說希望可以至少實習半年。那必須聽人家的啊。我急忙說,我們課比較少,可以實習半年。她又問我什麼時候去實習,她那邊希望儘快最好,我傻啦吧唧的說7月中旬,她說可以。感覺應該說立刻可以去實習的。唉唉,接下來就是正式面試了
1、問我的項目,感覺問的比二面還要細緻,我就balabala,說了好大一會,說的嘴都幹了
2、又問我對搜索引擎的看法啊,技術難點啊,什麼的,非法排名啊
3、又問我對當下比較熱門的技術的看法,人工智能、機器學習什麼的,一直在那裏扯,感覺都不知道要說什麼了,感覺HR面比技術面還要煎熬
4、又問我有沒有搜索引擎、數據方面的項目經驗,啊啊,直接說沒有
5、又問我對什麼感興趣,算法啊、等,我說算法,又問了一大堆算法方面的東東
6、問我想從事哪一塊的工作,我也不知道有啥,嘿嘿,我就說C/C++後臺服務器開發,她說,範圍太大了,我給你說幾種吧,數據挖掘、機器學習、人工智能等。我隨便選了一個,數據挖掘。其實後來才知道這是個坑。本科生做不了的。研究生才做的。
7、又問了我數據挖掘的好多東西。比如想挖取大衆點評的論壇的裏面的內容,要怎麼樣做。艹啊,一頓亂扯。我說先用一個爬蟲去爬取,可以僞裝這注冊一個用戶,然後這個用戶就可以看到論壇裏面的東西了,就可以用爬蟲來挖取走。然後我又說如果大衆點評有這種反假用戶分技術就不好半了,balabala,說了一大堆,然後又說但是這種方式效率有點低,我說可以分佈式。。。真的快頂不下去了。
8、又問我數據挖掘的技術難點啊,我叉,身體and心靈已經千瘡百孔,我說第一,會被識破虛假用戶的身份,她說確實是一個難題,我還說數據更新這一塊也是個難題,具體更新到什麼時候也不確定。還真被我給暈對了,看來平時經常關注互聯網還是好處大大的。HR姐姐說這還真是一個比較大的難題。看來今天是人品大爆發了,嘿嘿。
9、問我有沒有什麼想問她的,我說百度公司內部文化。
後記:終於完了,3面大概都是40-50分鐘。

發佈了73 篇原創文章 · 獲贊 107 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章