----------------------------------------------------------7.24分割线------------------------------------------------------
今天继续更新一下,所有公司通用的研发岗基础面的问题吧(比较久了、不全面、读者们最好自己再去多了解)
第一大部分是语言类,由于我面的岗位基本上就问C++、C#和Lua(一般是游戏研发岗才问),所以这里就总结这三种:
C++:
1、static和const关键字(用法、区别)
2、常量函数、常量引用、指针常量、常量指针
3、指针和引用的区别和用途(指针是C++的精髓,很常见)
4、空指针和野指针(偶尔)
5、C++11新特性:智能指针(用途、底层实现原理、偶尔会考编程实现,记住思想就不难)、右值引用、lambda表达式
6、C++的多态(必考):虚函数的意义和作用(运行时多态)、虚函数表的原理、还有一种部分面试官认为的编译时多态:函数重载(但也有部分面试官不认同是多态)所以重在理解,能表达出自己的理解即可
7、虚函数的延伸(必考):基类指针指向派生类对象(要从编译和内存两个角度去理解)
8、构造函数与析构函数:复制构造函数、拷贝构造函数、赋值构造函数;两者是否能为虚函数?(虚表指针角度和多态角度的理解)是否能重载?
9、内联函数与宏定义:用法、区别、运行机制、优缺点
10、异常捕获处理(比较少见,我没怎么遇到过)
11、对象模型(主要是了解,问的不多)
12、C++STL(所有语言大同小异的通用必考超级重点):主要都是问的容器,因为算***单独问,迭代器也不会常问。
必考的容器:list、vector、queue、map、stack、set、deque,每一种的用法、特点、底层实现原理、数据结构、优缺点、内存占用、扩容方式等等必须非常熟悉!!!!!!!!!特别是前5个。
13、map延伸(必考重点内容)——红黑树:特点、用途、与AVL树的区别及各自优势
14、map延伸(重点内容)——hash_map:与map的区别:包括但不限于用法、底层实现原理、扩容机制、内存占用、各种操作的效率等
15、如何hash?hash冲突的解决办法。(有余力的建议再了解下不同的语言应用hash表时,扩容时机和解决hash冲突的机制都不同)
例如:C++和python的扩容时机都是设置的负载因子达到0.75,而C#是0.6;再比如C++和C#解决hash冲突的时候是用的链地址法,而python运用的是Rehash,会扩容double的内存空间,开销比较大等。(比较久了可能有记错,建议读者自己去了解一遍)
16、浅拷贝和深拷贝(本质上是指向的内存地址空间的问题)
17、malloc和free、new和delete
18、delete和delete[]的区别(对象数组的构造和析构)
19、内存区域分配、内存优化及内存泄露问题(常见)
20、模板的特化和偏特化
C#:
1、C#有哪些特性?(基本上常见的各种特性都会问到,建议都去理解一下)封装、继承、多态、委托、反射、泛型、GC、闭包等
2、委托和事件的区别
3、C#的GC(必问,内容很多,重在理解和记忆):搞清楚托管与非托管资源,游戏研发岗的可以顺带对比记忆unity内部自带的内存管理池
4、如何减少GC?
5、foreach的了解(迭代器、只读不可改、遍历、字典排序)
6、C#泛型与C++模板类有什么共性和区别
7、string与stringBuilder的区别(为什么能减少GC?)
7、C#的常见数据结构:数组、链表、字典、栈、队列、集合(提问点与C++STL的基本一致)
8、(游戏研发岗常问)Lua与C#的交互问题,如何优化(了解一下别人写的Lua管理器的思想)
9、线程和协程的区别
10、C#的拆箱和装箱
Lua:
1、常见数据类型
2、元表的用法
3、Lua类的实现
4、Lua的多继承
5、Lua如何进行性能优化(LuaJIT)
6、Lua为什么高效?
7、为什么用Lua进行热更而不用C#?
8、热更新的基本流程
今天先更到这,有点晚了,之后随缘更新游戏研发岗常问的引擎相关问题和框架问题~
--------------------------------------------------------------以下是原文-------------------------------------------------------
这其实是今年春招的面经了(没错,就是今年疫情期间最不好找工作那会)
本来早就想发面经回馈一下,但实在是因为没时间(懒),所以拖到了现在
上周好不容易码完的面经,因为和内推放一起还被删帖禁言了,属实让我不想再写一遍
可是转念一想,吉比特的面经真的太少了(特别是研发岗),当时我面的时候牛客上只有一篇面经
秉着造福大众的奇怪想法,我决定再码一遍。
话不多说,开始面经:
首先,介绍一下本人的情况:广州大学城某双非院校的计算机相关专业,大二时参加了校内的游戏工作室,项目经历只有大二时做过的两个游戏DEMO,大三时虽然接触到工作室的热更新游戏项目,但是因为课业原因很快就离开工作室了,对热更的了解也就那会看着项目源码自学。除此以外,没有任何大厂实习经历。至于为什么没有参加秋招——考研去了,但没考上。
(这里提点个人看法,除非真的笃定要读研,一战不过二战三战都要上那种,否则没有那个时间成本和家庭条件的小伙伴,最好还是秋招的时候留点后路,个人的惨痛教训,春招的岗位真的太少了)
接下来说一下春招大致的情况:
腾讯IEG 二面挂
网易雷火 笔试挂
字节跳动 游戏研发(杭州) 一面挂
后台开发(北京) 二面挂
吉比特 offer
搜狐畅游 offer
西山居 笔试挂
三七互娱 二面挂(自己坑自己)
星辉游戏 offer
尚游游戏 offer
米哈游 放弃面试
为什么三七那里标注了自己坑自己呢?因为一面问发展规划的时候说想往引擎方向走(当时纯粹觉得搞引擎很厉害),然后二面来了个引擎开发的大佬问了一堆引擎相关和图形学相关的东西😨
Tips:有内推找内推,简历上尽量写清自己的技术栈和掌握程度(写精通的自己注意点哈),详细写岗位相关的项目和实习经历(非常重要),其他不相关的最多一句话就得了(基本不看)
虽然楼主的履历相对于大多数人来说都非常一般,但是我还没被卡过简历,除了游戏研发外,华为、深信服等等的研发岗位也没卡我简历(当然岗位不同侧重点就不同了)
一句话总结:简历中突出自己与岗位的契合经历,展现自己的竞争优势。
接下来是大致的流程:线上笔试+一轮技术面(主管面)+HR面
(注:一轮技术面仅是我个人的面试流程,不代表所有人一致,据我所知同样岗位也有二面三面的)
流程上比较快:笔试结束后7天内就有结果(通过还是感谢信都会有,而且不会拖你时间,要点个赞),通过后会立刻安排面试,一面面完后,第二天就接着HR面了,之后就是等offer了。(效率带来的体验真的很好,不像有的厂投了简历后一个月才通知安排笔试)
首先是笔试:(有点久远,可能有点遗漏)
题型:选择题+程序填空题+编程题
选择题:主要考的就是计算机基础和语言基础,像C语言、计网、操作系统、数据结构之类的常考基础题目,不难,多刷点题就好。
程序填空题:(题量大概6题,据个人体验和当时春招群友的反馈,这部分最难)这部分主要考察的就是C/C++的熟练程度,有较高的难度,而且考的比较细,也会考一些不常用的用法,所以会比较费时间。(比如malloc要带free,new要接delete,delete[]、全排列、位运算等等)牛客上有往年的吉比特笔试题,题型应该相近,建议去刷一刷。
编程题: 2道,第一道是素数全排列,比较容易出现的情况是忘记计算自身,很快搞定,AC100,第二道没记错的话是动态规划问题,但是当时就剩了10分钟,来不及搞了,只AC了50就交了。难度适中,记得要把剑指offer刷完,之后有余力的多刷点leetcode中级,一般来说问题不大了。
Tips:笔试的时候注意时间!!!当时做的大多数笔试都是2小时,结果吉比特的笔试只有90分钟,等发现的时候已经没剩多少时间了,所以大家要加快速度,规划好自己的做题流程。
然后是技术面(主管面):这块面试的内容和我当时看到的那篇面经完全不同,那篇面经基本都是问的基础,但我面试的时候项目问的特别多,还好之前已经面过了很多公司,项目这块的大多数问题都比较熟悉了,所以即使问的基本都没准备,也都能答上。
1、自我介绍
2、委托和事件
3、万年不变——渲染管线
4、逐顶点和逐片元
5、GC
6、如何减少drawcall
7、项目相关(项目这块我总结了一下,对所有公司都适用:做了什么?用了什么技术栈?为什么用这个技术?遇到了什么难题?怎么解决?有没有更好的办法?现场提出一个问题问你有没有考虑或解决过?现场想一个解决方案)
8、Lua和C#的交互
9、热更新的流程
10、TCP和UDP(因为项目那块问的比较多,所以到这里已经基本结束了,我当时怕时间太短还和面试官聊了下帧同步和状态同步)
11、如果进来之后要客户端和服务器双端开发能不能接受?(能)
12、平时看什么书?怎么学习的?
13、有没有什么想问的?
重点:我当时问面试官为什么问的问题和我看过的面经不太一样,我看的基本都是在问基础?面试官回答:问基础没什么意思,还不如问项目有意思,基础大多准备过就能答上来,没有什么区分度。
此处再次提醒小伙伴们,无论做过的项目如何,哪怕只是一个简单的休闲小游戏都可以,一定一定一定要写进简历里去!大部分的面试官都会很关注项目经历这块,有和无是两个概念,好与坏都是建立在你有的基础上的。![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571397178004_A969AAAB995E4AADDBFE5FC3781FA63B)
最后是HR面:相对来说比前面的轻松,都是比较平常的问题,建议感觉自己能到HR面的小伙伴可以先到公司官网去看看公司的介绍和企业文化,会有帮助噢
1、自我介绍
2、笔试没做完的原因(追问:笔试了多少公司才形成了时间上的惯性思维😂)
3、为什么选择本公司?
4、对公司了解有多少?
5、谈谈大学经历和项目经历
6、大学期间遇到什么难题?怎么解决的?
7、有什么缺点和不足?怎么克服的?
8、怎么看待加班?
9、拿过哪些offer?
10、谈薪资
11、还有什么想问的?
本人的笔试和面试经历就到这里啦,希望对各位小伙伴能有所帮助~
大家要对自己有信心!连我这样没有什么实习经历的双非小菜鸡都能成功~你也一定可以
PS:上周本来还码了从我面过的所有公司的研发岗总结出来的、需要准备的、通用的问题。。但删帖后也没有个存档退回(真的很想吐槽这点)。。今天时间太晚了就先写到这了,下次找个时间继续更新在这吧。
最后,祝大家都能成功上岸~拿到自己心仪的offer~![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571395204834_8266E4BFEDA1BD42D8F9794EB4EA0A13)
全部评论
(8) 回帖