個人騰訊技術面試經歷(3)

  9月19號下午,騰訊遊戲的hr就打電話過來約定好下週一下午去深圳面試了。面試者的往返交通、住宿費用所有能夠報銷,不由感嘆大公司果真是有錢啊!
  其實在投簡歷以前沒想太多,但在過了兩輪電面後,終於開始重視起來,進騰訊的機會很大了!
  整整週六日兩天時間,都在面試作準備。剛開始擔憂面試是否會考察計算機原理,彙編,計算機網絡,數據庫方面的東西,由於這些基本忘光了。最後只是簡單回顧了一下,把準備重心放在簡歷上提到的點。仍是看專業能力說話!
  因而把LeetCode以前刷過的題過了一遍;數據結構過了一遍,專門看了July幾篇經典文章:海量數據處理、各類b樹和紅黑樹;把作過的幾個項目的底層又研究了一遍,重看了下pureMVC,robotlegs框架;學習prtocol buffer;連搭和諧號回深圳都拿着macbook重溫23個設計模式的思想和實現例子。奮鬥了兩天,一度有回到高考的感受,不由感嘆考試永遠是逼人學習的最有效方式啊!java

 

—————————————————————————————————————————python


  事實證實,這兩天作的準備用處仍是很大的。整個下午連續進行了4面:其中3輪技術面。c++

  騰訊遊戲不在騰訊大廈總部,而是在附近的科興科學園。2點多提早到騰訊,來接了個人人是一面面試官,簡單聊了下,他作了3,4年as3,3年前來騰訊,而後居然也是從我如今的公司跳過去的(3,4年前仍是個初創小公司),淚牛滿面,猿糞啊!聊着過了一會,3面面試官就過來了。面試

 

3面:
  這是整輪面試下來最有壓力的一面了,面試官看起來30歲出頭,坐下來後很少寒暄,一聲不響拿着個人簡歷翻呀翻呀翻,彷彿我簡歷上沒有一處引發他的興趣,頓時內心七上八下...
  沉默許久以後,他終於問了我本身寫的as3框架裏面包括了些什麼東西,因爲以前心情被攪得挺忐忑,介紹這部分時顯得不是頗有底氣,簡單介紹了框架裏ui,網絡傳輸方面的東西,就被打斷了,問了我協議數據格式是怎麼實現的。回答說是自定義格式寫進bytearray的。而後略有「不屑」地問我爲什麼不用protocol buffers?(看來他們必定是長期用protocol buffers!)
還好上輪面試後就去補了相關的東西,說了公司項目一開始作就沒有用protocol buffers;而protocal buffers只支持java,c++,python,公司項目後端是erlang實現的,技術受限了。(再後來才瞭解到,如今開源社區已經支持生成as三、erlang了)
  接着又讓我講了arpg的戰鬥是怎麼實現的,沒作過arpg的核心戰鬥,轉而講了我比較瞭解的播報制戰鬥,講了個大概,面試官貌似聽得不太感興趣,心情複雜。。
  整個面試過程到這不順利,感受面試官沒承認我。不事後面問到跑酷遊戲設計的問題答得不錯:數據庫

  1、玩過每天酷跑吧,說說遊戲地圖滾動是怎麼作的?
  跑酷類遊戲,實際沒作過,但瞭解基本原理。就講了地圖是分塊處理的,全部地圖塊都向左邊同速移動,移出屏幕左邊的部分圖片會被即時清理,右邊則設置好圖片從屏幕右邊移入,從而製造地圖滾動的效果。編程

  2、而後又問了地圖障礙是如何生成的?
  這也是跑酷類的核心技術點。一個跑酷遊戲可能有多種不一樣地形:平地,懸崖,立柱等等,徹底隨機地去生成跑酷路徑是有問題的:
  1.可能會出現不合理的路徑:例如連續生成了10格懸崖地形,這麼大的一個空隙玩家是不可能跳過去的;
  2.跑酷遊戲是技巧性遊戲,玩家經過訓練提升本身技巧獲取更高分數,從而產生快感,路徑生成的過於雜亂無章,就無技巧可言,沒有可玩性;
  3.徹底隨機生成地形,就沒法把控難度。後端

  總之,要作到既保證路徑隨機性,又保證路徑可調控。
  解決思路是,不作成每一個格子都隨機生成,而是地圖樣式隨機生成,地圖樣式是指一段預設計好的路徑樣式;好比地圖樣式1是連續3格距離懸崖,4格以後有一格立柱,其他爲平地;地圖樣式2則是有兩段懸崖...隨機生成一連串的地圖樣式,一局遊戲的路徑就生成了。在此爲基礎,還能夠再爲不一樣樣式的生成機率作不一樣權重,樣式序列預設...設計模式

  由於在此前有看過跑酷小遊戲的教程,半加入本身的理解跟面試官分析了。聽完答案,面試官就沒再挑毛病了,面試也順利結束。網絡

 

4面:
  4面面試官是一中年男子,年紀估計近40了,人很nice了,過來就主動跟我握手,面試過程當中知道他是手遊項目的技術總監。面試很輕鬆,可能跟他不是直接作as3開發的緣故,側重問了我手遊項目的經驗,問了對c++的瞭解,讓我講出c++跟as3的區別,因而舉函數調用爲例,講了c++的傳值,傳引用,傳指針三種傳參方式;而在as3中則只有傳值,傳引用。講了stl容器,而後問了紅黑樹,因而詳細講了b,b-,b+,紅黑樹的定義、區別。面試官仍是挺意外我能講出這麼多,最後試探性地問我stl那種數據結構用了紅黑樹,亂蒙回答說map,蒙對了,哈哈!數據結構

 

5面:
  從4面開始,與其說是在面試,不如說實在作技術交流了。到這個階段,面試者的技術能力已經考覈完了,基本上被刷的概率已經很低,但也曾聽到過被刷的例子,人沒有自信,沒有想法,對技術不敏感等等非技術因素,仍是有可能讓你被刷掉的。
  5面是工做室的技術總監,感受對各類技術都挺了解,對行業動態也很是熟悉。聊了許多,從各種遊戲認識,到對市面遊戲的關注見解,主要聊了墨麟的風雲無雙的成功,除了得源ip優點,技術上也很強,用了stage3d,不少資源採用動態加載、地圖加載流暢、戰鬥效果華麗,粒子特效很玄;聊了紙娃娃系統,骨骼動畫,這點上他很感興趣,覺得我接觸過骨骼動畫,其實我只知道刀塔傳奇裏用了骨骼動畫,本來並不爲人熟知,隨着刀塔傳奇的成功,帶火了骨骼動畫。我在年前也參與過一款手遊開發,就是想山寨刀塔傳奇,但數值、技術都不如原做,沒有技術作骨骼動畫,很搓逼地用幀動畫作人物戰鬥。而後這個項目作了不久就被斃掉了。

  後面聊開了,總監直接讓我用白板給他講技術,因而邊畫邊講,從介紹本身的as3框架類庫,講到mvc框架,比較了pureMVC,robotlegs的優劣;聊網絡協議格式定義,講了protocol buffers的大概用法;講對設計模式的理解,經典應用;到最後講解本身目前正在作的box2d物理引擎遊戲,總監很有興趣的聽着,時不時問些細節,結果越聊越high。
  這是一段蠻開心蠻難忘的過程,一些學的時候以爲很難很複雜的技術,消化理解了以後,用淺顯的語言去講解給別人聽,這種感受蠻爽的。深刻淺出,不過如此吧!~

 

6面:
  最後一面是工做室總監面,終於不談技術了。簡單談了薪酬待遇,跳槽初衷,將來職業規劃,對他提到了一點頗有印象:作出成功的項目比去大公司的意義更大。
  這點是對的,但我認爲只有讓本身的實力更強、份量更重了,纔有更多機會選擇去作成功的項目。須要看實力、人脈和運氣。而前二者都須要積累。因此選擇去大公司的意義在於此,不只爲了更好的薪酬待遇,也爲了認識更優秀的行業人才,提高水平。


  最後一面面試官送我出了騰訊大廈,已經6點多了,感受終於輕鬆了。事實上,從開始準備面試這幾天來,就處於亢奮緊張的狀態,一心想的都是如何能準備得更充分些。

  幾輪面試下來,對4,5面面試官的印象很深,一樣都大氣穩重,有不少技術沉澱,我正是期待的將來職業狀態。貌似看到了個人方向,之後成爲技術總監,即便年長了,退居編程一線,仍是能夠不斷學習關注技術,在宏觀上把控項目技術架構,技術選型。挺好的。

 

——————————————————————————————————————————

  兩天以後,hr打電話過來,肯定給offer,一切終於塵埃落定。一年前我與騰訊擦肩而過,今天終於牽手成功!

  固然,這不是終點,只是新的起點,目標要更長遠,仍是要不斷沉澱本身,加油!~

相關文章
相關標籤/搜索