【字节跳动】客户端岗-朝夕光年游戏开发

一面(110min) 你没有看错,就是那么长

自我介绍

  1. 面向对象的三大特性,并且解释一下
  2. 虚函数
  3. 内联,友联函数
  4. C++ 内存管理,分为几个区,分别是干什么的
  5. 手撕代码:实现一个单例的类
  6. 说说几个stl里面的容器,他们的底层原理
  7. TCP/UDP的区别
  8. C#深拷贝浅拷贝
  9. Unity优化
  10. 手撕代码:实现math lib里的sqrt。 (开始写了个暴力的,后面用了二分搜索优化)
  11. 项目问题
  12. 反问(问了为什么项目问题比较少,面试官说从简历上看找不到切入点0.0我解释了我项目的技术(都是游戏demo), 说了自己会图形学,面试官说二面来问你)

总结

第一次面试,人有点紧张,有些问题没回答好,不过面试官很好,十分有耐心,也给了一些提示,最后磕磕绊绊都做出来了。一面结束后一天后告诉我面试通过,进入二面。

二面(60min)

  1. 自我介绍
  2. 项目经历的问题(这次占了时间的大头)
  3. Unity渲染管线
  4. Unity顶点坐标变换,光照计算的原理
  5. 光照模型
  6. 深度测试
  7. 切线空间
  8. UV与模型
  9. 透明度与alpha混合
  10. LOD和遮罩剔除
  11. 四元数
  12. Prefab
  13. 说几个常见的排序算法
  14. 智能指针
  15. 手撕代码:正则表达式匹配
  16. 反问

总结:这次面试发挥的比较好,问题都回答出来了,上次告诉一面自己也会图形学,这次果然问了很多,面试官也很好。二面结束后3个小时告诉我面试通过,安排三面+HR面的时间。

三面(40min)

自我感觉是个压力面,面试官的问题明显深很多,还一直追问,问到大脑空白。

  1. C++ 11的新特性
  2. 智能指针
  3. C++ STL deque和list的区别
  4. 说说你知道的设计模式
  5. 观察者模式的底层实现原理
  6. 观察者模式的应用场景
  7. list的底层实现,怎么在观察者里面实现O(1)的删除?(因为我提到了list操作的时间复杂度,想了很久,说了很多,最后我还是没回答出来)
  8. 堆排序的底层实现
  9. 喜欢玩什么游戏?(说了FPS)
  10. 多人FPS游戏里游戏数据的位置(同步模式)
  11. 状态同步里的网络延迟
  12. 网络延迟的解决办法(延迟补偿机制)
  13. 反问(问了面评,面试官说我基础很好,但是有些深入的东西还要学习,问了HR面的信息)

总结: 三面的面试难度明显要比前两面要高很多,问的东西都很深,不仅要了解到知识本身,还要理解他的应用。三面结束后半个小时后通知HR面。

HR面(40min)轻松加愉快,气氛很好

HR面总体来说面试的很愉快,因为我是计算机科学:游戏设计专业(对口专业),问了我很多学校的事情,也问了我问什么选择这个专业。问了问我的项目经历,小组合作开发游戏时候遇到的困难,我的解决方式。也问了我对未来的想法。后面就是正常的HR信息收集。最后问了问评价,HR对我挺满意的。

HR面后两天接到OC,我的面试进度很神速,从一面到OC只用了8天的时间,我上岸了,希望大家也能继续加油,找到自己心仪的offer~

发表评论

后才能评论