终于到最后一篇了,这一篇主要写的是我面试过程的总结。可能也是很多人比较关心的一部分。再次声明我的经历比较特殊(985本科机械专业转行),我的经验不一定适合所有人,主要面向三年以下的客户端开发岗。
关于投简历
前两篇文章已经讲了怎么写简历,怎么选公司。这里说一下怎么投简历。首先,内推是最好的方式。有认识的人给你内推,你能从他口中问出更多公司的情报。如果你简历太烂,内推的人可能会直接给你pass掉省掉你后续流程。如果简历不错,可以很快通过并约上面试。而且内推通常有内推金,你甚至可以和内推人约定好内推金分成。
除了内推外我主要使用Boss直聘。只要把简历放上去就会有很多人来找,然后你挨个挑就行了。需要注意的是对方能看到你的已读状态。如果你已读不回,对方是会知道的。不读的话也是可以在列表上看到对方公司名字的。所以我的做法是对于中意的公司但是现在还没有做好准备投简历的话,先不看对方的消息。等想投简历再读消息。
对于你想去的知名公司,如果对方根本没有来找过你的话,这种情况投简历大概率是没有用的。因为hr每天都会在boss直聘上看很多简历,如果想要你的话早就会来找你了。
尽管上篇文章已经说了,我觉得我需要再强调一下,投简历的频率不宜过高(除非你已经确认离职)。我推荐的面试频率是一个月面一到两家,每个月请假不要超过3次。
关于猎头
把简历放在招聘网站上有一个不好的地方就是会被猎头找上门来。像我们这种工作经验不是很长的人来说,我认为不需要找猎头。猎头把你推进去,是靠提成来赚钱的(一般是你年薪的10%)。对方帮你推的基本都是你本来就能进去的岗位。猎头通常是跟一些知名中大型公司合作,对于一些初创的小公司还是需要你自己找的。
还有一点就是如果遇上无良猎头,他会把你的个人信息到处泄漏。 有些更过分的,直接把你简历挂到其他招聘网站上。笔者曾经遇到过把简历给了一个猎头,结果短短两三天内,就有几十个猎头来联系我,我一问才知道我的简历在我不知道的情况下放到了另外的招聘网站上。
当然也不是没有好猎头,笔者也遇到过好猎头。好的猎头会根据你的简历还有你的个人情况给你推荐最合适的岗位,还会告诉你各大游戏公司里项目组内部的情况,有的甚至在面试前会给你一套神秘的面试题。而不是上来就是"xxx公司,有了解过吗"。(拜托,现在网络这么发达,你们说的xxx公司我早就在网上看到过了。你们能不能搞点独家的情报?)不过这种好猎头可遇不可求,想要搞到这种猎头的联系方式还是靠朋友推荐吧,不推荐自己去招聘网站上瞎找。
关于远程面试
因为笔者像换个城市发展,所以面试的岗位的工作地点跟我现在的工作地点都不在一个城市。因此都是远程进行面试。远程面试基本上就是下个对方指定的软件,然后在面试时间输入房间号进行视频面试(最好提前10分钟就进入房间,因为有的软件需要你提前注册账号)。或者是直接电话面试。 视频面试的话推荐使用手机就可以了。
还有远程面试的话几乎是没有笔试环节的。这也是我劝大家不要刷太多leetcode题的原因。
关于薪资
在面试的最后阶段一定会涉及谈薪资。谈薪资也有很多可以说的。那么该要多少薪资才合适呢? 当然你要是足够牛逼可以随便要,这种牛人应该不会来看我的文章,我也没什么建议能给你的了。要多少薪资合适需要综合对方公司在招聘网站上提供的薪资范围、你当前的薪资、对方公司工作强度、面试情况、当前手头有没有其他offer、以及你对offer的满意程度等几个方面。
- 通常来说,你要的薪资不应该超出对方能开的薪资范围。
对于普通的候选人,hr开的薪资不会超过中位数。(比如图中14k到20k,那么17k左右可能是对方会开的薪资)。
- 你当前的薪资也会影响下家给你开多少钱,没有特殊情况的话一般最多给你涨50%。如果你当前薪资比较低的话就比较吃亏了。
- 根据前几轮的面试情况能大概判断出对方是不是非常想要你。比如你的学历或者技术等方面都远高于对方的招聘要求,前几轮技术面也非常顺利。那么你可以多要一点。甚至可以突破当前薪资的1.5倍。
- 对于加班多的公司我们应该多要点。根据我的计算,996的加班时间全部算加班工资的话,那么同样的时薪,996的月薪约等于965的两倍。 所以如果你从一家965公司跳到996公司,工资没有两倍以上的话,你的时薪其实是降低的。
- 手头有没有其他offer非常关键。在hr面中,对方经常会问你有没有其他在谈的offer这类问题。这个问题如果你答没有,能提高你拿到offer的可能性,然而对方会觉得你很想来从而有机会压低你的薪资。如果你回答有,对方可能会觉得你不是那么想来从而offer泡汤,也可能觉得你不是很想来所以要加薪把你要过来。如果想利益最大化,就要分情况回答这个问题,如果你不是很想去,就可以答有,如果你很想去,同时又能忍受薪资被压,就可以答没有。当然也可以像我一样实话实说,如果薪资被压大不了不去就行了。
- 对offer的满意程度影响你要的薪资。这个上面就说到了,如果你特别想去一家公司,薪资可以稍微要少一点。当然没有必要少太多。找工作和谈恋爱有一些想通的地方 (说得好像我谈过恋爱似的),就是不要当舔狗。记住你和hr是平等的,你担心拿不到offer,hr同时也担心候选人跑了。候选人跑了会浪费面试官时间不说,还会影响hr业绩。
总的来说,你的能力是否高于对方的招聘要求和手头有没有其他offer都是你可以要到高薪的因素。
笔者曾经面试一家小公司,技术面答得非常好,然而hr一开始开的薪资只有我当前薪资的1.3倍,我表示不太满意。第二天直接告知对方我已拿到其他公司offer暂不考虑对方了,没想到对方hr直接开到了我当前薪资的2倍左右。虽然我最后还是没去就是了。因为我觉得薪资不是衡量一份工作好不好的唯一因素。我有自己的职业规划,两家公司来比另一家从长远来讲更符合我的职业规划。
面试总结·上
下面我会按照时间总结我面试各家公司的经验,我再提醒一下,背面试题是没有多大用的,重点在于思考面试官的出题思路。
1. 米哈游
米哈游我是靠内推投简历的。米哈游经常能看到他们的人在内推,搞个内推还是很容易的。给内推人简历后差不多一个礼拜不到就能约上面试了。
一面:
上来就问了topk问题,还问了随机数范围扩展的问题。还有unity底层的aot和jit是什么东西,unity工程里特殊文件夹。另外挑了我简历上的spine相关的东西,问了点spine的基础,问的不深。总共在半小时左右就结束了。
二面:
在一面两个礼拜后接到了二面的通知。推测是一面答得不太好,但是他们又缺人所以捞了起来。 这次接着问了spine动画的东西,因为我简历上有写spine。问了一个很细的问题:动画上有关键帧,在播动画的时候如何知道当前时间应不应该触发这个关键帧。答案是记录上一帧的时间,如果关键帧落在上一帧和这一帧的范围内,说明应该触发。
然后问了spine相关的项目经验,诸如你们spine是这么这么用的,为什么不那么用的问题。 然后问了网络协议的问题。大概是你们项目使用的是udp还是tcp,知道kcp吗?(kcp是一种改良的可靠有序的udp,具体你们可以百度) 接着问了多线程的问题。因为当时面的时候完全不会多线程的东西,所以没有答出来。最后面试依旧是半小时左右就结束了。
最后面试当天结束后收到邮件告知没通过。
总结:
米哈游作为我今年第一家面试的公司,可以说答得非常垃圾。这也跟我在公司里呆了两年从来没有出去面试过有比较大的关系。总结一下经验教训:
- 经典的算法题需要准备。topK是一道经典的数据结构算法题,对于这种题目需要答出多种解法以及每种解法的复杂度分析。
- 基础知识不扎实。像我这种转行学编程的最大的毛病就是基础不够扎实,和计算机专业出身的有天壤之别。
- 对使用的工具不够了解。面试问的spine的问题,其实只要把官方文档看一遍就能懂得差不多了。
- 缺乏对项目里技术方案的思考。典型的知其然不知其所以然。只是知道它是怎么做的,不知道为什么这么做,也没有考虑过和其他纵向方案的比较。
2.心动
心动有两个面试官来面试,一个是技术另一个像是不懂技术的制作人。基础方面问了网络协议。物理方面问了两个高速物体连续碰撞检测怎么实现、不规则物体的碰撞检测。UI方面问了UI和特效的显示层级处理。Lua方面问了很多,为什么使用xlua或者tolua、比较一下这两个方案、c#和lua之间交互的原理。制作人问了一下剧情系统要怎么设计,都会包含哪些功能。
面试完之后让我回去等消息,此后再也没有了任何回复。
总结:
心动当时的面试时间和上一家米哈游没有差多少,所以上一个我面试的毛病这次还有。总结一下经验教训:
- 对lua不够了解,没有思考不同技术方案的区别。之前用lua只会在xlua或者tolua这种现成框架上写lua,不懂得它们是怎么和c#之间交互。后来把 《Lua程序设计》 看了一遍才懂。
- 物理方面,会考到各种图形的碰撞检测算法。比如圆形和矩形相交,判断点是否在多边形里等等问题。还有SAT分离轴算法肯定要懂的,这个在 《实时碰撞检测算法技术》 这本书里有非常详细的讲解。
- 对于程序来说,需要玩一点游戏。现在应该没有完全不玩游戏的程序员吧?也不需要你像策划一样阅历丰富,至少玩过几款经典单机、经典网游也就够了。
3.b站
b站是一个制作人直接来面我,制作人是研究生刚毕业不久,做的是他在学校里就开始搞的独游项目,项目组除了他以外就没几个人。因为我的项目经验和他要做的游戏高度匹配,所以也没怎么聊技术,聊了一下他那边的情况就说要我了。后来因为薪资不太达到我的要求,加上项目不感兴趣就没去了。
后来又找了不少人打听了一下b站内部游戏研发部门的情况。b站游戏研发部成立有相当一段时间了,不过总体来说研发能力不太行,目前还没有成功的游戏。我还打听到b站内部砍掉了不少研发很长时间的项目。总之不推荐去b站做游戏。
4.凉屋
凉屋在面试前投简历的时候需要附带自己做的游戏。这个游戏不是你在公司的项目,也不是你的技术展示项目。而是能表达你设计水平,有一定游戏性和创意的游戏。这个要求有点“奇葩”,但是本身凉屋就不是一个“普通”的公司,它是独游公司,独游公司招人除了技术外通常都会一些其它的要求(这也是独游公司经常招不到人的原因之一吧╮(╯▽╰)╭)。
简历过了之后是凉屋CEO李泽阳来面试,问的全部都是基础,因为凉屋进去后需要程序员自己设计游戏,所以普通游戏公司的项目经验并没有什么用。
面试的问题大部分都很简单我记得不是很清楚了,我记得的有引用类型和值类型的区别、为什么要拆箱装箱、空间变换矩阵包括旋转矩阵怎么写、w分量有什么用、向量点积和叉积。
最后顺利拿到了offer,薪资虽然比其他独游公司高了一点,但是和做商业手游的公司还是有点差距,加上在深圳有点远,最后就没去了。
总结:
凉屋是一家典型的独游公司,它的面试和其它公司有比较大的不同。总结一下成功的经验:
- 基础比项目经验重要。独立游戏公司做的游戏和商业游戏很不一样,所以普通的项目经验是基本没有用的。
- 独游公司会考察你和公司的相性。需要你对独立游戏有一定的了解,对于对方公司的游戏最好也要玩过。像进凉屋这种做roguelike的公司,至少你得玩过《以撒》、《死亡细胞》、《传奇法师》、《挺进地牢》、《废土之王》等经典roguelike游戏吧,最好你还是个《元气骑士》资深玩家。
自我提升阶段
上半年面试的这几家,除了b站过于不靠谱,凉屋因为本身我对独游比较了解,心动和米哈游的面试可以说是惨败。所以在面完了这几家后我就停止了投简历,开始漫长的个人提升之路。这几个月我做了几件事:
- 看公司项目源码,看看有没有什么牛逼的技术点可以让我写到简历里的。
- 补各种基础知识, 计算机组成原理、算法数据结构、网络协议。
- 坚持写博客,连续写了几个月,平均每个月两篇以上长篇博客。
- 关注一些热门游戏,看各路游戏自媒体的文章和视频(游戏茶馆、游戏新知、游戏葡萄、触乐、BB姬、STN、白痴毛、王老菊等一大堆),了解行业动态。
- 游戏该打还是要打的,(劳逸结合嘛)。手机上玩的比较多的是《少女前线》、《公主链接》、《明日方舟》和《原神》。steam上玩的有这些吧,除了《史诗战斗幻想5》花了100多个小时,《超时空方舟》打了40多个小时,其他基本都有20个小时的游戏时长。
面试总结·下
时间来到了九月份,俗话说的好,金九银十嘛。所以从九月份我又开始投简历了。
5.网易 上海某事业部
一面:
一面上来就问了项目,一点没问基础。主要问了我简历上的帧同步架构和物理系统。物理系统方面,因为之前项目用到的物理系统是公司自己写的,所以问得很深。这方面因为我之前已经看过了公司的源码,并且自己还写了一遍改良版的,所以回答得还不错。(关于如何自己写一个简单的物理系统,我也分享过:【物理篇】从零搭建2D物理系统①)具体问题包括网格法和四叉树都是怎么实现的,两个算法各有什么问题,四叉树怎么改进,还有碰撞检测算法等等。帧同步没有问的很深,基本上是介绍一下帧同步,以及遇到了的一些问题怎么解决,比如说卡顿、数据传输、掉线等问题。
因为事先有准备一面答得还算不错,很快就安排了二面。
二面:
二面依旧没问基础,只问项目。这次很深入的问了帧同步的东西。包括为什么要使用帧同步,为什么要用ecs,为什么要用预测回滚,除了预测回滚还有没有其他方案解决卡顿的问题等。 这次的面试有一两个问题没答上来,最后的结果是没有通过。面试官评价是有一定潜力,但是深度不太够。
总结:
网易这次的面试完全不问基础让我挺意外。总结一下失败经验:
- 对于简历上写的东西思考得还是不够深入。还是我第一篇文章说的那三大问题:怎么做?为什么这么做?为什么不那么做? 详细来说就是简历上写的技术方案你要十分了解,能够知道该技术方案遇到的问题以及怎么解决,还要与其他技术方案进行比较。这个就是面试官问项目经验的思路。所以你必须把可能会问的的问题都提前准备好。
5.5 网易 上海另一个事业部
上次面试虽然没过,但是不算太差,所以hr又把我推给了网易的其他事业部。
一面:
这次面试只问基础,是我遇到过的问基础问的最难的一次。首先是数组和链表的区别,插入、删除复杂度的分析。算法题问了用栈实现队列。又问了红黑树和B+树。到这里其实还好。接着开始问起了计算机组成原理和操作系统,包括虚拟内存和物理内存,动态链接和静态链接,cpu多进程调度算法。到这里我就完全不会了,最后面试毫无悬念的没过。
总结:
这次的面试问到了计算机组成原理的知识,也是我之前完全没有准备的部分,所以失败得很惨。总结一下失败经验:
- 计算机基础知识很重要,光准备算法和数据结构是不够的。 这方面的知识小公司不怎么考,不过大公司还是可能会考的。如果你像我一样也是非计算机专业转行的,这部分基础一定要找时间补起来,就算不为了面试了解这些知识对你也是很有帮助的。
6.腾讯 上海某工作室
说实话以我的实力我觉得我进不了腾讯,不过当时腾讯的hr在boss直聘上找到了我,所以我就去腾讯试了试。只要是对方先找上的,投简历过去几乎都能约到面试。
一面:
一面也是只问项目,不问基础。一面问的关于项目的问题我全部都准备过了,所以总体下来非常顺利,没什么可以说的。面完第二天就约第二场面试了。
二面:
二面上来先发了一个笔试题过来,需要40分钟在自己电脑写完,然后再发过去。笔试题是腾讯内部自己出的,题目是给了几个数据结构,按照一定规则排序,题目有c++代码(所以游戏程序最好还是会点c++哪怕你只用unity),答案可以用你熟悉的语言写。做起来不算太难,也就leetcode简单难度的水平吧。需要注意审题,以及良好的代码习惯,毕竟这题完整写完要300多行。最后我因为审题错误答得不太好,后来面试官让我面试结束后重新做一遍给他发过去。 笔试题做完之后依旧是问项目,依旧没有什么可以说的,问的问题我都准备过了。面完了之后我在40分钟内重新写了一遍笔试题给对方发过去。
过几天通知面试通过了。
三面:
这一面就是hr面了,hr面也没什么好说的。常见的会问的问题网上能找一大堆,诸如为什么考虑我们公司,自己的优点和缺点,工作中遇到的问题,领导怎么评价你的、未来的职业规划等等。值得一提的是hr还问了一下你最近玩什么游戏,喜欢什么游戏之类的话题。 目的应该是考察你对游戏行业的了解程度。 要回答这种问题很简单,你需要提前把对方公司做的游戏都了解一下,然后顺带了解一下他们的竞品。(比如我当时就简单说了一下天涯明月刀和一梦江湖的区别。)
四面:
在三面后两个多礼拜没有任何消息,就在我以为凉了的时候,对方过来联系我了。最后一轮面试是另一个hr面,跟上一轮hr问的问题差不多,还问了什么时候可以去报道之类的。最后顺利拿到了offer。
总结:
腾讯的面试没有我想象中那么难,一方面可能是因为我之前面试过很多公司,经验已经很丰富了吧。另一方面可能是运气好吧,我推测他们可能正缺人。
7.番糖
番糖是一家做二次元和女性向游戏的公司。上一个项目是《食之契约》(不是《食物语》),不算太火,但是玩家间口碑还不错。正在做的项目是《猫之城》,是一款3d回合制赛博朋克+二次元+猫娘题材游戏。这个游戏在taptap上关注数挺高的。
番糖也是靠人内推我才知道这家公司的。 因为笔者对二次元有点兴趣所以就去试了下。
一面:
一面还是只问项目,没问基础。依旧是很顺利,面试问的问题全部是我准备过的。毕竟前面都面过那么多家公司了。最后毫无悬念的通过了。
二面:
二面是老板面。问的问题都是hr会问的常见问题。
三面:
三面是hr电话面,问了期望薪资,什么时候去报道之类的。当天就给了offer。
总结:
番糖这种普通的中小型公司问的问题比网易腾讯之类的简单多了,整轮面下来没有什么值得说的,不过给的薪资自然也没有很高。之所以投番糖是因为腾讯当时等消息等得实在太久了以为没戏了。值得一提的是番糖从约面试到给offer整个流程非常快差不多3天,这倒是给我留下了不错的印象。本来我已经想去番糖了,然而腾讯这边也来了消息。尽管番糖后面还给我提了不少薪资,不过我最后还是拒绝了。
面试没通过之后怎么办
面试没通过是很正常的,重要的在于需要知道自己为什么没通过。如果你面试答得本来就不好拿那就很简单了,自己缺那部分知识点有针对性的补。如果感觉自己还可以,但是面试没过可以问hr自己哪方面的能力不太行,希望以后还有机会跟贵公司合作。不要怕不好意思,反正你都没过了还怕啥。一般hr都会告诉你你的不足在哪里。
还有一种情况,就是对方觉得你能力可以,但是不匹配这个岗位。这个时候也可以争取,就说自己很想进对方公司,对贵公司很感兴趣,自己的工作经历和经验在xxx方面是匹配的,希望能够再给一次机会。如果运气好,对方是会再安排一次面试的,把握好这个机会说不定就成了呢。
另外,即使面试挂了也不要删除对方联系方式,除非你十分确定以后肯定不去对方公司了。约面试肯定会拿到hr或者面试官微信,都是你宝贵的资源。而且就算对方把你挂了,过一段时间又要你了也说不定,笔者曾经遇到过当时说面试没通过,过了三个月又问我愿不愿意过来的情况。
写在最后
上面就是我能说的这大半年来我的所有面试经验了。这篇文章也是“求职面试指南“系列的最后一篇文章了。如果说还有什么能说的,那就是相信自己的心态了。
如果觉得我写的不错的话记得点赞、关注、分享。想转载的话需要跟我说一下,并且要标明出处。最后祝大家都能找到心仪的工作!
- 水曜日鸡,喜欢ACG的游戏程序员。曾参与索尼中国之星项目《硬核机甲》的开发。
CSDN博客:https://blog.csdn.net/j756915370
知乎专栏:https://zhuanlan.zhihu.com/c_1241442143220363264
游戏交流群:891809847