明明在北郵人上找了學(xué)姐內(nèi)推,也收到郵件讓我完善簡(jiǎn)歷了,但后來(lái)還是發(fā)短信讓我參加筆試,奇怪了,不管了,該走多少程序就走多少吧,這樣的大公司也是抱著能走多遠(yuǎn)走多遠(yuǎn)的心態(tài)。
模擬筆試
收到短信的第二天就是模擬筆試,安排的還是很緊的,最近實(shí)在是忙成了狗,多線程工作令我有些過(guò)載,不過(guò)還好模擬筆試只是一小時(shí),終于還是抽出時(shí)間。
前半個(gè)小時(shí),15道選擇題,其中掌握不熟練的有C++的語(yǔ)法題,指針題(free,delete的用法),計(jì)算設(shè)備的使用效率(多個(gè)任務(wù),單CPU,雙設(shè)備,可搶占),二分查找效率,時(shí)間復(fù)雜度的計(jì)算,網(wǎng)絡(luò)層協(xié)議種類(lèi)(傳輸層:TCP和UDP,網(wǎng)絡(luò)層:IP,ARP,RARP,ICMP,IGMP)等等。
后半個(gè)小時(shí),3道編程題,這時(shí)間對(duì)我來(lái)講有些緊張,第一道生成N階格雷碼(去年在leetcode似乎做過(guò)),第二道求數(shù)組中出現(xiàn)次數(shù)超過(guò)數(shù)組元素個(gè)數(shù)一半的數(shù),第三道是大數(shù)乘法(大二程設(shè)做過(guò),大三匯編也寫(xiě)過(guò)一次,可是這次還是思路不清,加上時(shí)間緊迫,最后沒(méi)有寫(xiě)完)。補(bǔ)充一句,騰訊的在線編程是可以支持Python的。
筆試
騰訊的正式筆試居然在清明放假的時(shí)候,也是夠拼的,不定項(xiàng)選擇沒(méi)有一題我敢保證自己是對(duì)的,真是心塞塞啊,然后四道大題,第一題考sql寫(xiě)法,sql我只會(huì)簡(jiǎn)單的增刪改查,每次還是查資料才寫(xiě)的出來(lái),結(jié)果考個(gè)高級(jí)點(diǎn)的卡了我好久,最后也不一定寫(xiě)對(duì);然后是編程題,問(wèn)字符串刪除任意字符后得到的保持順序的最長(zhǎng)回文字符串長(zhǎng)度,回溯法寫(xiě)的蛋疼(后來(lái)看到討論區(qū)做法很巧妙啊,先對(duì)字符串求逆,然后求最長(zhǎng)公共子序列就好了),第二題純模擬倒是寫(xiě)出來(lái)了,看來(lái)算法這塊我還是欠缺的很,而且回溯之前一直用Python寫(xiě),如果用C++可能又是另一種寫(xiě)法了,這個(gè)之后也要繼續(xù)學(xué)習(xí);最后問(wèn)答題談?wù)剆tack和heap的區(qū)別,也是隨便扯了幾條而已,總的來(lái)說(shuō)這次筆試是不開(kāi)心的,而且其中幾題還偷偷用手機(jī)查了下,輸了考試還輸了人,不開(kāi)心。
筆試結(jié)束后幾天,突然收到短信,說(shuō)更新了PC客戶端的崗位要求,建議我轉(zhuǎn)后臺(tái)開(kāi)發(fā),可能是PC客戶端投的人太多了,于是我就轉(zhuǎn)了后臺(tái)開(kāi)發(fā)方向。
一面
騰訊在蘇州街海潤(rùn)艾麗華酒店租了一層進(jìn)行面試,挺近的。面試現(xiàn)場(chǎng)如戰(zhàn)場(chǎng),超級(jí)多人,超級(jí)多面試官,等著領(lǐng)號(hào),像科目二考試一樣,也接受霸面簡(jiǎn)歷。
一面考題總結(jié):
自我介紹,感覺(jué)得總結(jié)一個(gè)套路啊;
項(xiàng)目,還是講的加密流識(shí)別,感覺(jué)不合今天這個(gè)面試官胃口;
網(wǎng)絡(luò),TCP三次握手;
數(shù)據(jù)庫(kù),MySQL存儲(chǔ)引擎,Innodb的索引;
操作系統(tǒng),線程安全,poll,select,epoll的區(qū)別;
數(shù)據(jù)結(jié)構(gòu),紅黑樹(shù),哎,基本不懂,平衡搜索二叉樹(shù)還稍微懂點(diǎn);
日志分析,日志包含兩項(xiàng),第一項(xiàng)是IP,第二項(xiàng)是時(shí)間,日志有5億條,IP去重后也有1億條,而內(nèi)存只有100M,要講IP按出現(xiàn)次數(shù)從大到小排序,怎么辦,往外部排序去考慮了,但還是沒(méi)答出來(lái)面試官想要的;
手寫(xiě)C++程序,int count(const char * page),統(tǒng)計(jì)page字符串中"tencent"的出現(xiàn)次數(shù),字符串由單詞組成,單詞由空格分開(kāi)(可能有多個(gè)空格),這題不難,但要求10分鐘內(nèi)用C++寫(xiě)完,0bug算過(guò);
什么時(shí)候能來(lái),實(shí)習(xí)能持續(xù)多久,意向北京還是其他;
面試結(jié)束從蘇州街走回學(xué)校,路過(guò)人大西門(mén),吃了碗米線,路過(guò)城鄉(xiāng)倉(cāng)儲(chǔ)超市,買(mǎi)了瓶匯源果汁,促銷(xiāo),才五毛錢(qián)。
二面
一面后一天接到二面通知,中間相隔一天,二面直接騎自行車(chē)去的,大概10分鐘就到了,非常快。預(yù)約10點(diǎn)半,大概10點(diǎn)15就叫到我的號(hào)了,那么我就進(jìn)去了,又是一個(gè)老者,我現(xiàn)在對(duì)老面試官有點(diǎn)怵。
面試官先看了我簡(jiǎn)歷大概2分鐘,我以為二面項(xiàng)目為主呢,結(jié)果大概實(shí)在是對(duì)我的項(xiàng)目不感興趣啊,就說(shuō)咱們問(wèn)點(diǎn)基礎(chǔ)吧,總結(jié)如下:
C++,多態(tài)怎么實(shí)現(xiàn),const * 和 * const的區(qū)別,STL中如何實(shí)現(xiàn)枚舉(應(yīng)該談迭代器的嗎),vector和list的區(qū)別,list是如何枚舉的,函數(shù)模板如何定義;
Linux,把文件夾打包成文件怎么做,讓一個(gè)程序定時(shí)執(zhí)行怎么做(Linux真的不熟悉,其實(shí)這些問(wèn)題很基礎(chǔ),但是我答的不好),socket編程;
算法,有1000萬(wàn)個(gè)自然數(shù),大小為1~100 0000,是亂序的,怎么以最快的速度排成有序(我正要從最基礎(chǔ)的假設(shè)內(nèi)存夠大說(shuō)起,可以用哈希map,結(jié)果直接被打斷,告知面試結(jié)束);
知識(shí)獲取,平常看了哪些書(shū)(這個(gè)問(wèn)題很常問(wèn)啊,我應(yīng)該攢一波高逼格書(shū)單應(yīng)對(duì));
總的來(lái)說(shuō),騰訊二面極其糟糕,2/3的題目回答不好,甚至有些答不出來(lái),暴露了自己Linux和大數(shù)據(jù)算法面前的薄弱,急需加強(qiáng)。回來(lái)查狀態(tài),居然是處于HR面試環(huán)節(jié),難道過(guò)了二面,如果真過(guò)了絕壁是意涵團(tuán)起作用。
HR面
二面結(jié)束心灰意冷,結(jié)果中午吃飯回實(shí)驗(yàn)室就收到了下午兩點(diǎn)半HR面的信息,流程效率有點(diǎn)高,但是也就是說(shuō)我下午還得跑一趟啊,哎,沒(méi)事,往好的方面想,今天就能把騰訊面試給告一段落,多好。
到點(diǎn)按時(shí)面試,HR是SNG的,問(wèn)我如果崗位是騰訊云的后臺(tái)開(kāi)發(fā)有沒(méi)有問(wèn)題,其實(shí)我選OMG是因?yàn)槲乙詾橹挥蠴MG在北京呢,沒(méi)想到SNG也有,那當(dāng)然是更好啦。基本上HR面就是聊一聊教育背景、以前的實(shí)習(xí)經(jīng)歷、實(shí)習(xí)對(duì)自己而言最大的收獲、崗位符不符合自己需求、什么時(shí)候能來(lái)、能來(lái)多久這樣的問(wèn)題,但是HR最后一般都會(huì)問(wèn)你還有什么問(wèn)題問(wèn)我的嗎,這個(gè)時(shí)候我往往提不出可以加分的問(wèn)題啊,好糾結(jié),是時(shí)候冥思苦想一個(gè)問(wèn)題備用著了,很關(guān)鍵。
至此,騰訊校招實(shí)習(xí)面試流程走完了,回去等消息就好啦。
專(zhuān)家加試
本以為HR面結(jié)束流程就結(jié)束了,沒(méi)想到還殺出個(gè)專(zhuān)家面,大概還是自己不夠優(yōu)秀吧,又備胎了。專(zhuān)家面主要還是一些基礎(chǔ)問(wèn)題,倒是也能答上來(lái)一些,或許是沒(méi)有項(xiàng)目讓面試官感興趣吧,面完感覺(jué)也不好,面試官說(shuō)缺乏大型項(xiàng)目經(jīng)驗(yàn),maybe還是跪了,但是問(wèn)題還是要總結(jié)的:
C++:純虛函數(shù)和虛函數(shù)的區(qū)別,重載和多態(tài)的區(qū)別,STL中map的實(shí)現(xiàn)方式;
操作系統(tǒng):堆和棧的區(qū)別,多進(jìn)程和多線程的實(shí)現(xiàn),進(jìn)程間、線程間的通信方式,信號(hào)量和共享內(nèi)存的區(qū)別,gdb中找到文件某一行的命令;
計(jì)算機(jī)網(wǎng)絡(luò):TCP的三次握手;
算法:常用的排序算法有哪些,堆排序的時(shí)間復(fù)雜度和推導(dǎo),斐波那契走樓梯,棋盤(pán)從左上角走到右下角的走法;
一些知識(shí)點(diǎn)還是知道的,但是電話上的表達(dá)我很難非常清晰地講清楚,再一個(gè)短板就是Linux不熟悉和大型項(xiàng)目的缺乏,花點(diǎn)時(shí)間把Linux一些常用命令看看大概還可以補(bǔ)上,大型項(xiàng)目經(jīng)歷我真是沒(méi)辦法了喲。