一、一轮电话面试
先是一轮电话面试,会问一些基础八股和项目相关问题,问的不深,时间在二三十分钟左右,具体问的什么因为时间太久,忘记了。。。
二、二轮视频面试
- 自我介绍
- tcp/ip协议是否了解?tcp三次握手?四次挥手?
- 如果三次握手的时候,第三次的数据包丢了,系统会怎么处理这个事情?
- 对于客户端来说两次握手已经进入连接状态,但对服务器来说还在建立连接,因为客户端已经连接完成了,正常来说客户端已经恢复了一些业务数据,如果这个时候服务器收到了这些业务数据包的话,会怎么去处理?这时会不会出现客户端发送的数据丢掉的现象?(因为这个时候服务器还在建立连接状态,客户端已经发送数据了,假设说是个登录协议,就会发送登录协议。对于底层来说,ACK是乱序的,有可能先收到业务数据再收到ACK包)
- 四次挥手的时候,假设有的客户端连上了服务器,有的客户端没连上服务器,并且服务器上有很多close-wait状态,出现这个情况该怎么解决?close_wait的状态是怎么产生的?
- http协议是否有了解?post与get的区别?
- protobuf是什么情况下使用的?如何做到的序列化二进制比较小的?是否看过源代码?如何把一个变成一个二进制?
- 项目如何实现的简单描述一下。
- 是否了解过开源的rpc框架吗?如何实现的?假设新加一些远程调用,客户端和服务端如何同步?
- go中slice和map的实现原理。slice和string的区别,go语言的map是否是红黑树?map是如何解决冲突的?
- 手撕代码:实现hashmap,包括创建,添加,删除,查重,结构体
- redis是否了解?redis中常用的数据类型?如果要做要一个排行榜用什么数据类型比较合适?
- mysql是在哪方面使用的?mysql的存储过程?
- linux有在哪些方面使用过?常用的命令有哪些?
- 有玩什么游戏?
- 反问环节
三、三轮hr面试(面试前需要完成测评)
- 自我介绍
- 毕业的第一份工作的选择上是怎么考虑的
- 整个校招是从秋招开始还是春招开始呢?
- 春招投递的时候是否有考虑过非游戏行业呢?不同行业之间的优先级是否有自己的排序?
- 未来工作的规划
- 对于c++方面的接受程度
- 从自己的了解和理解上,go和c++的区别是什么
- 平时游戏玩的多吗?玩游戏的时候有没有发现一些技术上的可优化的点?
- 作为一名优秀的开发者,需要具备一些怎样的核心能力?
- 有通过什么样的方式保持对新技术的了解和对困难的解决?
- 对于互联网和游戏行业的加班情况有了解吗?自己的接受程度是多少呢?
- 平时会通过什么方式去排解压力和繁重的心情?
- 目前手上有其他的机会吗?
- 和其他offer,做一个横向对比,会进行哪些方面的对比呢?
- 学校毕业相关的事情是否完成?
- 反问环节