本人IT屌絲一枚,畢業4年,5年經驗(大四在騰訊實習一年,實習生工資,工作內容同正式員工一樣)。非常幸運,先后收到過騰訊、百度和阿里的offer,在這里跟大家分享下騰訊面試經驗,同諸君共勉。
本人職業生涯的起點開 始于騰訊,能入職騰訊其實非常偶然。09年騰訊校招的時候,在本人的學校(學校是2本就不說名字了)開宣講會,學院很多同學都去了,因為當時對騰訊興趣不 大所以沒去,當時希望去中軟金蝶這樣的傳統軟件公司。一個宿舍的兄弟要去參加騰訊校招的筆試,我作為親友團陪他一起去。騰訊的hr很nice給了我一張筆 試題和意愿表讓我填。本來我想從學校北門直接坐車回家,既然來了反正也沒什么事就寫了,算是為以后找工作熱身。騰訊面試筆試內容主要是編程基礎和排序查找 算法之類的題,還有用程序實現遞歸這樣的,具體的忘記了。
筆試題感覺很簡單,附加題也答上了(本人專業課學霸、其他科學渣)。答完也沒檢查就坐車回家了,吃飯的時候收到騰訊叫我第二天去一面的短信,剛好我爸爸媽媽在南山的同學去我家做客,就乘阿姨的順風車回學校準備第二天的面試。
騰訊一面的面試官非常 的nice也是我后來的組長,非常有人格魅力的一個人,我去的時候還特意給我倒了一杯水。騰訊面試官員主要問我了解的技術,我就介紹了下在大學期間做的 C++、.Net和J2EE項目,規則引擎、財務系統、學業預警系統、爬蟲引擎這些。因為完全沒準備所以回憶起來有點吃力,還好面試官沒有刁難,發揮還可 以。問了Java的內存機制,會不會導致內存泄漏,這個答的不太好;問了下hibernate的機制和作用都回答上了,讓寫了下爬蟲程序的核心代碼和正則 表達式。
一面整整面了30分鐘 感覺有戲,就回去好好準備2面的內容,把當年工程代碼翻出來復習以免再出現忘記的尷尬。很快第二天就通知去進行技術二面。技術二面就是傳說中的壓力面,被 好一頓虐待。項目中的問題一個沒問,問的全是操作系統、數據結構的問題。還好專業都是A+,大多數題都回答上了。問了下我樹轉二叉樹,這個小意思。還問了 Java內存機制和是否會有內存泄漏什么情況下會泄漏,good這個在一面回去之后就看了,回答的完美。最后一題是問的查找QQ號。小case,寫了個二 分查找;他說你認為我會滿意嗎,我想了想又寫了一個哈希查找,他說還是不滿意。這個時候我已經有點小不爽了,就說不知道。在有點尷尬的氣氛中結束了面試。 當時覺得沒戲了,有點失落。回家看了下算法導論,原來有一個極為高效的算法是二叉查找,騰訊面試,唉,人家已經提示了,但是還沒想到,有點小遺憾。
過了一周收到騰訊的 hr面試邀請的時候,說實話非常的意外。聽說我們學校本科生全軍覆沒,就我一個過了2面,研究生只有3個過了2面。hr面沒問什么特別的,此處不表。一周 后收到騰訊的正式offer,還是有點小激動的。薪水方面超過了我的預期,但最主要的是一面的面試官看起來很厲害的樣子,感覺騰訊也是一家很厲害的公司。
在騰訊干了四年,正式 三年,實習一年。后來開始負責招聘,我們部門在選擇求職者的時候主要看聰明程度、視野、大局觀、氣場等軟實力。當時我負責面了一個孩子,各方面挺不錯的, 組長覺得也還行,但是被總監斃掉了,原因是太軟不夠霸氣。還有一個哥們技術和基礎感覺都還行,但是被組長斃掉了,原因是視野和聰明度不夠。
所以準備面試騰訊的同 學,建議多留意近期的互聯網的最新動態,多練練表達。如果能在面試中批判一下近期騰訊的決策失誤和產品缺陷,無論對錯都會認為這個孩子不錯,那么一定會加 分的;但是也不能過了,完全說的不對還侃侃而談會讓人覺得你這個人很浮夸也是會被斃掉的。尺度的拿捏很重要。還有一點,語速快而且語氣堅決目光堅毅自信的 比語速慢表達不流暢的同學成功幾率高。我面過一個哥們,后來他頂替了我領域負責人的位置,這是后話。他在面試的時候就非常的自信,如果問一些“弱智”問題 會被他反諷,當時大家就覺得這個人很厲害,面試也很順利,1天連續面了5面,當天就發了offer。騰訊面試,騰訊社招是電話面、技術一面、組長面、平臺 總監面、部門經理面、hr面。總共6面,面談是5面。
面試的時候首先要自 信,如果能做到不卑不亢其實就已經成功了一半。我感覺大多數程序員都不太自信,給人感覺有點文弱,如果你自己都對自己不自信,怎么能奢求公司對你自信呢。 但是也不能太自信,自信心爆棚就是自大,面過一個2年開發經驗的問他技術都不知道,就談項目。騰訊面試,問他項目中做了什么就談項目是什么。在我這就被斃 掉了還問你們能不能開到30w,我只能讓他回家等消息了。
騰訊面試題整理——并附有網友的解答,感興趣的同學參考下
一不定項選擇題(共25題,每題4分,共100分,少選、錯選、多選均不得分)
1已知一棵二叉樹,如果先序遍歷的節點順序是:ADCEFGHB,中序遍歷是:CDFEGHAB,則后序遍歷結果為:(D)
A.CFHGEBDAB.CDFEGHBAC.FGHCDEBAD.CFHGEDBA
根據先序遍歷和中序遍歷能唯一確定二叉樹:
注意:要想唯一確定一顆二叉樹,必須已知兩種遍歷,并且其中必須有中序,因為先序和后序不能確定左右子樹,如下圖所示:
從上圖中我們可以看出,沒有中序是不能確定一顆樹的!
2下列哪兩個數據結構,同時具有較高的查找和刪除性能?(CD)
A.有序數組B.有序鏈表C.AVL樹D.Hash表
數組的刪除性能比較差,而鏈表的查找性能比較差!
3下列排序算法中,哪些時間復雜度不會超過nlogn?(BC)
A.快速排序B.堆排序C.歸并排序D.冒泡排序
快排和冒泡排序在最壞情況下的時間復雜度是O(n^2);
4初始序列為18625473一組數采用堆排序,當建堆(小根堆)完畢時,堆所對應的二叉樹中序遍歷序列為:(A)
A.83251647
B.32851467
C.38251674
D.82351476
建立小根堆的過程如下圖所示:
5當n=5時,下列函數的返回值是:(A)
intfoo(intn){
if(n<2){
returnn;
}
else
returnfoo(n-1)+foo(n-2);
}
A.5B.7C.8D.10
6S市A,B共有兩個區,人口比例為3:5,據歷史統計A的犯罪率為0.01%,B區為0.015%,現有一起新案件發生在S市,那么案件發生在A區的可能性有多大?(C)
A.37.5%B.32.5%C.28.6%D.26.1%
30.01%/(30.01%+50.015%)=28.6%
7Unix系統中,哪些可以用于進程間的通信?(ABCD)
進程間通信主要包括管道,系統IPC(包括消息隊列,信號量,共享存儲),SOCKET.
A.SocketB.共享內存C.消息隊列D.信號量
8靜態變量通常存儲在進程哪個區?(C)
A.棧區B.堆區C.全局區D.代碼區
棧區一般用于存儲比較小的臨時變量;
堆區一般用于存儲比較大的臨時變量;
代碼區用于存儲代碼;
全局區用于存儲全局變量,靜態變量等。
9查詢性能(B)
A.在Name字段上添加主鍵
B.在Name字段上添加索引
C.在Age字段上添加主鍵
D.在Age字段上添加索引
如果經常依據特定的字段搜索表或對表的記錄進行排序,則可以通過創建該字段的索引來加快執行這些操作的
10IP地址131.153.12.71是一個(B)類IP地址。
A.AB.BC.CD.D
A類:0打頭
B類:10打頭
C類:110打頭
D類:1110打頭
11下推自動識別機的語言是:(C)
A.0型語言B.1型語言C.2型語言D.3型語言
參考:維基百科
12下列程序的輸出是:(D)
#defineadd(a+b)a+b
intmain()
{
printf("%d\n",5add(3+4));
return0;
}
53+4=19
A.23B.35C.16D.19
13瀏覽器訪問某頁面,HTTP協議返回狀態碼為403時表示:(B)
A找不到該頁面
B禁止訪問
C內部服務器訪問
D服務器繁忙
14如果某系統154=112成立,則系統采用的是(A)進制。
A.6B.7C.8D.9
逐個帶入即可:
對于6進制而言:15的十進制就是11;112的十進制就是44,114=44。
15某段文本中各個字母出現的頻率分別是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼編碼,則哪種是可能的編碼:(A)
Aa(000)b(001)h(01)i(10)o(11)
Ba(0000)b(0001)h(001)o(01)i(1)
Ca(000)b(001)h(01)i(10)o(00)
Da(0000)b(0001)h(001)o(000)i(1)