作为技术面试官,我是怎样评价一个游戏开发人员的素质的

     很长一段时间,一直在负责工作室(某BAT下面)的客户端程序招聘,招聘工作已经进行了大半年,薪资不低,面过的程序几十个,但是最终成功发了offer的单手可数,在这过程中,pass掉了很多人,有技术总监,有大厂数年经验者,也有更多的打酱油的,HR那边可能觉得我们这边的通过率不高,究其原因,我想说现在的程序员很多,非常多,但是能够称得上研发者的确实很难找,能称得上有经验的游戏研发人员更是凤毛麟角,大部分的程序员确实满足不了我们工作室的最低要求。

     我们需要的是有身后计算机科学基础背景有想法聪明对游戏开发某些专业领域有完整知识体系的开发人员,而不是需要“写代码”的,现在很多人喜欢把程序员称为“写代码的”,我们从来就不需要写代码的,代码只是一个工具,我们需要的是代码背后的那个大脑。现在我想说下“写代码的”和做游戏研发的开发者有什么区别,也是我在技术招聘过程中最关心的东西,下面5点在面试过程中的比重从大到小。

     1.计算机相关学科的学历背景,或者即使没有计算机学历背景,也要有计算机学科体系的完整学习经历,基础知识在我看来是第一步,如果你不懂数据结构算法,不懂计算机体系结构,不知道怎么设计算法,不知道计算机软硬件怎么工作的,那写出的代码也是质量差的无效率的,你只是写出来了,但是在我看来是没有价值的代码,没有可维护能力和积淀性的,我从来就不相信一个没学过数据结构算法,计算机体系结构,编译原理,软件工程这些课程的人写出来的代码,那些很多策划改行的程序的程序员是不会到我这里一面的,所以来我们这面试的,无论你之前多牛逼,那都是虚的,一定要做笔试题,一纸笔试题直接看出基础能力,曾经见到技术总监不会写快排算法的,说太久忘了,那你来指导什么?用你的经验在这喝茶么?需要你来这里做什么?这不是笑掉大牙么?为什么我不招一个专业基础优秀并且有活力且成本低易塑造的年轻人,数据结构和算法设计是这里必须通过的。一句话,做技术的,太虚没用,用你的专业能力说话,在这里我们会偏向那些名校背景的人,因为经验上看,学历背景好的专业能力普遍非常扎实,这点我觉得网易现在的技术的一枝独秀,不得不说和他的校招只招清北浙交的策略有很大关系、

    2.游戏开发领域的专业知识,游戏开发有很多特定领域的知识基础,包括3D图形学,AI,物理,音视频,操作系统平台开发,业务逻辑系统,很少会有人把这些面面俱到,这里面每一个都需要几本书的系统知识去啃,但是我们只需要看到你在这里面某一个或两个上面有深入研究和经验,比如你非常通晓渲染,opengl D3D 各种shader效果,渲染优化都玩得很好,那就是一个加分,比如你非常善于研究ai,对行为树,寻路这些有深入的经验,也是很好的,如果对这些全都一知半解,那是不行的,我们需要的不是只是每个都懂一点的人,在游戏的专业知识领域方面,先做一个专才。

   3.聪明。   没错这是非常重要的一个衡量标准,开发者一定是这个世界上IQ最高的一群人,我很看重IQ,面对日新月异的开发工具技术的变革,聪明代表你有更快的学习适应能力,并能够对问题提出自己的一定见解和解决方法,这个很重要。

   4.工具的使用,工具是针对不同游戏项目的,比如你做unity,那要求你掌握unity编辑器,你做unreal,你做cocos,在我看来工具并没那么重要,一个基础扎实聪明的人对工具的掌握是很快的,甚至很多非程序员都能玩转工具,所以在面试时这个只占25%左右的比例,和我说你多了解多了解某个工具,那其实并没有那么值得炫耀,就像练功的外功和内功,我们更看重内功,工具是可以花时间弥补的,专业基础则很难,那需要悟性。我们现在主要招聘U3D的开发,对这块,我们会衡量简单的U3D编辑器基础,U3D 的一些深入的概念,比如优化内存,drawcall,光照系统,assetbundle包,资源加载,动画系统,GUI系统,还会深入的考察C#,LUA的开发的情况。如果面试者只是把unity当office用,那就在这块没有分数了,一个并不是很复杂的问题可以难到很多人:两个资源BC共用A,那么ABC如何打包?加载b的时候要怎样加载?加载好b之后哪些包卸载哪些不卸载?不卸载的何时卸载?这个问题答得不完整不能说你深入的研究过UNITY

   5 经验,经验在我们看来和工具差不多,这种依靠时间堆积的东西并不如专业基础重要,在技术开发来讲,10年经验绝对不是1年经验价值的10倍,经验多固然好,但那是在其他因素都一样的情况,一个聪明的名校毕业生,和一个10年经验做过10款游戏但是一直没有做过很多核心工作的程序员,我必然选择前者。而且关于经验,我们会把时间放在一边,先来剖析你所谓的经验多少是真正有价值的。首先,大厂大作的开发人员是加分的,这意味着你曾经同一些很棒的同事共事过,任何成功的产品都是有其成功的道理的(但是大厂的边缘发开人员则没有什么亮点,大厂往往把核心工作和非核心工作分的很开,一些非核心开发的人员很久接触不到主要研发工作,那反而是个劣势了),然后我会就着你的简历详细剖析你所做的工作,你说你做过寻路,那我问你A*算法原理怎样的,和navmesh有什么区别,A*在大型地图怎样优化,如果你答不出来,那我不认为你真正的做过寻路,你只是使用过工具而已,那知识不属于你,这一项经验我会清0,你做过战斗,那我会问怎样同步前后端的状态,怎样避免延迟导致的问题,怎样能够更好的表现打击感。所以经验绝对不是你做过什么,而是你详细的琢磨过什么,哪些东西真正的属于了你。所以很多10几年程序的经验开始很不屑一顾的坐在对面,说了一堆堆很著名的产品,这我做的那我做的,我要来当主程,那ok,问到细节一个也说不清楚,再加上基础的算法也都说你忘了,那没有任何意义,对不起,我喜欢刨根问底。


  说了这么多,我想说,现在的IT互联网领域,资本蜂拥,尤其是游戏开发,app开发,造就了越来越多的“”程序员“”,现在的“”程序员“很多,非常多,但是我想说研发者很少,并且如果你是研发者,你就一定会很值钱,游戏大厂大工作室的大门会一直为你敞开,我也想给其他负责招聘的技术同仁一个建议,就是无论面试职位高低,一定给他做个笔试题,有多少能力是不是会招到太水的,有时候一张纸就直接告诉你答案了,做技术不要太虚。


你可能感兴趣的:(杂类)