美国游戏业近两年面试心得
Disclaimer:
我毕业于2018年 自认程度普通
所以如果你是刚毕业或准备要毕业 且希望可以在美国找到游戏类的工作
希望本篇可以帮到你
如果你已经是业界大神了 可以忽略XD
我会针对我踩过的坑来叙述 尽可能地让你少踩这些坑
业界变化很快 我尽可能以最贴近的方式分享近两年我面试美国游戏业的心得
若与现实有所出入 仅供参考
履历还是求职信怎么写 刷题要刷多少等等 我觉得我只能说个大概
版上有前辈发过类似的文可以参考
若真的有兴趣或需要帮忙 可以私信我
背景:
可以查询我在这版以前的PO文 我不浪费篇幅详述
18年刚毕业以后有拿过几个full-time offers (Magic Leap和一间新创)
但是因为家庭因素没去
于是开启我漫长的contractor和面试生涯...
这段时间几乎每几个月投一次履历 毕竟contractor不是很稳定
没有上就当面试练习
到了去年年底拿到一间非游戏公司但是做模拟的正职 做的还算快乐
最近则拿到了2K旗下一间子公司full-time offer
以下我自己觉得的在北美游戏业找工作的重要性(高到低)
1. 心态的调整
我相信你一定听过在美国找工作就像跑一场没有终点的马拉松
尤其当你看到身边有不少连三角函数/内积外积都不会的人都有可以进到一流公司
(不要怀疑)
或不少高手不管怎么面就是拿不到好的offer
所以在找工作找到崩溃前 心态的调整是必要的
如果面试结果是不好的 可以试试看找出是否有可以改进的地方 若没有 也不用太纠结
在实力相当的顶尖对决状况下 最后的胜负都是靠运气
同样的面试问题
我也曾经被一间我听都没听过的小公司喷到歪头
也有给另一间大公司的面试官称赞很喜欢我的答案
可见运气占了相当大的成分
也有遇过面试完以后 HR打电话来给我说面试结果非常好
公司准备给我offer 但是隔天寄拒绝信(黑人问号?)
面试完 寄个感谢信 不管结果怎样都是继续准备下一间
千万不要相信任何口头承诺 我甚至觉得纸本签完名都可能变挂 (看COVID后一堆惨案)
我自己的心态是在面试时尽可能地展现最好的自己 尽可能往下一轮走
最重要的就是要多练习 多练习 多练习 很重要说三次
(很多contractor的缺可以拿来练兵)
有些contractor的招聘公司很不挑 感觉就是recruiter就是来赚业绩的
LinkedIn上超级多 如果时间允许 可以多跟他们聊聊天当练习
真枪实弹跟洋人交流一下好过在镜子面前练习面试N百次
我有次甚至还头壳坏掉被找去面sales manager的缺(重点是还一路进到on-site?)
除此之外你要学习一些说话的艺术
很多国际学生会遇到的问题 就是在毕业前就开始找工作
如果HR问到你 什么时候可以上班?
请记住千万不要说: 我还要申请OPT(一种工作签证) 拿到EAD等等OOXX
(因为接下来一定不会有人鸟你)
你应该要说的是:
这要看公司什么时候给我offer 对吧?
因为如果越快拿到offer 我就能越快处理搬家等等的事宜
基本上你的回答没有说谎 在美国也不要说谎 本来就要拿到offer才可以搬家上班阿
这两个不同答案将会决定你可以到下一轮还是毕业后联络(然后永远不联络)
2. 人脉的重要
如果可以的话 尽可能的拓展你的人脉
不要只侷限在跟中国/台湾同学交流 (我知道很难)
因为我自己的经验 印度人不会屌你 洋人也不会屌你
他们只在他们需要你的时候才会找你
中国同学可不一样 撇开政治他们大多数对台湾人非常友善
如果你人在国外 刚好孤单寂寞觉得冷 你只能跟中国同学混在一起
没有不好但是你人脉就被侷限了
所以说尽可能的打开心胸帮助跟认识每个人
(即使很难 而且你会感觉很糟 那种你把他当朋友 但是你永远走不进他们圈子的感觉)
但你永远不知道你的面试官会不会是你的朋友
或是你永远都不知道有没有可能你的朋友可以在业界帮你介绍一个工作?
如果直接认识Hiring Manager那更是大大的增加你拿到工作的机会
另外撇开这些现实面
了解不同国家的人 了解他们的文化思维 在面试中更为重要
你才可以知道他们想听什么 所谓 知己知彼 百战百胜
你不一定要跟他们变成好朋友
但是了解他们是非常重要的
另外如果你有预算有机会可以多参加GDC
但是不要幻想有机会在那边找到工作
现在的生态已经不一样了
基本上你可以看到一个招聘单位旁边大概围着4.50个菜逼八(对 我就是其中一个)
HR根本不可能应付这么多人 最后都是请你自己回去上网投
你要做的应该是 尽可能的 出发前做好功课(研究你想去的公司)
在一些场合(有酒或party更容易)搭讪这些公司的人跟他们聊天
除了公司隐私以外 尽可能的多了解公司的文化等等
千万不要跟太多你的朋友(一整群学生)走在一起
这样只会让你少掉很多跟另一个烙单的人聊天的机会
3. 硬知识
先了解你想找怎样的游戏公司
如果是AAA等级 基本功非常重要 C++尤其重要
资料结构跟算法 越熟越好
如果是小公司或手游
他们甚至不考资料结构算法
Unity Unreal Engine 越熟越好
有自己的作品更好
我自己以往AAA为目标 所以心得偏前者
C+++方面 Effective C++这本书读越熟越好
有机会补点计算机架构跟组合语言的东西(最近半年遇到两次组合语言的考题)
平常记得刷题(我知道有多人觉得刷题很智障 但没办法 我觉得现在的生态是必须的)
个人觉得刷题的重点不是写出那个标准答案
重点是拆解题目跟分析的过程
当面试官丢一个题目给你的时候
脑中千万不要去想要用哪个算法还是资料结构写出来
(即使是对的 面试官也会说你太快跳进去一个题目 WTF?)
你应该要先拆解 击破 组合
打个比方最近一次面试我遇到的题目:
假设有一个排序好的数列 里面有N个数字 随机挑出K个位置 把该位置的数字随意换掉后
如何回传一个新的有序数列? (K << N)
例如:
1 2 3 4 5 6 会变成 1 2000 3 4 500 6
怎样回传1 3 4 6 500 2000
你如果直接用quick sort (NlogN)就下次再联络了
你应该先装傻?跟面试官问
有没有可能 我先把这个数列给分段 让他每一段都是一个有序数列?
这样可能会花掉一些内存空间 但是速度可能会比较快?
例如 我先分成
(1 2000) (3 4 500) (6)
这样我就可以确保每个组的第一个都是最小的数字
之后我只要专注挑出这每个组里面的最小值就可以了
(到目前为止我都没有提到任何资料结构或算法哦 我只纯粹拆解题目)
之后才会开始说资料结构跟算法的东西
我会说接着说 先用for loop分组 我们可以得到最多K + 1组 对吧?
从每个组里面 挑出最小的值 放入min heap 这样我们可以马上知道哪一个数字最小
之后每当我挑出最小值后 我马上把挑完的那个数字的下一个再放进去heap比较 直到所
有结果都出来就可以了
说完这些想法跟面试官确认他都懂你的意思以后 你才开始写code
不管你是在电话还是在白板 应该都要有这样的分析步骤
千万不要一拿到题目就开始写起来
前面说的 拆解 击破 组合
如果你有刷Leetcode 可以知道这题其实是 23. Merge k Sorted Lists
只是前面多一个步骤
这些面试题目不外乎是各种基本的资料结构和算法的组合
只是差别在于你能不能够冷静地把题目拆解成你熟悉的样子
针对各个小问题用适合的资料结构算法破解
最后再把结果组合起来而已
冷静地听面试官的题目跟提示 回想你熟悉的基本功 不要急着想把解答写出来(大忌)
当Contractor好吗?
老实说 现在一堆公司都有用contractor特别是在游戏业
我倒觉得这不是什么奇怪的事情
我自己是当过亚马逊跟微软游戏的contractor
好处是工时稳定 时间到下班没压力 而且有机会参与一些大的游戏开发
坏处当然就是不稳定(例如微软有当一年半要强迫休息半年的政策)
我觉得更重要的是找一个好的agent帮你谈工作
例如一样是微软 可能有好几家agent跟他们合作
有些agent的公司可以帮忙办工作签H1B 但是可能薪水会被压榨的很彻底
有些可以谈到比正职更高的时薪 agent有时候还会私下请你吃饭等等
自己心态要调整好 当初有人说contractor会被当次等公民的感觉
我自己是觉得还好(至少我在的组我都觉得没这问题)
确实例如参加一些公司办的活动只限FTE(但是你真的很在乎这活动吗?)
要不然就是公司有放假你可能会没钱(pay by hour但时薪谈高就没问题)
如果一时半刻找不到好的工作 不妨试试看contractor
但记得先蹲后跳 不要蹲太久脚麻跳不起来
大概先写到这里
有其他问题可以推文或站内信问我
如果想我帮你看履历或是给其他面试上的建议也可以写信给我
但一样强调 我并非大神 我只能就我自己的主观经验给你建议
特别感谢:
AmosYang
cjcat2266
Ninja5566