找实习的过程中牛友们的面经对我帮助很大,回馈一下希望能帮到大家!
历程
我算是开始得比较晚的,5月中旬才开始投简历,只投了腾讯、网易、字节三家而且全投的游戏引擎研发岗,到今天为止收到了腾讯客户端开发和字节引擎研发的oc。主要的面试过程其实10多天就全部结束了,但是腾讯oc来的很慢所以这篇面经也被一直搁置着,现在终于能写了:)
1 腾讯-游戏客户端开发
我投的时候腾讯暑期实习笔试已经过了,所以第一志愿岗没理我,这应该是被其他岗捞的简历。
一面
C++基础:
- stl的vector和list的区别,增删分别的时间复杂度
- 虚函数机制
- C11的新特性
计算机网络:
- 解释TCP3次握手
图形学:
- 速度过快/体积过小导致物理引擎检测不到碰撞,如何解决
开放性问题:
- 如何优化内存,实际开发过程中用过什么优化内存的方法
- 如果有对象要频繁创建和删除,用什么减少开销。(对象池)
- 对象池的大小通常如何决定
二面
二面面试官给我发了一个腾讯文档,考8道C++基础题,涉及到C++自定义类的大小如何决定(默认大对齐)、右值引用、模板类、STL的iterator使用等等,在面试官纠正下我勉勉强强做出了7道,感觉还是蛮难的。题就不公开放了,有小伙伴需要的话私信我单独发吧。
三面
三面给我印象不是很深,好像是问了问我简历里的项目,然后我叽里咕噜跟面试官说了一堆,说了啥我已经忘了,毕竟面试里说的那些高大上的话太羞耻了根本不敢回忆😂
2 网易-游戏引擎研发
- 手撕代码:是否是合法括号串
- 手撕代码:最长合法括号串,上面一题的升级版,要求O(n)
这是网易一面的两道题,做完之后开始问问题,被面试官怼飞了。能感觉得出来网易那会已经不招人了,就纯粹面你面着玩,岗位相关的问题就没问几道,逮着我简历里不相关的经历狂怼,最后话都没让我说完就让我回去等消息了。
3 字节-游戏引擎研发
一面
C++基础:
- 几个stl容器的底层实现
- 右值引用和move构造
- const、static关键字
- C++里的lambda函数
- 指针和引用的区别
软件工程:
- 介绍几个设计模式
- C++里的面向对象
图形学:
- 介绍渲染管线
- 解释纹理采样的两个模式
手撕代码:前序遍历
二面
C++基础:
- 解释C++的多态如何实现
- 解释类模板和模板类的区别
- 右值引用、move语义
图形学:
- 介绍顶点处理中涉及到的矩阵变换
- 介绍一个光照渲染模型(我介绍的是冯氏光照)
- 介绍一个消除隐藏面的算法(我介绍的是Z缓存)
- 如何解决因为顶点过近和浮点数的精度不足带来的穿模问题
手撕代码:快排
三面
开放性问题:
- 在特定场景如何选择stl容器,以什么为标准?你最近一个应用到这个容器的场景是什么?
- 在N*N棋盘地图上放一个圆形技能,检测影响到的玩家对象,用什么数据结构实现?
- 不关心顺序的数组如何实现O(1)的删除操作
以上3个是我印象比较深的问题,后面是一些关于项目经历的提问了,比如有没有值得分享的优化点,最有成就感的是哪个等等。
字节的面试是体验最好的,一个下午就连续完成了3面,第二天就完成了HR面,几天后就来了OC,可以说是非常省时间了。暂且不论最后结果,我在面试的过程也学到了很多东西,面试官很看重思考能力和算法数据结构功底,我问的一些问题面试官也回答得非常有干货。
4 小总结
这是我头次找实习,准备时间也不是很充裕,周四投完简历+收到下周一的面试之后慌慌张张准备了一个周末,能够有幸获得offer很大程度上是得益于自己的还算扎实的基础和表达能力。我知道自己没法准备得面面俱到,所以主要就干了两件事:
- 从决定找实习开始,每天花1小时来一道leetcode,要求自己做到最低时间复杂度
- 搜罗了3个比较全的面经,把所有问题像上面一样根据类别分好,从频率高到低一个类别一个类别复习,我这里的顺序是C++基础-->计算机网络/算法&数据结构&面向对象-->软件工程/图形学-->操作系统/编译原理,最后事实证明前人经验非常靠谱,面试官就考这些。
其实一开始看完大家的面经我是很慌的,感觉自己像海上破洞的船一样到处漏水,需要复习的地方太多了时间也不够,但是最后自暴自弃地功利性复习反而效果很不错。所以如果有小伙伴现在还是对找实习很焦虑的话,可以先行动起来,把能做的做了,剩下的管他呢,说不定面试官对你要求没那么高呢:)
5 最后的最后
如果有朋友能够看到这里,能帮忙比较一下offer吗🙏
腾讯的是成都天美L1游戏客户端开发,字节的是游戏引擎研发岗,具体部门不太清楚。
我个人是比较倾向于做图形学、游戏引擎研发的工作,比较看重能够学到图形学理论、技术的机会。希望大家不吝赐教,万分感谢!
全部评论
(20) 回帖