原标题:[万字干货]Unity 游戏工程师求职面试指南!
游戏开发社招求职面试指南①——前期准备
前言
先说一下我的情况吧,我是 985 本科,大学学的是天坑专业机械制造。后来自学编程进入游戏行业,有三年左右的工作经验,一直在小公司工作,岗位是客户端开发。在今年上半年到年底,一边在职一边寻找合适的机会跳槽。到我写这篇文章的时候我面试了差不多六、七家公司。这几家公司按照面试顺序分别是:米哈游、心动、b 站、凉屋、网易、腾讯、番糖。最后拿到了一半的 offer,包括大厂的 offer。
鉴于网上的社招面经实在太少,大部分也只是停留在面试题的总结。而面试题这种东西,不同公司不同面试官考的题很可能是不一样的。但是面试官出题思路是有规律可循的,只要知道了出题思路就能在面试前预测出对方可能会问的问题,提前做好准备面试就能万无一失。
我这个系列文章会从 前期准备 、 公司选择 和 面试总结 三个方面来分享我大半年来的求职经验。第一篇文章的主要内容是 平时的积累、基础的巩固以及简历的撰写。
平时的积累
首先要知道的一点是,要想拿到满意的 offer 需要的是长期坚持的努力。首先,平常工作中要经常总结自己遇到的问题并记录。我会把这些东西分类并经常整理,下面是我笔记的部分截图。
当然只专注自己的工作内容范围是肯定不够的,因为每个人的分工不同,如果只做自己擅长的事情长久以往你掌握的技术会越来越窄。所以接下来要做的就是 看同事的代码。不仅能学到他们的技术,还能知道他们写的好或者写的不好的地方,有助于帮助你了解整个项目,日后改 bug 或者添加新功能也能更加得心应手。
看了一段时间以后,可以尝试 帮同事改 bug 或者做他们的活。在一些小公司里,程序之间并没有特别明确的分工,如果有机会能够帮到其他同事一定要尽力去帮,可以“偷”学不少技术。像我刚来公司那会,做的都是玩法相关的业务逻辑。后来渐渐地做了一些物理、动画、AI、音频、编辑器扩展等很多方面的工作。
看同事代码会持续很长时间,直到你对整个项目的架构了然于胸,对项目的核心技术点完全掌握。掌握的程度分三个境界:
- 知道怎么做?
- 知道为什么这么做?
- 知道为什么不那么做?
这也是面试官 考察项目经验 的主要思路。必须保证能够完美回答这三个问题。如果这三个问题答不上来的,可以去请教你的领导或者当时写代码的人。OK,接下来我以实际项目经验举例。比如我的上一个项目里使用了 带预测回滚的 ECS p2p 帧同步方案。那么根据我们刚才提到的思路,面试官可能会问的问题会有:
- 如何实现帧同步?
- 为什么使用帧同步?优点?缺点?难点?
- 为什么使用 p2p 不用 cs 架构?
- 预测回滚是怎么做的?为什么要用预测回滚?除了预测回滚外还有什么方式可以实现不卡顿的同步?
- 为什么用 ECS?
- 网络波动时怎么处理?掉线又怎么处理?
对于这些可能问到的问题,我会全部总结起来,每次面试之前都会看一遍。下面是我笔记的部分截图:
上面这个例子可能有点特殊,因为这个技术方案在国内没多少项目用过。我再举一个更常见的例子,就说 lua,大家做手游搞热更,基本用的都是 lua。我提几个可能会问的问题:
- 为什么用 lua?lua 跟其他热更方案比,有什么优缺?(比如比较 lua 和 ILRuntime)
- 用的是 xlua 还是 tolua 还是其他方案或者自己写的?理由是?-
- lua 和 c# 之间是怎么交互的?
- 使用 lua 需要注意什么问题?
也许有人可能会说,这些问题都是主程考虑的,我就是个搬砖的,想这些干嘛。没错,想这些问题对你目前的工作内容可能并没有什么帮助。但是,如果你想往上走,想升职加薪,你就要从比你目前的职位更高的角度去看待问题。应付面试我倒是觉得反而是顺带的。
如果项目处在比较早期的阶段或者项目没有什么可以学习的技术亮点,一定要利用下班时间自己找学习资料学习 , 图形学、引擎底层、性能优化 等都是不错的方向。
基础的巩固
经过上面的阶段后,面试时问到项目相关经验可以说已经没有问题了。剩下的需要准备对基础知识的考察。对于这部分知识,有些工作几年的人反而比应届生还答不上来。这部分包括:
- 语言基础
- 计算机组成原理
- 算法数据结构
- 图形学基础(这个是因为我简历上有写,如果没写可能不会问)
- 网络协议
基础知识的考察很多都是固定题目,上网能搜到很多,这部分最好都背下来。下面总结一下我被考察到的知识点:
- 语言基础:引用类型和值类型,GC 算法,字典的实现原理,Lua 和 C# 交互原理(《Lua 程序设计》第 24 章到第 28 章),为什么要拆箱装箱,堆和栈。
- 计算机组成原理:虚拟内存和物理内存,动态链接库和静态链接库,内存对齐,浮点数表示,多线程。(这些基础的东西大厂比较爱考)
- 算法数据结构:topk 问题,排序,红黑树和 B 树(这个很偏了,不会也没有关系,但是二叉搜索树还是得会的),数组和链表复杂度分析,用栈实现队列
- 图形学:渲染管线,空间变换矩阵,shader 优化
- 网络协议:比较 TCP 和 UDP,为什么 TCP 要三次握手及为什么四次挥手,如何实现可靠有序 UDP(TCP 和 UDP 几乎是必考的)。
答案我就不分享了网上都能搜到,要全部写完的话太多了,如果这系列文章看的人比较多的话我后面再单开一篇文章回答这些问题。
这里我推荐一些可以巩固基础的学习资料:
- 书籍:-
- 《CLR via C#》
- 《Lua 程序设计》
- 《计算机组成原理》
- 《剑指 offer》
- 《DirectX 9.0 3D 游戏开发编程基础》
- 《Unity Shader 入门精要》
- 视频 & 博客
- 极客学院·算法面试通关 40 讲(付费,总结了大量经典算法数据结构题,建议全部看完并练习)
- 极客学院·趣谈网络协议(可以免费白嫖 4 篇文章,建议看 TCP 和 UDP 的就够了)
- 极客学院·计算机组成原理(付费,没有时间看《计算机组成原理》的可以看这个,应付面试足以)
- 哔哩哔哩·侯捷 C ++ 入门
- 哔哩哔哩·侯捷 C ++ STL 分析
- 哔哩哔哩·侯捷 C ++ 内存管理
- JAVA 并发和多线程·英文版(这个和 C# 都是想通的)
- JAVA 并发和多编程·中文版
- 拜托,面试别再问我 TopK 了
- 超详细十大经典排序算法总结(堆排、快排比较重要)
- 垃圾回收算法详解
这里我再提一下算法和数据结构这东西,很多人喜欢去 leetcode 上刷大量的算法题。我的建议是 针对社招来说,完全没有必要刷题 。对于有工作经验的人来说, 项目经验的考察比算法数据结构重要的多,有些面试官甚至只考察项目经验。可以看看我在 leetcode 上做的题目只有这么一点点:
算法数据结构只需要把我上面说的资料看完就够了。题刷太多反而没有用。
简历的撰写
简历该怎么写网上一搜一大把,我能讲的东西不多。不过还是有几点要注意一下:
- 简历内容控制在 1 到 2 页,使用 pdf 格式,注意排版美观。要有条理分 12345,不要挤在一块很难看
- 有博客或者开源项目的话要放上去
- 没用的东西不要写,没人关心你的兴趣爱好和自我评价
- 对于你的工作内容,需要言简意赅。完全由你负责的写“负责”,只参与一部分工作写“参与”(这样就算问得特别细你也可以说这部分不是你做的)
- 简历上最好要有你的技术亮点
- 比如 使用了 xxx 算法、xxx 数据结构、xxx 设计模式、xxx 架构
- 实现了 xxx,带来了 xxx 好处或者解决了 xxx 问题
下面是我的简历部分截图:
- 工作内容部分:
- 技术亮点部分:
第一篇文章内容大概就到这里了,第二篇文章我会对市面上的各种公司进行简单的分析,包括哪些公司值得去,哪些不值得去。
游戏开发社招求职面试指南②——公司选择
上一篇文章讲了找工作前需要做哪些准备,包括平时怎么积累自己的技术,基础知识的巩固,简历的撰写。这篇会讲公司的选择,会分析各种大中小型公司、独立游戏公司等等。虽然我是程序,但是 这篇文章大部分内容同样适合其他岗位的人 。因为这系列文章是面向社招的同学,绝大多数情况都是一边在职一边寻找机会,往往需要请假去面试。所以我们需要对游戏公司精挑细选,只挑自己想去的地方去面试。我推荐的面试频率是一个月面一到两家,每个月请假不要超过 3 次。这篇文章介绍的都是一些知名公司, 如果你觉得自己能力不太行这些公司进不去请直接拉到文章最后,我也提了一些建议给你们。
赫赫有名的大公司
首先就是被人讨论无数遍的大公司还是小公司好的问题。这个没有绝对的答案。腾讯网易这种头部大厂,对于 非 985 计算机 专业是非常推荐进去磨炼的。这两个公司的含金量就如清华北大的文凭一样,有腾讯网易出身的员工甚至成为了不少小公司宣传自己的点。
其他老牌大型游戏公司诸如 完美、盛大、西山居、巨人、英雄互娱、游族、祖龙 还有专注出海闷声发大财的出海公司诸如 IGG、FunPlus、Garena,就需要考看情况了。这些公司里面都会有多个项目组,每个项目组的研发实力、待遇、加班情况可能都不太一样。要去的话一定要去有成功项目的项目组。最好找内部人士提前了解一下。
而像多益这种有大量丑闻的公司就不建议去了。
还有一些大型互联网公司的游戏岗位,比如 百度、滴滴、360等一些主营业务根本不是游戏的公司。这些公司也十分不建议去。因为游戏不是主营业务,成功上线项目通常没有,在技术上的积累几乎为零,游戏部门往往不会被重视,项目随时面临着被砍掉的风险。我曾经认识一位在某短视频公司工作的游戏程序员,在干了两年后项目被砍,人被裁员。在这种公司工作能学的技术十分有限,项目失败风险高,即使给再多的钱也不要去。
银行也招做游戏的你们敢信?!
还有两家进军游戏行业的互联网巨头 阿里 和 字节跳动 值得一说。这两个互联网巨头咋看之下旗下好像有很多游戏,但是 绝大部分游戏都是他们发行的而不是研发的 。先说阿里,阿里收购了 简悦 后将其改名为 灵犀互娱 作为旗下的事业部。这个团队非常牛逼,成功开发出了 《三国志·战略版》和 《三国志幻想大陆》两个爆款。这个游戏团队是很值得进去的。
相比阿里,字节的 研发 上还没有能拿得出手的游戏。尽管字节的游戏研发岗位薪资给的非常高,但是字节的游戏部门成立时间还比较短,技术还不够成熟,未来的项目营收情况还需要观望 。字节的履历对未来职业生涯的加分也不如上面说的那些老牌游戏公司。所以目前来说 不是很推荐去字节。
有一说一字节是真的有钱 发展迅猛的中型公司
在中型公司里,第一个要说的就是 米哈游 了,以规模和人数来说,米哈游可以算是大型公司,但是跟之前提到的老牌大型公司又有些不太一样,所以放到这里了。米哈游这个公司感觉我都不用介绍了,说的太多我怕被评论区扣上米卫兵的帽子。
除了米哈游外,还有不少发展不错的中型游戏公司,比如 紫龙、莉莉丝、叠纸 。他们的特点就是 成立时间不长,有自己擅长的游戏类型,爆款频出 。紫龙擅长做战旗类型的游戏,代表作是 《梦幻模拟战》,还有不久后要出的 《天地劫》 也是战旗类型。
莉莉丝则是 SLG 做的很好,《剑与远征》、《万国觉醒》都是爆款,出海收入也非常亮眼。
叠纸是 女性向游戏 的专家,女性玩家钱包收割机。不过叠纸最近在尝试做动作游戏,pv 放出后在玩家间普遍反应不太好,我个人也觉得这款游戏能成的概率不大。
这个 pv 放出来之后被喷爆了
这些个赚钱的公司还都有一个特点,就是 玩家间的口碑都不太好。
叠纸今年骚操作实在太多了,详情去 b 站看吧
taptap 紫龙游戏第一个热门评论
然而 公司在玩家间的口碑跟我们这些开发人员并没有什么关系 。很多情况下 公司被越多人骂说明赚的钱越多。坏名声总比没名声好。如果你觉得赚这种钱很“肮脏”,有背于自己进入游戏行业的初衷,你可以去文章最后我介绍的一些独立游戏公司。
总之这些发展不错的中型公司我也是很推荐大家去的,本身有多个爆款成功项目,能有不少经验可以学到,薪资待遇也不会差。
带有研发的发行公司
目前有很多游戏发行公司也都会成立研发部门。(纯发行的公司已经很少见了。)比如心动、b 站这种。准确来说它们并不是发行公司,但是他们发行业务比自研业务比重大很多所以我就归到一块了。
去发行公司的研发部的好处之一就是游戏火了之后,没有其他发行来抢利润,研发团队能分到的奖金也就更多。先来说 b 站,b 站运营了不少游戏,不过自己发行的不过除了 FGO 和碧蓝之外并没有特别火的(今年还多了一个《公主链接》),去年发行了《重装战姬》很快就凉了,《双生视界》借着开服一周年还在苟延残喘,其他火的基本只是渠道或者联运。(《原神》是渠道,《明日方舟》是联运)由于 b 站上面的游戏很多都凉了,因此也被很多人戏称为 “手游坟场”,不过我个人觉得这只不过是幸存者偏差。
看看还有几个活着的?
b 站作为目前最大的二次元网站,它发行的游戏不火很可能是游戏本身的问题。如果 b 站有牛逼的自研游戏,配上它强大的二次元网站属性,那这个游戏要火起来轻而易举。然而事实是, b 站的研发能力很弱,薪资也不高 。b 站自研的游戏目前没有一款是成功的。(最近要出的《黑潮·深海觉醒》也不过是个换皮战舰拟人游戏,可以说暴死预定了。另外一提它是 小萌科技 发行,小萌科技 是 b 站的子公司)总的来说, b 站不是很推荐大家去,实在想做二次元游戏也有很多公司可以选择,不用非得去 b 站。
除了 b 站外,还有一个值得一提的发行公司是心动。心动依靠于 TapTap 它的发行能力很强。
本身的研发实力比 b 站强上不少。这是近几年心动自研上线的游戏。还有一些在开发中的游戏。
值得一提的是心动在研项目里有 UE4 项目,UE4 的工作经验非常难得,目前 UE4 人才在市场上相当抢手,有机会一定要去尝试 UE4 岗位。目前我所知的有 UE4 项目的除了心动只有腾讯、网易、祖龙和米哈游等个别大公司,其它的就是一些做单机游戏的公司,比如 《黑神话·悟空》、《失落之魂》、《暗影火炬》它们的团队 等。
总之,心动还是比较推荐去的。心动老板很重视人才,前些日子还有在游戏圈疯传的“离职给 6 个月年终奖”的新闻。
一战成名的小型公司
这部分公司指的是靠一款游戏爆火忽然进入玩家视野的游戏公司。典型的如 鹰角、库洛 。 进入这类公司最好的时机是在他们游戏上线前 ,越早进越好。如果是已经上线后,要问清楚进去的话是维护老项目还是开发新项目。一般我不建议去维护老项目,维护老项目能学的东西比较有限,你能发挥的地方也不多。 如果是新项目可以考虑 。如果上面提到的那几类游戏公司你都没法进去的话,可以选择这类有一款爆款的公司。 如何在这些公司爆火之前就入职,其实才是最难的地方。有些游戏厂商会在游戏上线前进行宣传:
《暗影火炬》,第二期中国之星就看它了
绝大多数手游在上线前会上架 TapTap 进行预约和内测,通过看玩家评价和自己上手试玩,或者去 b 站看游戏视频就能推测出游戏有没有可能爆火。(当然这需要平时自己多接触游戏,对整个游戏市场也要有一定的了解。)像 《玛娜希斯回响》和 《猫之城》我觉得都是有未来成为爆款的潜力。
最近刚刚内测
赛博朋克 + 二次元 + 猫娘
找到游戏后顺藤摸瓜就能找到它们的开发商。(百度直接搜游戏名)
风险极高的初创团队
这种类型的公司属于刚成立不久的初创团队,没有任何上线项目。也没有对外公布过他们正在做的游戏,甚至内部可能连 Demo 都没有。去这种团队风险极高,十分不建议大家去。很可能第一个项目都没做出来就半路夭折了,即使做出来了,也不一定有钱能拖到拿到版号且正式上线的日子。当然去这种公司好处也是有,未来如果游戏大卖,你作为早期成员能分到的钱也多。我认为至少满足下面三个条件才可以去这种公司:
- 你对公司创始人非常了解并且愿意信任他。像有些创始人其实在成立自己公司前在圈子里已经小有名气。比如说鹰角创始人之一 海猫络合物 在 17 年成立鹰角前曾经是《少女前线》的主美,同时也是有名的同人画师。
- 你非常喜欢他们正在做的游戏。这样的话即使项目黄了,起码做的是自己喜欢的游戏。在游戏行业里,能够做自己喜欢的游戏的机会其实并不多。大部分情况是我们作为底层打工人,对于游戏做成啥样并没有决策权。
- 团队有充足的资本能够熬到上线。钱的作用性不用多说,没钱是做不了游戏的。在 天眼查 上都能查到公司的融资情况:
按照融资规模分为:种子轮、天使轮、preA 轮、A 轮、B 轮、C 轮 等。大家不用细究每一轮有啥不一样,总之就是越往后说明融资规模越大,也就是越有钱。投资方也是考察的对象,如果有大厂投资,说明这个团队还算靠谱。
总的来说,这种初创团队最好不要去就对了,因为你要考虑的东西太多了,还要有一定的情报收集能力。稍有不慎项目失败,会直接影响你的职业生涯。
追逐梦想的独游公司
关于 独立游戏 ,有很多种定义。这里我简单定义为和上面那些抽卡氪金手游不同,主要靠买断制来实现付费的游戏。手游如 《帕斯卡契约》、《Muse Dash》,单机如 《太吾绘卷》、《中国式家长》 等。这类公司的特点就是 薪资很低,同时工作相对轻松一点。
游戏科学 是特例中的特例,这家公司属于先做手游养活自己然后再追梦的类型,想进入这种公司的难度完全不低于腾讯网易所以我们不讨论。
(以下“单机游戏”一词只包括指 PC 平台的游戏)
所有做单机游戏的公司都是特别穷的,因为国内单机玩家实在是太少了,而且玩家们对价格敏感,超过 100 块就会受不了了。对游戏要求也很高,经常会拿国产单机游戏比肩国外 3A。
经典语录:
- 巫师三才卖 50,你凭什么敢卖 100?
- gta5 在 epic 上免费送,你的游戏凭什么收费?
所以在国内做单机游戏基本属于死路一条。
手机上就不太一样了,因为手机用户多,做手机上的独立游戏还是勉强能活下来的。
典型如 凉屋游戏,凉屋游戏擅长手机平台的 Roguelike 像素游戏,大名鼎鼎的《元气骑士》不用多说。凉屋的知名度和口碑在独立游戏圈子里都是很高的。不过今年出的《战魂铭人》收费模式设计得比较失败收获了不少差评。
还有 椰岛游戏 也值得一说,椰岛其实是前面说的那种带研发的发行公司。虽然他们说自己是独立游戏公司,不过感觉 也不是那么独立。今年的《江南百景图》就引入了抽卡的付费机制导致了不少差评,另外还拿下了二次元手游《玛娜希斯回响》的发行。
这两家公司算是比较有钱的独游公司,如果想尝试做独游又不想饿死的可以去试试。
单机游戏也推荐几家。
汉家松鼠 是个成功的公司。其在武侠单机领域已经耕耘多年并有多款游戏。今年 ea 的 《部落与弯刀》在 steam 上更是有着非常亮眼的成绩,推测销量有 50 万 左右。
看着挺火的,不过我对武侠不太感冒
还有 veewo的 《霓虹深渊》也是今年成绩非常不错的独立游戏,推测销量有 25 万到 30 万 左右。veewo是一家厦门的独游公司,之前做过手机平台上的 《超级幻影猫》。他们在 2d 横版游戏上有丰富的经验。
这个真的好玩,吹爆
(老实说 能稳定产出多款单机游戏的国内游戏公司几乎没有 ,大部分都是做一款就倒了,或者做着做着就转型做手游了(如 灵游坊),要不然就一款都没做出来。像是《帕斯卡契约》和 NextStudio 工作室的成功很大原因是因为背后有大公司资本撑腰,绝大部分单机游戏公司是没这个条件的。还有河洛工作室这种在台湾的跟大陆情况很不一样我就不提了。听说台湾那边的付费意愿比较强也许做独游不会饿死吧。)
个人觉得做独立游戏的话 最好趁着刚毕业那会的时候去做,或者大学就去尝试 。因为这个时候你还不是很缺钱,也有大量的时间和精力。 就算失败了你还有机会回头。
上面的我都进不去怎么办
考虑到很多人由于能力不太够,上面提到的知名公司都进不去。针对这部分人我也提一些找公司的建议。
- 选择加班时间少的公司。加班时间少,才有时间和精力在下班时间提升自己。
- 选择高技术力的项目,尽量不要做休闲和棋牌。去做复杂点的项目,对技术提升很有帮助,比如 rpg、mmo、slg 都是不错的。
- 选择有上线项目的公司。就算没有上线项目,起码当前项目得有一定完成度,看着就像能上线的样子。如果是做手游的初创团队,还需要问一下有没有版号。有很多公司因为没有版号最终倒闭了或者游戏拖了好几年才上线,或者是做的游戏类型跟不上玩家的要求了。你做的项目能不能上线关系到你的简历好不好看,关系到你未来能不能找到更好的工作。
- 不要过分关注你的薪资。很多人眼光狭隘,在职业生涯初期过分关注自己的薪资,干着 996 的活,拿着稍微比别人高一点的薪资沾沾自喜。做得也是简单、重复没有技术含量的工作。这种人只能赚几年快钱之后就容易被替代。
- 再烂的游戏公司也比非游戏公司强。有些人可能因为一时找不到工作或者贪图高薪资去做什么 ar、vr 或者其他不是游戏的行业。千万不要去,对你以后找游戏公司屁用没有甚至有害(一定会被下家 hr 问你想做游戏为什么去这种公司工作)。哪怕你在家啃老做独立游戏都比去这种地方强。
- 北上广深等一线城市机会多。特别是上海,其实你会发现我上面列举的一大堆好公司里,上海的公司占了一大半。我觉得想去好的游戏公司一定要多往大城市发展。感兴趣可以看 游戏茶馆 在 18 年总结的各大一线及新一线城市游戏公司分布图:
好了,这就是第二篇文章的内容了,内容实在太多,几乎是上一篇文章的两倍了,导致我写了好几天。下一篇文章我会分享我的面试经验,可能也是大部分人比较关心的部分。那我们下篇文章见!
游戏开发社招求职面试指南③(完结)——面试总结
终于到最后一篇了,这一篇主要写的是我面试过程的总结。可能也是很多人比较关心的一部分。再次声明我的经历比较特殊(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 的问题,其实只要把官方文档看一遍就能懂得差不多了。
- 缺乏对项目里技术方案的思考。典型的知其然不知其所以然。只是知道它是怎么做的,不知道为什么这么做,也没有考虑过和其他纵向方案的比较。
心动有两个面试官来面试,一个是技术另一个像是不懂技术的制作人。基础方面问了网络协议。物理方面问了两个高速物体连续碰撞检测怎么实现、不规则物体的碰撞检测。UI 方面问了 UI 和特效的显示层级处理。Lua 方面问了很多,为什么使用 xlua 或者 tolua、比较一下这两个方案、c# 和 lua 之间交互的原理。制作人问了一下剧情系统要怎么设计,都会包含哪些功能。
面试完之后让我回去等消息,此后再也没有了任何回复。
总结:
心动当时的面试时间和上一家米哈游没有差多少,所以上一个我面试的毛病这次还有。总结一下经验教训:
- 对 lua 不够了解,没有思考不同技术方案的区别。之前用 lua 只会在 xlua 或者 tolua 这种现成框架上写 lua,不懂得它们是怎么和 c# 之间交互。后来把《Lua 程序设计》看了一遍才懂。
- 物理方面,会考到各种图形的碰撞检测算法。比如圆形和矩形相交,判断点是否在多边形里等等问题。还有 SAT 分离轴算法肯定要懂的,这个在《实时碰撞检测算法技术》这本书里有非常详细的讲解。
- 对于程序来说,需要玩一点游戏。现在应该没有完全不玩游戏的程序员吧?也不需要你像策划一样阅历丰富,至少玩过几款经典单机、经典网游也就够了。
b 站是一个制作人直接来面我,制作人是研究生刚毕业不久,做的是他在学校里就开始搞的独游项目,项目组除了他以外就没几个人。因为我的项目经验和他要做的游戏高度匹配,所以也没怎么聊技术,聊了一下他那边的情况就说要我了。后来因为薪资不太达到我的要求,加上项目实在不靠谱就没去了。
当时制作人给我展示的视频,av53183475
因为这段经历过于离奇,我觉得可能是特例,所以找了不少人打听了一下 b 站内部游戏研发部门的情况。b 站游戏研发部成立有相当一段时间了,不过 总体来说研发能力不太行,目前还没有成功的游戏 。我还打听到 b 站内部砍掉了不少研发很长时间的项目。 总之不推荐去 b 站做游戏。
4. 凉屋
凉屋在面试前投简历的时候需要 附带自己做的游戏 。这个游戏不是你在公司的项目,也不是你的技术展示项目。而是 能表达你设计水平,有一定游戏性和创意的游戏。这个要求有点“奇葩”,但是本身凉屋就不是一个“普通”的公司,它是独游公司,独游公司招人除了技术外通常都会一些其它的要求(这也是独游公司经常招不到人的原因之一吧╮(╯▽╰)╭)。
简历过了之后是 凉屋 CEO 李泽阳 来面试,问的全部都是基础,因为凉屋进去后需要程序员自己设计游戏,所以普通游戏公司的项目经验并没有什么用。
面试的问题大部分都很简单我记得不是很清楚了,我记得的有引用类型和值类型的区别、为什么要拆箱装箱、空间变换矩阵包括旋转矩阵怎么写、w 分量有什么用、向量点积和叉积。
最后顺利拿到了 offer,薪资虽然比其他独游公司高了一点,但是和做商业手游的公司还是有点差距,加上在深圳有点远,最后就没去了。
总结:
凉屋是一家典型的独游公司,它的面试和其它公司有比较大的不同。总结一下成功的经验:
- 基础比项目经验重要。独立游戏公司做的游戏和商业游戏很不一样,所以普通的项目经验是基本没有用的。
- 独游公司会考察你和公司的相性。需要你对独立游戏有一定的了解,对于对方公司的游戏最好也要玩过。像进凉屋这种做 roguelike 的公司,至少你得玩过《以撒》、《死亡细胞》、《传奇法师》、《挺进地牢》、《废土之王》等经典 roguelike 游戏吧,最好你还是个《元气骑士》资深玩家。
上半年面试的这几家,除了 b 站过于不靠谱,凉屋因为本身我对独游比较了解,心动和米哈游的面试可以说是惨败。所以在面完了这几家后我就停止了投简历,开始漫长的个人提升之路。这几个月我做了几件事:
- 看公司项目源码,看看有没有什么牛逼的技术点可以让我写到简历里的。
- 补各种基础知识,计算机组成原理、算法数据结构、网络协议。
- 坚持写博客,连续写了几个月,平均每个月两篇以上长篇博客。
- 关注一些热门游戏,看各路游戏自媒体的文章和视频(游戏茶馆、游戏新知、游戏葡萄、触乐、BB 姬、STN、白痴毛、王老菊等一大堆),了解行业动态。
- 游戏该打还是要打的,(劳逸结合嘛)。手机上玩的比较多的是《少女前线》、《公主链接》、《明日方舟》和《原神》。steam 上玩的有这些吧,除了《史诗战斗幻想 5》花了 100 多个小时,《超时空方舟》打了 40 多个小时,其他基本都有 20 个小时的游戏时长。
这是这大半年玩的游戏吧 面试总结·下
时间来到了九月份,俗话说的好,金九银十嘛。所以从九月份我又开始投简历了。
5. 网易 上海某事业部
一面:
一面上来就问了项目,一点没问基础。主要问了我简历上的帧同步架构和物理系统。物理系统方面,因为之前项目用到的物理系统是公司自己写的,所以问得很深。这方面因为我之前已经看过了公司的源码,并且自己还写了一遍改良版的,所以回答得还不错。(关于如何自己写一个简单的物理系统,我也分享过:【物理篇】从零搭建 2D 物理系统①)具体问题包括网格法和四叉树都是怎么实现的,两个算法各有什么问题,四叉树怎么改进,还有碰撞检测算法等等。帧同步没有问的很深,基本上是介绍一下帧同步,以及遇到了的一些问题怎么解决,比如说卡顿、数据传输、掉线等问题。
因为事先有准备一面答得还算不错,很快就安排了二面。
二面:
二面依旧没问基础,只问项目。这次很深入的问了帧同步的东西。包括为什么要使用帧同步,为什么要用 ecs,为什么要用预测回滚,除了预测回滚还有没有其他方案解决卡顿的问题等。这次的面试有一两个问题没答上来,最后的结果是没有通过。面试官评价是有一定潜力,但是深度不太够。
总结:
网易这次的面试完全不问基础让我挺意外。总结一下失败经验:
- 对于简历上写的东西思考得还是不够深入。还是我第一篇文章说的那三大问题:怎么做?为什么这么做?为什么不那么做?详细来说就是 简历上写的技术方案你要十分了解,能够知道该技术方案遇到的问题以及怎么解决,还要与其他技术方案进行比较。这个就是面试官问项目经验的思路。所以你必须把可能会问的的问题都提前准备好。
上次面试虽然没过,但是不算太差,所以 hr 又把我推给了网易的其他事业部。
一面:
这次面试只问基础,是我遇到过的问基础问的最难的一次。首先是数组和链表的区别,插入、删除复杂度的分析。算法题问了用栈实现队列。又问了红黑树和 B + 树。到这里其实还好。接着开始问起了计算机组成原理和操作系统,包括虚拟内存和物理内存,动态链接和静态链接,cpu 多进程调度算法。到这里我就完全不会了,最后面试毫无悬念的没过。
总结:
这次的面试问到了计算机组成原理的知识,也是我之前完全没有准备的部分,所以失败得很惨。总结一下失败经验:
- 计算机基础知识很重要,光准备算法和数据结构是不够的。这方面的知识小公司不怎么考,不过大公司还是可能会考的。如果你像我一样也是非计算机专业转行的,这部分基础一定要找时间补起来,就算不为了面试了解这些知识对你也是很有帮助的。
说实话以我的实力我觉得我进不了腾讯,不过当时腾讯的 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 的游戏程序员。曾参与索尼中国之星项目《硬核机甲》的开发。返回搜狐,查看更多
责任编辑:
原文链接:https://www.sohu.com/a/439650972_667928