又一次由一個(gè)小小的隨機(jī)事件驅(qū)動(dòng),最終我決定來哈爾濱試一下。這一試不要緊,改變了我對(duì)于騰訊的成見,改變了我對(duì)于許多事物的思考角度及態(tài)度。
9月23日上午啟程,下午4點(diǎn)多抵達(dá)哈爾濱。在火車站打聽哈工大在哪兒,結(jié)果得到兩種截然不同的回答,只好自己打開手機(jī)詢問百度知道,在哈站兜了一個(gè)大圈,終于找到了去哈工大的公交。
5點(diǎn)多抵達(dá)HIT,沒有想象中的宏偉,也許濃縮的就是精華吧。計(jì)算機(jī)學(xué)院偏居一角,著實(shí)顯得孤零零的,居然還沒我們系的樓顯得氣派、現(xiàn)代和有科技感時(shí)尚感(也許我們的面子工程做得比較到位吧,呵呵)。一群老師正在抬一個(gè)名人的雕像,向幾個(gè)同學(xué)打聽了下騰訊筆試的情況,結(jié)果都說只知道他們之前在這兒開過宣講會(huì),不曉得筆試這回事。
5點(diǎn)半,見到了剛下完課的龍哥,幾年沒見顯得格外得親切。怎么說呢,我和龍哥的交情也很特別,他是我干爹干娘的帶了三年的"嫡系"學(xué)生,又是我高中三年同班同學(xué),樣子沒變但顯得更帥了一些(后來竟被旅店老板當(dāng)成了韓國人,羨慕嫉妒愛與恨ing~)。在哈工大食堂請(qǐng)我吃了一頓飯之后幫我找旅館安頓了下來,又不顧晚上有選修課怕我找不回去帶我去在旅館和正心樓之間走了兩圈。
9月24日上午,開考前一個(gè)小時(shí)竟然不知道考試地點(diǎn)的確切位置,因?yàn)?3日下午收到的騰訊筆試通知短信只說了"哈爾濱站",讓去網(wǎng)上查詢詳情。我聯(lián)系了面試官Steven,他說工大和工程大概各有5個(gè)考場,具體幫我查查,我真不好意思麻煩他,就自己趕緊在工大外面找了個(gè)網(wǎng)吧。
9點(diǎn)10分,在動(dòng)用了一切人肉+狗肉的搜索手段之后,終于知道自己被分在了哈工程的一個(gè)考場,趕緊決定趕過去。出門打的也費(fèi)了番周折,第一個(gè)的哥竟然不知道哈工程在哪兒,無語ing。
司機(jī)很好心,車開進(jìn)了哈工程并且一路打聽21B樓在哪兒,又是兜了一個(gè)圈之后終于找到。樓前的奧列霍夫廣場又很多人在那兒開著大喇叭宣講,一派熱鬧。哪知我的考場由地下改為了二樓,又是一番周折,10點(diǎn)3分,剛開始發(fā)試卷,恰好趕到。
答題時(shí)很鬧心,外面那幫宣講的,伴著重口味的音樂吶喊個(gè)不停。也許有些緊張和煩躁,最后一道附加題竟然只寫在了試卷而非答題卡上(雖然不計(jì)入總分只作為參考,但畢竟浪費(fèi)了時(shí)間)。12點(diǎn)交完卷來到廣場卻發(fā)現(xiàn)是一些科技協(xié)會(huì)的納新。有瓦良格號(hào)航母模型(艦載機(jī)除了一架Su-33竟然還有一架前掠翼的Su-47,這同學(xué)的想象力也真夠強(qiáng)的),有我在博創(chuàng)杯比賽現(xiàn)場看到了那種不知道是做間諜用的還是做自殺式魚雷用的自游的"魚",還有歷年從哈軍工-哈船舶-哈工程出來的兩院院士的大幅照片,……圍成了一個(gè)小迷宮。
中午去哈工程校園內(nèi)一個(gè)餐館吃了飯,店主一家是在韓國待了很多年的朝鮮族人,大部分食物都是正宗的韓國風(fēng)味。我點(diǎn)了泥鰍湯,沒想到他們的做法是剔除了所有的骨頭,當(dāng)然肉都碎到了湯里,當(dāng)然也去除了苦味,很好吃也很辣。店主女兒長得也很漂亮,一笑起來很迷人。
飯后從哈工程門口打的去飛瀧酒店準(zhǔn)備面試,車剛開動(dòng),的哥--不,的叔拍了下我的大腿,“你十幾?”這時(shí)我突然意識(shí)到今天我竟然穿了運(yùn)動(dòng)服去面試,看起來活像高中生(這也許就是著名IT公司令人向往但地方,Google、Facebook等公司的創(chuàng)始人都希望他們的公司像大學(xué)一樣充滿自由和創(chuàng)造力),我說明了此行但目的,他說他很羨慕我們這個(gè)年齡段的人。
這次騰訊的筆試題目不難,很多題目頗有考研題目和軟件設(shè)計(jì)師題目的風(fēng)格。但結(jié)果頗為意外:我自己感覺良好的選擇題得分卻不及平均水平;而自己感覺發(fā)揮較差的大題得分卻在前幾名,筆試總成績也就一般般。但因?yàn)槭莾?nèi)推的緣故(感謝佳彤姐姐和Boss -- Chris)所以能夠先期得到批閱和首先得到面試機(jī)會(huì)。
本來通知是兩點(diǎn)半面試的,但是出了點(diǎn)差錯(cuò),因?yàn)镾teven沒找著我的試卷,所以只得統(tǒng)一改,這樣我就在酒店大廳等待。當(dāng)天還有海信、海格等公司的面試,趁機(jī)會(huì)也打聽了些情況,認(rèn)識(shí)了一些哈工業(yè)、哈理工等學(xué)校的應(yīng)聘者,他們普遍羨慕知名IT公司的工資和工作環(huán)境的自由。還認(rèn)識(shí)到了哈爾濱人和沈陽人的差別:前者喜歡到外地闖蕩;后者對(duì)外地人心存畏懼一心想窩在東北。
下午五點(diǎn)多,Steven通知我一面開始,他先拿了我的卷子說筆試考得一般般,看看面試怎么樣,并問我如果通過了一面下面有何打算,我支支唔唔也沒有明確回答出來。他拿出紙和筆想了想就神速寫下兩道題目,要求編程做出,寫出代碼。我先做第二道,因?yàn)檫@道高中就做過,不過很多年也不太熟悉了,我先用一種"科學(xué)家用的"偽代碼描述(有點(diǎn)故弄玄虛,但他看也沒看),之后用C++實(shí)現(xiàn),用了不到7分鐘。接下來做第一道,確實(shí)有難度,這次我沒打算把具體代碼寫出,就直接寫算法思路,然后一部分一部分地優(yōu)化,給出了兩種方案,漢字描述寫了整整一頁紙,哪知他掃了一眼后說"我讓你寫代碼,不是算法描述,怎么怎么做誰不知道啊,關(guān)鍵是代碼實(shí)現(xiàn)",看來取巧不成,只得硬著頭皮寫……
從堆排序到基數(shù)排序到數(shù)字特征,從STL的sort到vector(mainshi.cnrencai.com),能用的都用上了,許多東西寫了又刪去,因?yàn)檎业搅艘环N更簡潔高效的實(shí)現(xiàn)方式……就這樣過去了半個(gè)多小時(shí)。他看了代碼第一句就說,"你假設(shè)數(shù)據(jù)都在內(nèi)存中了,可這么大數(shù)據(jù)在內(nèi)存中能放下嗎?合適嗎?考慮內(nèi)外存的交換了沒?" 我先是傻了眼,然后靈機(jī)一動(dòng)說,"一億零一萬個(gè)整數(shù)也就是400多兆,現(xiàn)在的機(jī)器基本都是4G,十分之一的空間放這個(gè)也不足為過,況且最大分配連續(xù)空間是可調(diào)的。但說實(shí)話,如果考慮內(nèi)外存的交換的話需要?dú)w并外排序,我對(duì)于這個(gè)只知道大致原理,實(shí)現(xiàn)不太熟悉",(呵呵,他設(shè)計(jì)的數(shù)據(jù)量還不足夠大,救了我一命,估計(jì)后面面試的人就沒這么幸運(yùn)了) 然后他繼續(xù)看代碼,先是點(diǎn)了點(diǎn)頭然后又皺了眉頭,我在旁邊不停地解釋我算法的思想,還有一些特殊的實(shí)現(xiàn)細(xì)節(jié)比如異或交換兩數(shù),而且尤其強(qiáng)調(diào)我算法的O(n)的線性復(fù)雜度。不一會(huì)兒,他指著我的代碼,點(diǎn)評(píng)“后面這些有必要再放在一個(gè)循環(huán)中嗎?不能和前面的合并嗎?邊統(tǒng)計(jì)邊排不行嗎?”原來這個(gè)東西最優(yōu)的算法只需要過一遍就行了,而我的算法雖然達(dá)到了O(n)的復(fù)雜度但卻掃了三趟。
他最后給出了評(píng)價(jià),40分鐘,扣掉你寫算法描述浪費(fèi)的十幾分鐘,半個(gè)小時(shí)的時(shí)間完成了兩題,雖然第一道題有一點(diǎn)問題但畢竟達(dá)到了最優(yōu)的復(fù)雜度,基本方法也就是那個(gè)樣子,編程功底比較好,按照以往經(jīng)驗(yàn)應(yīng)該屬于上等。接下來他又問了幾個(gè)關(guān)于TCP/IP、網(wǎng)絡(luò)通信、C++的問題,我答得好壞參半。
他指了指桌上的試卷,"這是筆試較高的同學(xué),17個(gè),都是本科生",又指了指床上的一摞試卷,"這是淘汰的,很多研究生也在里面。我感覺本科生答這些題目更有優(yōu)勢,研究生項(xiàng)目做多了,基礎(chǔ)的都忘了"。又嘀咕了一句,大概是前面的選擇題我怎么能做得和研究生一樣差。他又說分析了下我的試卷,感覺我的不足在Linux、數(shù)據(jù)庫、C++方面(汗!這些都是以往我認(rèn)為的強(qiáng)項(xiàng)啊……),數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)還是比較好的,能否有機(jī)會(huì)進(jìn)入下一輪取決于這17個(gè)人里有多少面試表現(xiàn)比你差,不出大的意外的話應(yīng)該有機(jī)會(huì)。還建議我火車票不要改簽了,因?yàn)橄旅娴拿嬖嚬?7號(hào)才會(huì)來。
這次哈爾濱之行,讓我看到了騰訊員工行動(dòng)與思維的敏捷與睿智,看到了我自認(rèn)為的強(qiáng)項(xiàng)竟然是如此的weak。同時(shí)也再次驗(yàn)證了這么多年考試的一個(gè)事實(shí):自己感覺考得好的一般很差;自己感覺發(fā)揮得差的卻未必差。