字節跳動的面試體驗很好,很守時,會提前說面試大概多久,也不拖堂,面試官人都非常好。
一共3技術面+HR面
一面
大概半小時,問的全是是基礎,操作系統,計算機網絡,數據庫等,語言的話很靈活,雖然做遊戲不用JAVA,但是如果只會JAVA也沒有關係,面試就問JAVA。
二面
大概五十分鐘,面試官比較嚴肅,但是人很好,先問15分鐘的基礎知識,然後手撕一道代碼題,不難,類似於實現一個split函數,複雜一點的。寫完之後運行,結果對就差不多。再會問一些項目相關的,問的不是特別深入,可能因爲項目跟遊戲沒什麼關係。
二面之後面試官讓等十分鐘,我以爲接下來是HR面,就放輕鬆了,結果還是技術面。。
三面
三面面試官應該是部門負責人,非常好,一直在笑,可能有些問題我答不上來,但是面試官一直提示。
三面問的主要就是和遊戲相關的,給一個場景遊戲,有person,有AI,有各種小怪物,以及房屋建築,問怎麼設計數據結構,怎麼更新,怎麼解決延遲,大概就是這樣的問題,整個面試一直圍繞這個問題。我是一通亂說的,實在沒接觸過。
就把它想象成喫雞遊戲,地圖很大,可以分塊建模再存儲,數據結構可以使用四叉樹或者八叉樹,這樣更新的時候,子節點直接掛到不同的父節點就行了,具體細節就不說了。
與敵人對戰,怎麼判斷技能有沒有命中,我說用碰撞器,面試官說假如不用碰撞器呢,其實應該就是講它的原理,怎麼加包圍盒。
網絡延遲怎麼解決,因爲地圖很大,場景中的物體較多,多人對戰方式,那就局部加載,就是對於某個用戶,只需要加載以他爲中心的部分場景,更新就更新這一塊,不需要整個地圖更新。
這個問題討論了很久,後來又問了我喜不喜歡打遊戲,喜歡。比如有哪些?喫雞啊,王者啊,陰陽師啊,明銳之後啊,都是手遊。王者和陰陽師有什麼區別?大概就是所追求的目標不同吧,一個偏向於實時,一個側重於渲染。充錢了嗎?衝的挺多的,爲了皮膚哈哈哈哈。
有什麼問題問我?咱們字節這邊現在在做什麼遊戲?什麼遊戲都有,都在測試中,估計不久就會看到。
HR面
大概15分鐘,主要就是問個人意願,手裏的offer,家庭情況,面試的感受等等,HR人很好。
HR面之後就收到offer了。