最近找工作,面试了不少公司,在面试过程中确实发现了自己很多地方的不足,好在目前工作已经定了下来,终于可以总结一下了。
从宏观上来说,我的主要问题有两个:
第一个问题是基础非常差,我所理解的基础是类似于数据结构和算法、图形学、计算机原理、开发方法等和语言、平台无关的开发知识,出现这个问题的主要原因是——没有原因,就是没学过,所以需要解决的办法只有学习,目前计划在2019年结束前完成数据结构和算法与unity Shader的学习;
另一个问题是项目经验非常少,虽然游戏玩得不少,但是并没有接触过真正的游戏开发,不知道游戏开发的常用方法是什么,而解决这个问题的办法也只有一条途径,积累经验。
以上都是碎碎念,下面就开始正文吧。
一般而言,公司面试的套路大概也就是电话沟通→笔试→技术面试→人事面试,而技术面试和人事面试可能根据公司不同而有不同的轮次,甚至可能有的公司没有笔试或者没有电话沟通直接通知面试。
1.电活沟通
这一个过程多数情况下是简单了解一下意向,确认是否能参加面试,少数由技术部主导的招聘会简单问一些基础性的技术问题,不过一般都不会太难。
2.笔试
由于码农的特殊性,笔试还是相对常见的,尤其对于工作时间不够长的面试对象(比如我),很大概率会遇到笔试。
这个过程通常用于测试开发人员的基础,多数题目都相对简单,但如果基础不牢固,非常容易通过笔试测试出来。
当然也有一些令人非常无语的题目,例如我曾参加一个笔试,其中一个题目是问Unity自带的持久化数据类PlayerPrefs保存string数据的方法是什么,彼时我已经超过一年未使用这个类,平时开发极少使用这个类,只隐约记得是SetString但又感觉像是SaveString,终究是不敢肯定,最后二选一了事。
另外一种会令面试者难受类型是算法题,通常笔试都会有一些算法题,用伪代码实现即可,但是对于一些较为复杂的题目要手写出来还是很麻烦的。
最后,如果笔试做得不好,很容易成为公司打压薪资的有力武器,所以如果真的想入职一家公司,笔试功课还是要做好的。
3.技术面试
一般都是由公司项目的技术负责人出面沟通,具体沟通方式多种多样,在这个过程里可以学习到非常多的东西,对方也能很清楚地了解到你是否是他所需要的人,例如一个人对新知识的学习理解能力,以及拿到新知识后的应用扩展能力,不同公司对不同岗位的要求不一样,在这个面试中就会非常不一样,但只要不是招聘内容和岗位的实际需求差别太大,还是有方向的,只要认为自己符合招聘需求,认真沟通就好了,在这个阶段的面试通常更重于实际应用过程。
在这个阶段一般面试到最后HR都会向求职者询问“你对我们公司还有什么想了解的么”,这个问题其实很好答,例如“我在刚才的面试/笔试中有什么比较大的缺点么”、“您觉得我如果达到贵公司的要求,可能还需要加强哪方面的能力”,对于一个入行不久的人来说,也可以问“跟您聊了这么多,对于我自身的情况,您能否给出一些努力方向的建议”,等等。
4.人事面试
到这个阶段通常就与技术无关了,可能有的人事会了解几个简单的专业名词,想来震一震求职者,但只要对技术并不是非常地模糊并且确实有能力话,是不会有问题的。人事的主要目的一方面是了解一下求职者对公司的了解是什么,另一方面会了解一下求职者对薪资的需求。
先大致梳理一下流程吧,接下来主要写这几次面试过程里遇到的一些题目。