關于找工作
回家幾天了,依然延續著在學校豬一般的日子。做點改變,寫寫找工作的經歷,主要是遇到的一些筆試面試題,想起多少算多少,有些要保密的內容就不透漏了。
先說上個學期的暑期實習生應聘。開始參加了平安科技和惠普的實習生招聘,本來也沒想去,印象也就不深了,記得惠普的題挺難,數據庫、網絡、操作系統、C++都是有深度的,英語題注重外企文化,其他記不清了。下面重點說一下騰訊,由于XA師兄內推了我,我的職位就成了后臺開發,并且省了筆試。一面是電話面,問的大致有:
TCP的長連接和短連接;UDP包最大長度;C++中Class和Struct的區別;當天日期20090519這個數的階乘是多少(當時想到數論上了,居然回答不會);還有兩個智力題,一個是黑帽舞會的問題,另一個是兩人輪流取100個球的問題。
二面的面試官人很好,知道我是做游戲的,就沒怎么難為我,1個小時的面試時間,三分之一在問項目經歷,三分之一在問RP問題,剩下三分之一問的技術問題有:
為什么TCP需要三次握手,解釋為什么;滑動窗口的概念;socket程序中調用close函數時發生了什么;有沒有寫過一個TCP服務器,怎么實現的;問我會不會數據庫,我說只會書上講的,于是問什么是三范式;數據庫中索引用得什么數據結構,我答的平衡樹,就問平衡樹是什么(后來查了一下應該是紅黑樹);如果基類用了virtual析構,派生類還用不用加virtual,等等。
這位面試官又問了我想做什么,我說做游戲,他又給我聯系互娛那邊的面試,本來已經結束了的,確實是個好人啊~
互娛的面試官問的問題大概有:
說一下3D渲染管線;什么是靈活渲染管線;游戲內存管理用平衡樹好還是哈希表好(這個問題我至今不知道……);平衡樹和哈希表的時間復雜度;其他想不起來了,好像針對簡歷中的項目經歷問了很多。
騰訊的三面是HR面,一些RP題就不說了。郁悶的是最后被拒了,都不知道為什么……不過幸好沒去,去的話八成是留下,就真的沒機會做游戲了~
之后大四就開始了,進入真正找工作的階段,其中的辛苦就不多說了,我的列表上有三四十家公司,做什么的都有,甚至微波爐!簡歷投了將近一個月……我們不是一流大學,baidu/gg/ms/qq/163這五家只有騰訊去我們學校,當然,前三家沒有游戲我也去不成,呵呵。nv和ubi基本不要本科,所以我的列表上重點關注了騰訊、網易、完美時空、搜狐暢游、金山這五家,下面主要說它們。
最早的是網易,我的職位是游戲開發,筆試題有5道:
1、2題是智力題;3題是判斷線段相交,大量線段時如何優化,我回答的思路是物理引擎中分層檢測的方法,后來看到卷子這道題沒得分;4題關于調色板;5題是英文ACM算法題,我想了很久不會,回學校后問一個做ACM的師弟,不到十分鐘就做出來了。
網易的一面是技術面,技術問題大概有:
針對我簡歷上那個JHDemo的一些問題,比如幾種線程同步方法的區別,用阻塞模式的socket怎么實現聯機等等;C++的問題,寫一個字符串拷貝函數的原型,還有,如果一個類的構造函數構造失敗,比如內存不足,怎么辦,注意構造函數無法返回值;又問我最近玩什么游戲,我說植物大戰僵尸,問這個游戲開發起來難點在哪,我能不能實現,我說難點在平衡性,技術上我能實現,又問那一屏在跳動的花怎么做,我答跳動是精靈動畫,畫一屏的花用畫家算法就行了,不知有沒有答到點上;還問了一些問題想不起來了。
二面是群面,三面是綜合面,其中有個技術題:
我們調用函數時都是立即執行的,現在想在調用后等待一段時間再執行,設計一個接口。我想到.net的異步委托,可惜不怎么懂,寫給面試官的是typedef void (*FUNC)(void* param); bool Invoke(FUNC func); 面試官問為什么返回布爾,我說表示添加任務成功或失敗。又問了具體如何實現(多線程),如何通知調用結果(回調),最后問如果我想刪除一個已經加進去的任務怎么辦,我才反應過來原來開始寫返回布爾是不好的,改成返回一個unsigned long,為添加進的待調用函數分配一個ID,刪除時要指定ID。面試官問怎么開始不這么設計,我說,沒經驗……
金山和網易的時間沖突了,之后就是騰訊。騰訊的筆試考的完全是計算機專業課程,前面選擇題覆蓋了C++、數據結構、算法、操作系統、網絡、數據庫、編譯原理等等,后面程序填空有個背包問題,我一心想著動歸,卻一直讀不懂,后來發現居然是用搜索做的……
騰訊一面又遇到了暑期實習時的面試官,就沒怎么問,又說了下3D渲染管線(固定管線和靈活管線),phong光照模型,還有一點3D圖形的問題記不清了。二面是后臺部分,問了一些C++的問題,主要是要對C++的內存模型有所了解,還有數組傳參后退化成指針等等C++細節的東西。又問我擅長什么,2D還是3D,當時我想平時我不做圖像部分,其他的什么都做,非找個擅長的也不容易,想到我們團隊中引擎的結構基本是我設計的,就跟面試官說了個擅長面向對象和設計模式,結果面試官讓我畫個觀察者模式的UML,我不會UML,那個悔啊……
搜狐的職位是3D開發,筆試題google一下就能找到,我做的那份題四元數占了很大比例。搜狐今年的面試很不正規,只有一面,我面了大概20分鐘。問了少數幾個技術問題有:
玩游戲時有沒有卡的情況,為什么會卡;如果是因為客戶端卡,要怎么解決;有沒有寫過socket程序,有沒有寫過多線程程序,有沒有編譯過directx自帶的例子,我分別回答有后就沒繼續問下去……其他問題想不起來了,不過確實搜狐沒怎么問技術……
最最遺憾的,完美時空沒有過網申,其實我最想去完美的,因為不在我們學校所在城市招聘就沒去霸王筆。通過51job投的三份簡歷都沒有過網申!
就是這些吧,當然,技術問題只占了面試中的一部分,還有針對項目的問題,RP問題,團隊合作交流等等各種問題,就不在這寫了。