叠纸游戏——游戏服务器开发一、二——已OC
笔试
细节记不清了,好像有道二叉树中序前序输出后序的题目。
一面(两项目组的面试官一起面 35min)
第一个面试官的问题:
-
你的STL项目大致说说
-
你做这个STL是为什么
-
有参加过ACM竞赛吗
-
有看过侯捷其他一些书吗
-
你还看过哪些书
-
《UNIX网络编程》和《UNIX环境高级编程》看过吗?
-
说下你的WebServer项目
-
关于你的GET和POST是调用第三方库来处理吗
-
为什么不用CGI
-
同步异步日志系统是怎么实现的
-
Linux和MySQL都了解吗
第二个面试官问的问题:
-
为什么STL用C++98写的
-
如何用模板在编译期就求出斐波那契第10项的值?
好难。乱说给说对了。特化取值为0和1的模板,之后不断递归调用模板的成员这样子。
-
萃取器是怎么实现的
-
vector获取了begin迭代器,插入元素后迭代器会失效吗?map,list,unordered_map呢
-
二维连连看,0代表可通行,给你查询,问你能不能通过最多两次拐弯,这两个数是可达的
两个项目组介绍:
- 一个是有大IP的开放世界项目组,具体的玩法还是需要保密;另外一边也是开放大世界,tipworks团队,写实类注重战斗的。
- tipworks团队的服务器分为两块,一部分Go会更偏服务器架构和集群,数据库和登陆这方面,另一方面是UR服务器的改造。
- 暖暖团队这边技术栈偏C++。采用C++20标准,后面可能会引进lua。前端使用UE,后端没有采用DS(专有服务器)。可能会有一些AI方面的设计。之后现在更多是注重ECS(云服务器)的性能挖掘。
工作制度的介绍:
- 暖暖团队,5天八小时,中午休息1-2两小时,晚上公司不安排吃饭,一般会自己吃完饭之后,到8点左右打卡下班。加班不重。在叠纸总部这里。
- TipWorks也差不多。在闵行区这里。TipWorks面试官说了一番很有经历的话,编程这件事情,比起其他行业试错的成本会低很多,所以更多的其实还是看个人的兴趣与学习能力。如果只是为了生活的话,那么程序员会是一件比较痛苦的事情。可能有些团队不赞成加班,做完就可以走了,但是可能过段时间就会跟你说,你是不是太轻松了,之类的话。我们这边的话可能就不会太赞成这样的节奏(鼓励不加班)。面试官刚来的前两周天天留在那里看代码,熟悉UE的用法。
平均年龄:
- 暖暖这边会补充一点校招生,所以年龄会更年轻化。
- tipworks没说。
我有什么不足的地方:
都挺好的。
我应该往哪方面去提升自己,如果要加入你们项目组的话
说的较为中肯,一般校招生要求基本达到就行,之后进来再进行学习就可以。
二面(两项目组的面试官一起面 35min)
第一个面试官的问题:
-
自我介绍
-
C++里面类内的静态成员变量与成员函数里定义了一个静态变量,这两个静态变量有什么区别?
-
不希望类对象发生拷贝,该怎么做?
-
C++多线程的锁有哪些?
-
这几个锁使用上有什么区别?
-
服务器上有一个对象,这个对象里面有各种不同的变量,我要怎么比较好的在客户端上复现这个对象?
-
怎么实现一个洗牌算法
-
单向链表逆序输出
-
如何找到链表环的第一个入口
-
红黑树的特点?为什么要这么设计?
第二个面试官的问题:
-
为什么要写STL这个项目
-
sizeof(vector)在64位机器上会是多大?
-
vector重新分配会触发构造函数吗?会触发析构函数吗?
-
C++11了解什么
-
你最有影响的是哪个?
-
auto是在什么时候推断出类型的?
-
左值右值的概念
-
智能指针了解过吗
-
它们是线程安全的吗
-
找工作是特地找游戏行业还是都找?
-
一个消息是如何从一台机器到另外一台机器的吗?(可以基于5层协议讲一下
-
LRU是如何实现的?复杂度是多少?
反问环节:
-
上一面的情况是否属实?工作地点、项目组之类的
-
技术栈除了C++还有什么?
跟上一面差不多
-
项目组的规模大概是多大?
x12大概是30多个人,服务器有4个
x6这边是200多个人,服务器有十多个
-
带人的制度是什么样的?
可能没有特别具体的带人制度,进来直接进项目组,还是要看你进的项目组的是什么样的。
-
这面的表现如何?
我们也会横向比较。这个对你来说,你自己也有数。