应届游戏开发求职路

 

“不拼搏,枉少年!”网易游戏程序员

写在前面:先介绍下本身的状况,末流985大学本科生一枚,全院人数200+,个人成绩排名在170左右(校招开始的时候仍有一科挂在树上,如今已经补考过了),英语4级。侥幸得到了几个游戏公司的offer,最后和网易游戏签约。“游戏”陪我走过了人生中最值得回味的时代。懵懵懂懂的童年,在面对这个复杂缤纷的世界,游戏成为我了解这个世界的窗口。《魂斗罗》,让我知道了什么是“合做”;《赤色要塞》,让我明白了什么是“任务”;《超级马里奥》,然我知晓了什么是“责任”……有太多的游戏,太多的记忆。游戏为我打开了一扇大门,一种新的方式去看待世界。正所谓人生如戏,只是咱们没有机会重来。因此我很热爱游戏!面试

废话到此为止,写这篇日志之类的东西,是为了分享游戏求职经验给学弟学妹们(响应某人的号召,哈哈),攒RP用的。算法

前期准备编程

按照惯例,各大IT公司会在大三下学期开展暑假实习生的招聘工做。这对要找工做的同窗来讲是很重要的,即便未来你不在你实习的公司工做,这实习经历也会给你加分的。有的学校会统一安排学生去某公司实习。若是你让你的简历更好看一点,那么去著名的IT公司实习是个不错的选择,传说中的BAT(百度、阿里、腾讯)。固然若是实力够强大,微软、GoogleFacebook之类的国际大公司更好。在实习招聘过程当中,你还能锻炼各类技能。这些技能在之后的应届生招聘中也有好处。前提是:你要有清晰的目标。你要有清晰的目标(工做岗位、工做内容、本身擅长)。你要有清晰的目标。你在实习以前了解本身的兴趣点是最好的,而后又针对性的复习知识,这样会更有效一点。固然,实习还没目标的同窗也不用担忧,你能够一边实习一边找感受。可是在应届生招聘的时候,你就要作出选择了。数组

请用半年的时间来面试本身。若是你不知道本身努力的方向,企业的招聘要求是一个很好的参考。相信你们对应试考试已经可以应付自如了,这里的招聘要求就是一个大纲之类的东西。从它你能知道企业但愿你能有什么样的技能,接下来的,就是努力了。在知乎上我看到过一句话以为很不错,“以大多数人的努力程度之低,根本轮不到拼天赋”。下面是网易游戏的招聘要求。网络


  第一条学历这种硬性条件咱们能够忽略(本科也行,只要你达到个人要求)。网易要求你精通C++(要求应届生精通,这绝对是HR写的),很明显他要求你的C++能力要达到必定的水准。通常来讲,你把C++ Primer》《Effect C++这两本书啃透,在面试上就不会有太大的问题。面试官也不会指望一个应届生可以“精通”C++。要对本身有信心,这很重要。接下来,你要熟悉数据结构、算法和操做系统。通常来讲CS专业相关的专业学生都会学习这方面的知识。可是不要觉得这样就好了,学了和会是两个概念。码农应有的觉悟就是要动手写代码。对于操做系统,课件就足够了。对于数据结构和算法,这须要真正的动手去写代码,动手去写代码,动手去写代码。《算法导论》你能啃多少是多少吧。对于非ACMer的学生来讲,练习码代码的能力显得尤其重要。线上的OJ系统是个不错的选择(著名高校OJ,我就不明说了)。对于找工做的人来讲,还有一个很棒的练习网站LeetCode。这上面有不少公司的面试、笔试题(我遇到过原题)。咱们不要期待原题的出现,更重要的能力、思惟的提高。在暑假我在上面刷了200题,收获颇丰,见识了很多好的题目和解题方法。这个网站是面向全世界的,因此有不少程序员在上面练习,他们会给出不少让人感到很是精妙的方法解题。至于后面的几点,这就须要经过一些事来体现了。好比你在学习、项目过程遇到过什么困难,你是怎么想的,你是怎么解决的?因此,好的项目经验也很重要。数据结构

      关于项目,对于大部分本科生来说是可遇不可求的。可是咱们不能坐以待毙,没有项目,创造项目也要上!针对游戏,尤为如此。你说不会美术,网上的素材不少;你说你怕侵权,仅供学习之用(不用发布出去);你说你不会作游戏,学啊!Unity3Dcocos2d-x这么好的游戏引擎。不要在意你本身作的项目有多小,感受多幼稚,你已经比那些没有的人领先了。路漫漫其修远兮,上下而求索。架构

      接下来就是加分项,针对游戏,那天然是程序员的三大浪漫之一的图形学了。没有捷径,啃书+写代码。其实我以为《OpenGL 超级宝典》、《游戏引擎架构》、《3D游戏编程大师技巧》这些书还不错。数据结构和算法

校招前最后一搏

      我假设你基础已经准备好了,在真正去面试以前,你没有实战经验,怎么办?高考以前咱们还有往年考题、模拟题呢!没错,就是练习重点练习高质量企业的往年笔试、面试题。从这些题中,你能够检查你知识点中的不彻底的地方。以及企业喜欢检查的知识点有哪些。你就能够针对性复习了。这个时候若是你有大面积的知识点不会,那么就是你前一个阶段作得很差了。这个时候只能经过一些临时抱佛脚的方法来弥补了。详见《剑指offer》《程序员面试指南》之类的书籍。ide

笔试

      笔试的成绩也是很重要的,不要忽略。对于微软、网易游戏这类公司,就靠难题来刷人。因此你们必定要作好准备。至于有多变态,你们能够去这个网站(www.hihocoder.com)看看。网易游戏和微软的招聘的笔试都在这个在线平台上。下面截图是2016校招的笔试的一些状况你们能够了解下。从这些中数据咱们能够直接看出一道题的难度。经过率:50%-100%难度为易,30%-50%难度为中,10%-30%难度为难,0%-10%难度超难。微软笔试题为2个半小时,网易游戏为3个小时。你们能够本身去试试。

  其余公司的笔试题我就不赘述了。总结:练、练、练。

面试

  总的来看游戏公司对计算机基础知识,好比计算机网络,操做系统,数据结构和算法,程序的连接装载等等都会有不一样程度的考查,另外就是对C++要至关熟悉。而二面的时候又会考查一些常见的游戏算法,对游戏引擎的使用和图形学基础并无严格的要求,不过有基础的话更好。

下面是我在面试游戏公司过程当中遇到过的问题,我不会给出答案(没有标准答案)。

C++

  • inline关键字是作什么的?具体说说?会对目标代码形成什么影响?它和#define 这个宏定义有什么区别?
  •  什么是多态?多态在C++中是怎么实现的?说说在C++中重写、重载和覆盖的区别。
  •  在C++中和CStruct的相同和不一样点。
  •  什么是虚基类?有什么用?
  •     C++智能指针有哪些?说说他们的区别,是怎么实现的。
  •  说说你知道的C++容器。vector这个容器是怎么实现动态扩容的?
  •     extern 这个关键字有什么做用?
  •  说说CC++强制转换有什么不一样?为什么?
  •  若是你来实现move函数须要注意些什么?

网络:

  • 简述TCP/IP协议的链接和断开状态转移。
  • TCP_NODELAYTCP_CORK这个两个选项有什么用?有什么区别?在什么状况下咱们会设置这两个选项?
  • Socket Server端的流程是怎么样的?什么是阻塞和非阻塞?selectpoll的区别?
  • 你知道哪些通讯协议能够被利用来DDoS攻击?

算法:

  • 将一个字符串转化为int类型(这里面陷阱不少,在面试时须要和面试官多沟通)。
  • 如何快速查找40亿数据中的那些重复数据?
  • 如何快速查找100万数据的最大的100项,常量空间?
  • 怎么快速删除一个数组中的为0的项,常量空间?
  • 在一个数组中保存的都是整数,只有一个数字出现的次数为一,其余数字出现的次数都为2,怎么快速找出这个只出现一次的数据,常量空间?要是其余数字都出现了3次,4次呢?
  • 如今咱们要作一个登录排队系统,你会怎么作才能使这个系统高效呢?要是这个系统可让VIP用户排到前面呢?须要在这个系统中快速查找一个用户,咱们使用什么样的数据结构才能知足以上要求?
  • 你知道哪些自动寻路算法?BFSA*有什么异同?在什么状况下A*BFS同样了?

游戏相关:

  • 简述OpenGL的渲染流程。哪些过程是能够编程的?
  • 在很大的场景中,有什么优化碰撞检测的方法?写一下空间八叉树的两个子叶节点的最低公共祖先的算法?
  • 普通光照模型你知道哪些?写一写?
  • 对于游戏模型的贴图,有什么优化的措施?
  • 骨骼动画是怎么实现的?你知到哪些插值方法?
  • 你在开发你的游戏过程当中遇到过哪些困难?怎么解决的?

最后还有一个小问题,是我在学习过程当中遇到的,给面试官讲事后,感受不错。我曾经写过一个排序算法的演示程序,在过程当中遇到一个问题,其余排序算法是本身写的,能够很容易的记录数据的变化过程,可是有关STL里面的sort这种排序算法就犯了难。你们能够想一想怎么作才能知道sort内部具体是怎么排序的。

上面的那些面试题,你不要指望会遇到原题。我没有给出答案,你们若是感受答不上来,能够问问本身是否是本身哪方面还欠缺。这些都是基础问题,答不上来就有很大可能那方面知识没有掌握好,继续努力吧。

一家之言,但愿你们都经过本身的努力能找到一个好工做!

                                                 --燃灯

相关文章
相关标签/搜索