騰訊面試對(duì)大家來(lái)說(shuō),可能沒(méi)有體驗(yàn)到這種困難,分享一位面試者的經(jīng)歷給大家,如果覺(jué)得不錯(cuò)的話不妨轉(zhuǎn)載到朋友圈。
離騰訊實(shí)習(xí)生招聘已經(jīng)兩周了,網(wǎng)申、復(fù)習(xí)、筆試、面試。最開(kāi)始并沒(méi)有想到會(huì)進(jìn)入到專業(yè)二面,也沒(méi)想到一面會(huì)被面那么多次。因?yàn)椴皇怯?jì)算機(jī)專業(yè),連相 關(guān)專業(yè)也算不上,一直還在擔(dān)心簡(jiǎn)歷篩選就會(huì)被鄙視掉,甚至還做好了霸筆的準(zhǔn)備。作為人生中的第一筆和第一面,從中得到了一些經(jīng)驗(yàn),也明白了自己的不足。把 這次經(jīng)歷寫(xiě)于此,算是對(duì)自己的一種鞭策。
【網(wǎng)申+筆試】
四月初看到的招聘信息,因?yàn)閷?duì).net比較感興趣,而且論文也是要用到.net,于是 便選了.net方向。填專業(yè)的時(shí)候其實(shí)挺糾結(jié)的,因?yàn)楸究茖I(yè)跟計(jì)算機(jī)一點(diǎn)也扯不上關(guān)系,很擔(dān)心簡(jiǎn)歷篩選被鄙視掉,于是在項(xiàng)目經(jīng)驗(yàn)?zāi)抢飳?xiě)了不少,五一放假 的時(shí)候還做了個(gè)項(xiàng)目展示的網(wǎng)頁(yè),能讓別人直觀的看到自己做的東西,還是比單純的文字描述比較好吧。
因?yàn)槭菆?bào)的.net方向,所以花了將近1個(gè)月的時(shí)間看.net的東西,但后來(lái)看了別人寫(xiě)的筆經(jīng),才發(fā)現(xiàn)失策了,騰訊軟件開(kāi)發(fā)方向考的幾乎都是數(shù)據(jù)結(jié)構(gòu)、算法還有C++的基礎(chǔ)知識(shí)。幸好發(fā)現(xiàn)的時(shí)候離筆試還有半個(gè)月,不過(guò)已經(jīng)來(lái)不及把所有的專業(yè)課本都通看一遍。小郁悶。
騰訊的筆試都是很基礎(chǔ)的東西,但卻又考得很細(xì),看著都會(huì)卻容易做錯(cuò)。跟筆經(jīng)上寫(xiě)的差不多,數(shù)據(jù)結(jié)構(gòu)、算法、面向?qū)ο蟆⒉僮飨到y(tǒng)、C/C++等,還有考了 幾個(gè)linux中多線程那部分的函數(shù)。有些東西就得看平時(shí)的積累了,也不是突擊一下就會(huì)明白的。指針也考得比較細(xì),指針常量、常量指針、二維數(shù)組的指針等 等。還有三個(gè)附加題,考的都是數(shù)據(jù)結(jié)構(gòu)和算法,看第一遍都是似會(huì)非會(huì)的感覺(jué),看來(lái)還是基礎(chǔ)沒(méi)打好啊。一個(gè)是鏈表的合并問(wèn)題,數(shù)據(jù)結(jié)構(gòu)上有現(xiàn)場(chǎng)的例子,不過(guò) 這次要求用遞歸來(lái)做,結(jié)果死活沒(méi)想出來(lái)(請(qǐng)鄙視我吧);還有一個(gè),其實(shí)就是二叉樹(shù)的最廣優(yōu)先搜索,題目沒(méi)說(shuō)用遞歸,但我用遞歸做了(汗一個(gè));最后一個(gè), 四個(gè)人誰(shuí)是小偷,看誰(shuí)說(shuō)了謊,譚浩強(qiáng)的C語(yǔ)言書(shū)里就有。
筆試題做完的感覺(jué)就是,覺(jué)得自己都會(huì),但做著總是不是太順。再加上是在環(huán)D考的,沒(méi)有桌子,只有一個(gè)桌板,我的脖子那個(gè)酸啊。
開(kāi)始等待筆試結(jié)果。剛開(kāi)始我都挺淡定的,直到看到兵馬俑上有人在說(shuō)得到了面試通知,然后階九也說(shuō)她明早面試。我終于蛋腚不起來(lái)了,也有點(diǎn)看不下去書(shū)了。以后真正找工作得注意吧,得耐得住性子。實(shí)習(xí)招聘這個(gè)機(jī)會(huì)磨下我的性子也好。
軟件開(kāi)發(fā)類的面試名單終于出來(lái)了,被安排在第一天下午。畢竟是第一次面,有點(diǎn)緊張,也不知道還剩下的半天時(shí)間該看些什么書(shū)。把錢(qián)能的C++翻了翻,拿著簡(jiǎn)歷去了酒店。
【面試】
一面,挺溫和的一考官。首先便是自我介紹,我就從我本科的項(xiàng)目開(kāi)始說(shuō)起,說(shuō)到現(xiàn)在的項(xiàng)目。面試官說(shuō)他是游戲開(kāi)發(fā)方向的。當(dāng)時(shí)很奇怪,我明明報(bào)的是.net啊。他說(shuō)可以先繼續(xù)這邊的面試,面完了再幫我找個(gè).net的面試官再面一次。
結(jié)果第一個(gè)問(wèn)題就沒(méi)答上來(lái)。Win32窗體應(yīng)用程序和控制臺(tái)應(yīng)用程序之間的區(qū)別。可能是看到我做過(guò)不少win32的項(xiàng)目吧。只是記得侯捷的那本深入淺出 MFC好像提到過(guò),不過(guò)N年沒(méi)看早忘了,只能說(shuō)了個(gè)無(wú)關(guān)緊要的答案?脊僬f(shuō),本質(zhì)的區(qū)別是前者有消息循環(huán),后者沒(méi)有。額。接下來(lái)就開(kāi)始問(wèn)C++里的概念, 還有一些基本的數(shù)據(jù)結(jié)構(gòu),以及STL等。幸好這些都答上來(lái)了,心里終于放心了些,我還不是一個(gè)都不會(huì)。說(shuō)到vector的時(shí)候,問(wèn)什么時(shí)候需要復(fù)制里面的 元素,我說(shuō)比如vector的長(zhǎng)度超出了其容量,因?yàn)榍皫滋靹偪催^(guò),重點(diǎn)看了vector容量與性能的關(guān)系,所以這點(diǎn)記得特別清楚,結(jié)果忘記了最基本的插 入刪除也需要移動(dòng)元素。估計(jì)面試官聽(tīng)得比較郁悶,這娃雜老想著vector爆掉呢。還問(wèn)了個(gè)設(shè)計(jì)模式的問(wèn)題,還好上個(gè)月專門(mén)把這些給惡補(bǔ)了下,給他描述了 一個(gè)觀察者模式的場(chǎng)景,然后他繼續(xù)追問(wèn)我程序應(yīng)該怎么寫(xiě),因?yàn)橹皇亲鲞^(guò)練習(xí),沒(méi)有實(shí)踐過(guò),所以只能說(shuō)忘掉了。
最后面試官說(shuō),我可以推薦你復(fù) 試,但因?yàn)槟銏?bào)的是.net,我可以再安排你面一次,我們了解下你的情況,你也自己權(quán)衡下。當(dāng)時(shí)心里一陣驚喜,雖然有些問(wèn)題沒(méi)答上來(lái),貌似面試官還是比較 滿意吧。不過(guò),他突然問(wèn)了平時(shí)玩什么游戲,有興趣不。因?yàn)槠綍r(shí)幾乎不玩網(wǎng)絡(luò)游戲,只能實(shí)話實(shí)話。又問(wèn),那你平時(shí)玩啥呢,當(dāng)時(shí)也不知道腦袋里哪根筋短路了, 我說(shuō)我玩連連看(暴汗中)。面試官笑了,說(shuō)這個(gè)東西還是需要興趣的。然后就給另一個(gè)面試官打電話,說(shuō)C++基礎(chǔ)還可以,再來(lái)面一下.net。
被帶到第二個(gè)面試官那,額,好年輕,估計(jì)比我大不了多少吧。面試的時(shí)候很明顯沒(méi)有第一個(gè)面試官那么沉穩(wěn),很隨意的感覺(jué)。自我介紹完后,就拿出我筆試的考 卷,開(kāi)始問(wèn)我答錯(cuò)的地方,都是問(wèn)的那幾道附加題。首先就是那個(gè)鏈表合并的遞歸問(wèn)題,問(wèn)我:你這是遞歸嗎?我說(shuō)不是。那你現(xiàn)在寫(xiě)給我看看。當(dāng)時(shí)被鄙視得, 哎,因?yàn)槲疫是寫(xiě)不出來(lái),下來(lái)也沒(méi)看。不過(guò)還好,后面兩個(gè)附加題,又叫我做,都弄出來(lái)了。沒(méi)想到又出了一道算法的,1億個(gè)數(shù)從中選出第十大的,你怎么做。 那一剎那我終于知道我的弱項(xiàng)了,那就是算法還有數(shù)據(jù)結(jié)構(gòu)。我說(shuō)可以把這1億個(gè)數(shù)分成N部分,選出每一部分的最大者,把這些最大者放一塊,再接著分成N分, 再找每一部分的最大者……不過(guò),好像他對(duì)這個(gè)方法并不滿意,也沒(méi)繼續(xù)問(wèn),就開(kāi)始看我的簡(jiǎn)歷,突然說(shuō):你是報(bào)的.net啊,我給你找個(gè).net的面試官。我徹底無(wú)語(yǔ)了。
一面第三次,我做了第三次自我介紹。然后便開(kāi)始問(wèn)問(wèn)題。不過(guò)沒(méi)有太多技術(shù)方面的東西,只是隨便說(shuō)了說(shuō).net最基本的東西,比如現(xiàn)在.net到多少版本 了。又問(wèn)到了xml的一些應(yīng)用方面。因?yàn)楹?jiǎn)歷上寫(xiě)我拿到了RHCE證書(shū),又問(wèn)了些linux下Apache服務(wù)器配置方面,可能是因?yàn)闆](méi)有一個(gè)完整 的.net項(xiàng)目經(jīng)驗(yàn),只是因?yàn)榕d趣報(bào)了.net方向吧,應(yīng)該是被.net組的人鄙視了。然后說(shuō)他們?cè)贆M向評(píng)測(cè)下,讓我等通知。
因?yàn)榈谝淮蚊嫖业哪莻(gè)考官說(shuō)推薦我復(fù)試,所以心里還是蠻放心。至少第一次面表現(xiàn)還可以吧。
晚上接到電話,叫我第二天一大早過(guò)去面試。也是不知道該看些什么,因?yàn)槲矣X(jué)得真的要靠平時(shí)的積累;貞浟讼庐(dāng)天的情況,第二天6點(diǎn)就起了,把那個(gè)鏈表合并的遞歸方法看了下,又想了一下可能會(huì)問(wèn)我的問(wèn)題。其實(shí)面試安排得很緊湊,沒(méi)多少時(shí)間來(lái)準(zhǔn)備。
去了電話通知的那個(gè)房間,又是個(gè)很年輕的GG,難道這就是二面么。一開(kāi)始又是自我介紹,昨天介紹了3次,輕車熟路了,于是鼓足精神又來(lái)了次。面 試的GG又拿出我的筆試卷子,說(shuō)我還考得可以。天咧,67分還算可以啊,也許這個(gè)GG在安慰我吧。同樣又是叫我做一道我做錯(cuò)的題,不過(guò),不是我一道早起來(lái) 看的那道,我心想完了,又栽在筆試題上了。是一道填空題,有關(guān)位操作的,考官還一直在那開(kāi)導(dǎo)我,結(jié)果還是沒(méi)做出,再一次開(kāi)門(mén)掛彩。
然后便叫 我寫(xiě)linux里面用gcc編譯鏈接C程序的命令,還好平時(shí)一直在linux下用命令行,這關(guān)很輕松地過(guò)了?脊俳又钊雴(wèn)Makefile的作用,記得 不是太清楚了,但還是記得一些最基本的,比如依賴性檢查啊啥的。接下來(lái)又是STL的問(wèn)題,看來(lái)騰訊很喜歡C++里面的這個(gè)庫(kù)哈,有了昨天的經(jīng)驗(yàn),這個(gè)問(wèn)題 回答得很輕松,也比較全面,第一點(diǎn)第二點(diǎn)也比較有條理,貌似考官比較滿意,因?yàn)槲以诨卮鸬臅r(shí)候提到了一個(gè)二分法查找,便追問(wèn)我,在list里面能不能使用 二分法呢。我想了想說(shuō),如果真的要用代碼來(lái)實(shí)現(xiàn)的話,還是可以辦到的。用一個(gè)指針指向head,一個(gè)指向tail,tail指針從頭跑到尾的時(shí)候,可以得 到list的size,說(shuō)到這里他打斷我說(shuō),你都用一個(gè)指針把鏈表跑了個(gè)遍,你還需要二分查找么?考官開(kāi)始笑。額,但這個(gè)時(shí)候氣氛很明顯的緩和了很多。雖 然回答地有點(diǎn)荒唐,不過(guò)好像沒(méi)有想象的那么糟糕吧。最后又問(wèn)了我TCP/IP里的東西,包括七層模型,IP與TCP、UDP的區(qū)別之類的。因?yàn)橹皽?zhǔn)備過(guò) 思科的考試,筆試之前也看過(guò),所以這一關(guān)也過(guò)了。然后就開(kāi)始跟我聊別的,比如暑假怎么安排,導(dǎo)師同不同意我去實(shí)習(xí)之類的,平時(shí)上不上什么技術(shù)博客,都看了 什么技術(shù)方面的書(shū)等等。覺(jué)得今天這位面試官對(duì)我還是挺滿意的,感到我機(jī)會(huì)還是蠻大。但那個(gè)時(shí)候,我依舊不知道這一面是不是復(fù)試面。最后他開(kāi)始填表,讓我等 等,說(shuō)是還有一面。中途我問(wèn)他接下來(lái)的是hr面嗎?被告之不是,還是技術(shù)。我的天啊。
又是一面。這位面試官看起來(lái)好資深的樣子,也是這就是技術(shù)boss吧,似乎還不是大陸的。還是自我介紹。好吧,我兩天重復(fù)了5次了。介紹完了開(kāi) 始聊我做的項(xiàng)目。各位看官,我當(dāng)時(shí)一直覺(jué)得聊天的這段蠻好,但后來(lái)想想,也許我就是在這一段被徹底鄙視掉,無(wú)緣這次實(shí)習(xí)的。首先,我說(shuō)我在項(xiàng)目里用到了全 局變量,鄙視點(diǎn)之一。第二點(diǎn),在回答為什么使用多線程編程的時(shí)候,我把一個(gè)概念徹底搞混了,就是信號(hào)量還有互斥對(duì)象,因?yàn)闆](méi)有復(fù)習(xí)操作系統(tǒng),把一個(gè)進(jìn)程里 的概念給弄到線程里了,感覺(jué)就是我基礎(chǔ)一點(diǎn)也不扎實(shí)。接下來(lái)叫我寫(xiě)個(gè)有關(guān)鏈表的程序的時(shí)候,沒(méi)有delete掉內(nèi)存。對(duì)我編的那個(gè)程序,這位面試官一直在 挑刺,但也看出來(lái)他的嚴(yán)謹(jǐn),從一個(gè)10來(lái)行的程序里看到了很多東西,包括命名是否規(guī)范,思路是否清楚,代碼是否簡(jiǎn)潔。最后一個(gè)題,被鄙視得無(wú)與倫比,N只 球隊(duì)、單循環(huán)賽、M只出線,問(wèn)至少積多少分,才有出線的可能性。一張紙一支筆,半個(gè)多小時(shí),結(jié)果是沒(méi)有結(jié)果。最后的最后,跟面試官握手,然后他開(kāi)門(mén)送我出 去。
后來(lái)我找了之前那我面試我的GG,他幫我問(wèn)了下結(jié)果,答復(fù)我的是,不能馬上確定要不要我,讓我等短信吧。等了兩天,被鄙視了。
【總結(jié)】
1、騰訊對(duì)基礎(chǔ)看得非常重要,項(xiàng)目再多基礎(chǔ)不扎實(shí)的話,也不會(huì)要你。基礎(chǔ)一定要打牢,數(shù)據(jù)結(jié)構(gòu)、算法、操作系統(tǒng)、C/C++以及面向?qū)ο蟮幕镜臇|西。
2、面試,雖然臨陣磨槍也有點(diǎn)用,但很多東西是要靠平時(shí)積累的,面試的時(shí)候,不知道就是不知道,不要裝懂,對(duì)自己不熟悉的東西要盡量回避,不要往上面繞,說(shuō)不定就被追問(wèn)下去了,揚(yáng)長(zhǎng)避短吧。
3、對(duì)于面了N次的情況,不管上一次結(jié)果如果,都要把當(dāng)前這次當(dāng)成是新的開(kāi)始。千萬(wàn)不能二而衰,三而竭,我第一天被面了三次的時(shí)候,精神面貌很明顯沒(méi)有前面那么好了。
4、平時(shí)看書(shū)記得做學(xué)習(xí)筆記,做項(xiàng)目時(shí),做完了多想想,不要僅僅為了實(shí)現(xiàn)功能。
5、心態(tài)上,不論周圍怎樣一定要淡定,耐住性子。
最后,向前沖吧。Cheer up!