字节跳动朝夕光年游戏客户端开发实习面经(已拿offer)
一面(110min) 你没有看错,就是那么长(考的特别多,不记得全部了)
- 自我介绍
- 面向对象的三大特性,并且解释一下
- 虚函数
- 内联,友联函数
- C++ 内存管理,分为几个区,分别是干什么的
- 手撕代码:实现一个单例的类
- 说说几个stl里面的容器,他们的底层原理
- TCP/UDP的区别
- C#深拷贝浅拷贝
- Unity优化
- 手撕代码:实现math lib里的sqrt。 (开始写了个暴力的,后面用了二分搜索优化)
- 项目问题
- 反问(问了为什么项目问题比较少,面试官说从简历上看找不到切入点0.0我解释了我项目的技术(都是游戏demo), 说了自己会图形学,面试官说二面来问你)
第一次面试,人有点紧张,有些问题没回答好,不过面试官很好,十分有耐心,也给了一些提示,最后磕磕绊绊都做出来了。一面结束后一天后告诉我面试通过,进入二面。
二面(60min)
- 自我介绍
- 项目经历的问题(这次占了时间的大头)
- Unity渲染管线
- Unity顶点坐标变换,光照计算的原理
- 光照模型
- 深度测试
- 切线空间
- UV与模型
- 透明度与alpha混合
- LOD和遮罩剔除
- 四元数
- Prefab
- 说几个常见的排序算法
- 智能指针
- 手撕代码:正则表达式匹配
- 反问
三面(40min) 自我感觉是个压力面,面试官的问题明显深很多,还一直追问,问到大脑空白。
- C++ 11的新特性
- 智能指针
- C++ STL deque和list的区别
- 说说你知道的设计模式
- 观察者模式的底层实现原理
- 观察者模式的应用场景
- list的底层实现,怎么在观察者里面实现O(1)的删除?(因为我提到了list操作的时间复杂度,想了很久,说了很多,最后我还是没回答出来)
- 堆排序的底层实现
- 喜欢玩什么游戏?(说了FPS)
- 多人FPS游戏里游戏数据的位置(同步模式)
- 状态同步里的网络延迟
- 网络延迟的解决办法(延迟补偿机制)
- 反问(问了面评,面试官说我基础很好,但是有些深入的东西还要学习,问了HR面的信息)
HR面(40min)轻松加愉快,气氛很好
HR面总体来说面试的很愉快,因为我是计算机科学:游戏设计专业(对口专业),问了我很多学校的事情,也问了我问什么选择这个专业。问了问我的项目经历,小组合作开发游戏时候遇到的困难,我的解决方式。也问了我对未来的想法。后面就是正常的HR信息收集。最后问了问评价,HR对我挺满意的。
HR面后两天接到OC,我的面试进度很神速,从一面到OC只用了8天的时间,我上岸了,希望大家也能继续加油,找到自己心仪的offer~
#实习##面经##游戏客户端开发工程师##字节跳动#