应聘引擎程序需做哪些准备

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jxw167/article/details/84944719

每个人进入企业都面临面试这一关,不同的职业面试的内容是不同的,即使都是IT游戏行业,也分多个职业,从技术角度讲,有客户端,服务器,引擎程序。它们面试的内容也是不同的,工欲善其事必先利其器,要想进入某个领域必须武装好自己,不打无准备的仗。下面就给读者分享关于面试引擎程序的一点心得。分别从简历,面试内容,学习,心态四个方面给读者介绍。

  • 简历

简历是门面,相信每个面试者都写过简历,应聘引擎的程序员在简历中最好能体现自己以前做过引擎编写工作,或者使用某个开源引擎做过项目,这样可以为你加分,毕竟每个职业都喜欢有经验的开发者。简历写的项目内容介绍大概就可以,细节方面留给与面试官交流,简历中的内容自己能够完全掌握的,否则就不要写的太多,以免夸大其词,弄巧成拙,做人还是要实事求是的好,毕竟这个关乎态度问题。比如你在项目中实现了HDR,Blur,Bloom渲染效果,那就把这三个写上,要求自己对这三个渲染算法非常清晰,因为现在的技术网上都是,直接拿过来复制,粘贴就可以,但是作为搞技术的我们,还是要深入的研究一下它的实现算法,这样一旦出现问题或者需要优化,我们能快速的找到原因。总之,简历的内容一定是自己能够掌控的,切记夸大其词,胡编乱吹。

  • 面试内容

很多人在论坛中也问过我这方面的内容,笔者为了获取现场第一手资料,参加了国内一些知名的IT公司的面试,应聘公司的资深引擎程序,主考官有公司的引擎负责人或者技术总监出面面试,这样就增加了跟大公司接触的机会,可以进一步了解他们对引擎程序的需求,当然也可以看到自己的不足之处。资深引擎的工作主要是对游戏引擎模块的编写以及维护,同时解决项目中遇到的问题或者项目组提的需求。这个可以在网上的招聘简历查看,引擎的编写离不开算法的实现以及Shader的编写,下面我就参加面试时,面试官问我的问题整理如下,如果开发者想去大公司应聘引擎研发,下面的问题必须要掌握。
问题一:HDR技术使用的核心算法是什么?如何实现HDR?
问题二:形成地形的算法有哪些?四叉树与八叉树的区别是什么?八叉树在地形中是如何使用的?如果场景改变,八叉树是否发生改变?如何改变?
问题三:Lua与C++是如何结合的?具体实现原理?
问题四:顶点着色器与片段着色器的区别是什么?比如绘制一个三角形三个顶点的颜色是否可以在顶点着色器中计算?顶点着色器是否可以进行颜色的计算,它跟片段着色器相比效率如何?
问题五:前向渲染和延迟渲染的区别?延迟渲染是如何实现的?
问题六:建筑物场景的优化算法有哪些?如何实现?
问题七:实时阴影渲染有哪些算法?各个算法实现思路。
问题八:以前使用过的引擎在PC端最多支持多少三角面片?
问题九:针对大场景的加载?有哪些加载方案?
问题十:项目的优化方案有哪些?举例说明,先优化CPU还是GPU?
问题十一:针对Shader的优化有哪些?针对不同的机型需做哪些优化?
问题十二:介绍SSS渲染实现原理?
问题十三:C++11的特性以及数据结构中的排序算法介绍
问题十四:Shader渲染出问题时,有哪些工具辅助我们检测?
问题十五:引擎的内存管理方案。
问题十六:合并模型的优缺点及注意事项
问题十七:Blur和Bloom的实现原理
问题十八:抗锯齿实现原理
问题十九:Lightmap实现原理

未完,待补充中。。。。。。。

  • 心得

通过上面的面试内容可以看出,公司需要的引擎程序对算法有一定深度的认识,并不只是大概了解,而且既有深入的问题,也有比较基础的知识,更有项目的实战经验,这些问题我们在项目实现过程中都会遇到,有些我们可能并不关心,只是一掠而过。如果读者想从事引擎开发,对于引擎使用的技术必须深入理解,所学的知识能够运用到项目开发中,项目中会出现各种问题,在解决项目的问题中收获成长,上面所列的问题,我们不要局限,可以举一反三,把知识点再扩展出去,如果你准备的不是很充分,建议不要急于去应聘引擎程序,先打好基础,好好准备准备。面试官招聘你是让你能够快速的帮助公司项目,所以他会对你的技术问的比较详细,这样他通过你的回答能够看出你对渲染技术掌握程度。另外,引擎程序面试的问题,基础知识问的相对来说比较少,大部分都是与技术实现相关的,开发者可以在这方面多下点功夫。

  • 学习
    无论做什么职业,我们都要不停的学习,大家知道,打篮球都会有新秀墙,就是到了一定的时期,球员的得分能力下降,这是因为对方已经把你以前运用的技术研究的很透彻了,需要球员自己做出改变的时候了,如果不改变就会后退,沉沦,一蹶不振。同样,我们在工作中也会遇到瓶颈,感觉自己能力一直没有提升,不知道学习什么?很茫然,满足于现在的状态,不思进取,固步自封,认识不到自己的缺点。遇到这种状态时,我们要学会自己调整,而不是沉浸其中,我的建议是可以跟以前的同事或者同行圈子里的人员互相聊聊项目或者技术的事情,拓展一下视野,在聊的过程中就会发现自己感兴趣的技术点,一方面可以跟同事交流,另一方面可以自己学会查阅,比如一些好的技术论坛,知名的IT网站,在查阅的过程中又会遇到新的技术点,这样就可以不断地拓展自己的知识面,当然查阅书籍或者网上资料必须要跟现有的项目相关,这叫学有所用,还有一招学习技术的方法,可以去应聘,去一些行业比较知名的公司,通过跟主考官聊,也可以发现自己的不足,进而去弥补,这也是学习的一种方法,也可以通过这个机会考察一下公司,为以后自己跳巢做准备。

  • 心态

技术面试只是帮助自己提升技能,不要有过度的心理负担,即使面试不上,只能说我们跟公司没有缘分,并不能否定我们的技术水平,或者说我现在还达不到公司的要求。不必灰心,查找不足,弥补短板,继续寻找下一家,俗话说“不经历苦难,怎见彩虹”。很多人一旦面试不上感觉心灰意冷,看低自己,贬低自己,其实大可不必,是你的终归是你的,不是你的,与你无缘。面试一定要保持一个好的心态,当然也避免盲目乐观,要脚踏实地,平和心态,要相信金子总会发光滴。我们去公司面试也不要抱着必须要进这个公司,可以想着,我先了解一下公司,因为我们应聘公司,跟公司是双向选择,互相看得上才可以成交。面试,不仅仅只是技术面,我们还可以通过面试官了解公司项目情况,团队配置,盈利情况,公司的文化氛围,加班情况等等。我们去一个公司还是要想着长远发展,不是一去了公司就开始裁员,所以心态很重要,放松自己,不要给自己过多的压力,这样很容易发挥失常。
又到年底了,很多想跳巢的程序员开始准备面试了,最后预祝想从事引擎研发的程序员,能够找到自己满意的公司。

  • 总结
    应聘技术,也需要自己不停的总结经验,每个公司都有自己的面试风格,有时会遇到技术官面试我们的问题不在我们掌控范围内,实时求是的回答,不丢人。面试也需要技巧的,可以把话题引到自己擅长的技术中,掌握主动,这些需要多经历一些面试积累经验。

没有更多推荐了,返回首页