游戏逻辑思想
上QQ阅读APP看书,第一时间看更新

9. 从面试的角度看面试

我们这一节会看到一个简历里面的部分内容,从这里面我们来看如何面试以及如何应对面试。

我们在应届生简历中会看到一个技能栏目:

1. 熟悉javascript

2. 熟悉白鹭

3. 熟悉photoshop

4. 熟悉html

其中的第三点是不该写入的,因为它不是一个程序技能,写进去反而是代表了对游戏技能认识的不足。另外白鹭引擎中最有开发效率的是typescript语言,在上面中列了在工程项目中基本不会用到的js以及html,这表现出来的也是对技能认识的不足。

接着来看实习经历:

接触了P2物理引擎以及粒子系统,了解json等数据结构,各种精确碰撞,矢量绘图。学习了TextureMerge并且使用它进行合图切图。熟练使用工厂模式进行游戏开发,也遇到和很多没有遇到过的问题。

上面的内容从一个面试官的角度可以这样归纳:

1. 了解物理引擎与相关碰撞

2. 了解白鹭相关工具与使用

3. 了解一些设计模式

4. 整个实习经历能提高能力

那么从上面的几点,我们可以提一些问题来考察他的能力。

1. 如果不使用物理引擎,怎么判断2个圆相碰撞?

2. 白鹭有哪些工具提供给开发者使用?

3. 合图有什么优点,有什么缺点?

4. 你还了解哪些设计模式?

5. 工厂模式应该在什么时候使用?

6. 实习过程遇到问题是怎么调试的?

7. 如果有个按钮点击了没响应,如何快速找到问题?

结合之前的技能栏目,还可以从语言,引擎层面延伸一些问题:

1. typescript 与 javaScript的区别是什么?

2. typescript中用的最爽的是什么,最不爽的是什么?

3. exml是什么?

4. [] 与 {} 有什么区别,分别什么时候使用?

5. 数组与字典的查找速度哪个更快,为什么?

上面的部分主要是针对简历问。当我们在面试一个新人的时候,更多的是看潜力和态度。如果要看他的潜力,我们需要准备更多的问题去尝试了解面试者对技术的热爱以及对知识的热爱。面试潜力的方法如下:

1. 提问

2. 对面试者的回答进行分析,补充。以补充后的信息继续提问。注意这边的问题应该是面试者通过当前信息进行思考能够回答或者部分回答的。

3. 针对每个问题,给足时间。重复2的操作。

4. 观察他对问题的思考角度以及思考耐心。

5. 在最后离开前,让他再次思考对项目以及团队,公司的期待。

通过上面的不断的要求面试者思考,思考,再思考。我们可以尽可能得出面试者对问题的处理态度,这个态度决定了他是否能在将来遇到问题的时候自我成长。

除了面试初级的工程师,我们还会面试中级,高级工程师。中高级工程师的面试分为2个部分:

1. 基础能力。当看到简历上面写着熟悉网络编程,我们就可以深入的问TCP的握手以及断开连接的过程。比如问TCP需要几次握手,为什么是3次?

2. 逻辑能力。大部分工程师去到公司还是写逻辑的,所以逻辑部分也要重点问。比如说如何实现一个关卡系统,如何跨服,如何分线。

这些内容也是本书的主要内容。

3. 硬核能力。硬核能力大部分是上线的问题,以及一些比较难处理的问题。甚至是一些语言交互,热更新等问题。这些问题往往伴随着很多限制。比如说线上服务器不响应网络请求了,如何排查?

作为面试者,遇到不懂的问题多思考就好。确实不懂也没关系,因为很正常。如果换位面试,对方也是很多不懂的。因为有限的时间内,大部分人的技术可达范围都是有限的。要获得超出一般人对代码的认知,多半是通宵熬夜熬出来的。