公司不是腾讯网易这种大厂(投了,但是简历没有被看上。。不然觉得还是有机会的),是两家规模中等的,主要市场在海外的公司,因为考虑到各种原因然后公司的招聘还没有结束,这里还是省略下公司名字。
HR的面试过程就省略了,大概都是差不多的,情况会根据每家公司的风格和HR的个人而多多少少会有点差异。
这里主要写笔试和几次面试中印象比较深刻的问题和知识点(统一写在一起,只记得住一部分,如果答案比较简单就给出,太长的懒得写。。)
顺序是乱的,考的题都记不完全,更别说顺序了。。。。
公司一:
笔试题超级难。。考的方向很广很广。。
面试也超级难。。
1.你对C++熟悉到什么程度?
2.虚函数是干什么的?(实现多态)
3.虚函数是怎么实现的?它的底层机制?
4.纯虚函数知道吗?纯虚函数是干什么的?(接口,多态)
5.内存对齐问题
6.内存泄漏怎么检验?
7.如何判断一个数的奇偶(我回答的是位运算的方法)
8.判断一个数是否是2的幂次方(回答的同是位运算的方法)
9.手写代码--求1~2N次方的质数(我写的是筛法求质的算法)
10.刚才你写的代码如何优化。(优化了下空间)
11.揹包问题
12.你是如何理解动态规划的?(找状态,初始状态,状态转移方程式)
13.写一个俄罗斯方块的AI,让他的得分最高。(说了自己的想法,回去后在网上查了下,大致思路是对的,但是没有考虑完全。。100分算50分吧?)
14.了解设计模式吗?(单例模式,工厂模式,观察者模式...)
15.了解oop吗,设计个手机上计算器的类?(没有仔细思考,随便地说说。。后悔自己没有仔细思考,但是面试官没有追问了,应该还算可以吧,就是没有那么的完美)
16.玩过什么游戏,哪些类型的游戏
17.鬼泣5你觉得哪些地方做得好
18.鬼泣5除了之前你说的那些,还有哪些地方你觉得制作比较难的?(还是没有仔细思考,立马就回答了出来,所以感觉答得很差,但是面试官没有追问,,,不知道为什么后来回去路上思考的时候思路异常的清晰。。。)
19.为做游戏做过哪些准备?(做项目,看书,学习引擎)
20.unreal和Unity得区别?(现场没有说好,但是面试结束后思路异常清晰。。)
22.最近学到什么新知识?(没有)
23.归并排序和快速排序的区别,以及他们的复杂度。(我快被自己气死了,明明很清楚,误解了面试官的意思,答错了一个点)
24.从开机到打开炉石,操作系统做了什么?(不知道。。只知道基础知识)
25.从场景座标中的顶点到屏幕上经过了哪些处理,这一段的处理发生在哪个阶段?(局部到世界到相机到裁剪到屏幕,几何阶段)
26.会写shader吗?(学习过一段时间,不太会。。)
27.空类的大小是多少,为什么?加上一个指针后呢?(完全答了出来,面试官:你看过深度搜索C++对象模型是吧(笑)?,是的)
28.BFS和DFS的区别是什么?(说的不是很清楚)
29.编译原理知道吗?(不知道)
30.游戏服务器问题?(答错了)
31.玩游戏的时候想过怎么设计的没有?
32.moba游戏英雄大招的设计?
33.怎么看待996问题?
34.面试结束了,你有什么问题吗?(balabalabala)
面试感觉不太好(虽然给的反馈是很好),,,面试官挺高冷的,一副高高在上的样子,我是第一次面试,所以很紧张,一些地方本来知道,答错了或者答的不清晰,如果当时面试官给出一点提示的话我肯定能答出来。整体上除了某些很刁钻的问题基本上都算是答出来了吧。目前还在等待结果中。
公司二:
笔试题也很难,但是只集中在一个方向,没有很广。
面试难度中等吧。
面试官整个过程都略带笑意。进会议室第一句就是:不好意思让你久等了。好感度UpUp
1.二进制的转换
2.二进制中一的个数(位运算)
3.TopK问题
4.优先队列问题
5.const和define的区别
6.c++有几个内存区
7.memcopy问题(重难点,和strcpy不一样,安全检验问题,在面试官的提示下答出来了)
8.sort函数中cmp函数对象的编写(有点复杂。。当时写了个十几行的lambda表达式)
9.进程之间的通信方式
10.tcp和udp的区别以及例子
11.对手机游戏行业的看法
12.对该公司的看法
13.虚函数是怎么实现的
14.指针和引用的区别
15.数组和链表的区别
16.玩啥游戏
17.进程和线程的区别
18.线程之间通信方式
19.锁是用来干什么的,为什么要用锁?
20.避免死锁?(银行家算法)
21.大端机和小端机?(地址的顺序问题,详情百度吧。。)
面试官:不问你基础问题了。。(哈哈哈原来面试官想要测出我的上限,但是好像我都答出来了,没有测试出来)
22.问了一些自己的做的项目中存在的问题(没有答到点上,但是面试官给我解释了很多相关的知识,学到了)
23.接着上面,GC问题,数据结构和内存释放问题
24.吃鸡在跳伞的过程中,怎么设计的,哪些需要注意的。(balabalabala一堆,面试官瞪大眼睛盯着我,我以为我说错了,就说:我是这样认为的。。然后面试官:没有没有,你说到点上了,继续继续。我:。。。 然后答完后面试官又和我扯了一堆相关的知识)
25.吃鸡最耗哪些资源?(内存,GPU)
26.为什么耗内存和GPU
27.会写Lua吗?
然后面试官头也不回的就想走,我一脸懵逼:面。。。面试完了吗?。。
然后面试官懵了一下:哦,你还有什么想问的? 我:。。。
总的来说有了第一次的经验,第二家公司面试过程都很完美,没有那种知道却没有答好或者不经思考用第一感觉就答出来的低级问题,只有一个完全没有学习过的点没答上,其他都答上了。真实的面试经验和面经完全不一样,当场面试的经验还是很重要的,经历过才有深体会。
面试完后,hr当场就邀请我来公司工作,(我说这是口头offer吧,hr带着笑意点点头2333),我说了给我点时间考虑(后来答应了)
整个过程都是很轻松的,不论是HR还是面试官都全程带着笑意。虽然工资没有第一家高,但是氛围绝对是第一家公司比不上的。
面经只是解决一时的问题,还是踏踏实实的学精学通才是王道。如果你只是看了面经,假如面试官问的很深你却没有答出来,那大概知道你是看了面经,面试官也是面过很多人的人,小伎俩别人还是很轻易的就看出来的。
算法,C++底层,操作系统这种比较难的,并不是一蹴而就的,需要日积月累。