回报地里,浅谈一下我的找工经历(游戏,GPU),最后去了AMD

avatar 47610
cktao
7359
19
咳咳,其实楼主比较懒,去年10月入职现在才来讲经历,希望能够给地里找工找实习的筒子一点点帮助。不过楼主自己也觉得自己的找工经历有点奇葩,仅供参考……首先说一下楼主在学校时的情况吧。本科是软件工程毕业,硕士在犹他大学念过1年EAE,后来转了修graphics,GPU计算什么的,念了两年硕士。比较期望的理想工作是做图形渲染,进游戏或动画公司吧。
研一暑假有过一份实习,不过只是在一个业余的小公司用Unity game engine干不是game的东西,算是混了一下实习经历。研二秋季的学期开始着手找工作,但那时由于作业太多于是没刷题。那时面试估计面了最多10个公司吧,全军覆没,全是一面就跪掉……到了下一个学期(也就是毕业前的那个春季,2014年)才开始懒懒散散刷leetcode,5月毕业之后开始集中精力认真复习算法数据结构伴随刷题什么的。一开始的时候还是有节操地面试的,比如只对游戏公司或做vfx的感兴趣,但是后来发现vfx的投了简历都没理的,有的理了也没给面试,说什么不招new grad啊什么的;至于游戏公司嘛,现在想起有那么几个:

1、EA:除了研一有给过实习面试,后来都没鸟我;
2、暴雪:研一投了实习没鸟,研二毕业后鸟了一下没给面试;
3、High Moon Studio:给了电话面试,可是当时楼主才刚刚开始复习算法数据结构,一问到最基础的二叉树C++ STL整个人蒙了,后来也没拿到二面。不过也要感谢面试我的工程师,他说我有5年C++功底不应该这么渣(深表惭愧……),建议我去看Effective C++,于是那时楼主买了那书回来看;
4、High Voltage:电面,面试官态度很不友善,楼主面试前无意中看了一下什么是A,然后面试官问我B我说不懂,但A又懂,于是就怀疑我是临场作弊Google出来的……(由于记不起具体问的是什么了,姑且用A和B代替,貌似是placement new和memory fragment的概念)反正这样问人家知不知道概念的面试官,直接给自己公司带来负面形象,给我二面我也不想去,差评……

当时也对NV挺热衷的,也找同学内推拿了个面试,可惜貌似也是当时对渲染通道复习还不够,有些应该知道的基本概念没答上,也跪了电面。
估计面试有一个多月了吧,由于OPT逼得紧,又不想找挂靠,开始着急,于是开始掉节操,想着能写C++就可以了……于是继续海投,期间也有阿三哥给楼主内推(所以大家还是不要给阿三哥太多偏见吧):

5、Intel:阿三哥给的内推,GPU的工具组貌似,电面问C++算法什么的,由于当时楼主已经集中刷题看Effective C++有一段时间了,当时感觉也很顺,于是拿下电面,可惜正准备onsite飞过去的时候mananger又临阵改口说内部找到人补空缺了于是把楼主甩了,从此楼主对Intel产生深仇大恨,为后面的故事埋下伏笔(咳咳纯粹为了渲染搞笑气氛大家别当真……)
6、Apple:学校里转来的,也是GPU相关,电面两轮,都一样的形式,online写code,Link list reverse什么的,标准leetcode的模样,也问了一下rendering pipeline,OpenGL的东东,MSAA什么的。不过估计是对于二面的面试官的不知哪国方言口音搞得楼主严重沟通障碍于是跪了;
7、Google:HR很友善,给我发了一套复习资料准备面试,技术面的提升也得益于这份资料吧……也是电面两轮,第一面超紧张,问了2 sum的变体,45分钟,结果头脑空白貌似写了最暴力的解法……二面前HR又给我放水(是的,我真觉得Google的HR就是给你放水的),于是继续准备,二面貌似问的是一个数据流,求实时k个最小值,二面心态调整了一下感觉答得顺畅很多,不过面试完发现有漏洞,偷偷地又给面试官发邮件说需要这样修改。最后还是没有面到onsite,于是跟google的饭堂暂时无缘……(关于google的面试技巧地里已有很多精华帖,我的也没啥特别,就说这些我的个人经历好了……)
自google面试后楼主的心理受到严重的打击,加之OPT无业允许时间只剩一个月了,只好慌忙找挂靠什么的想顶着,还好之前实习的小公司愿意收留我,那时我也以帮他们干活作为报答吧。期间又是搬家什么的杂事,休整了一个月。估计是对Intel的深仇大恨感动了AMD,他们给了我面试(屁那是什么逻辑……),是在疯玩了一个月之后吧(对,当时答应帮那小公司干活却不见干多少活就是搬家疯玩反而比较多……)。这也是楼主后来接的offer。面的是GPU开发工具组,在麻省Boxborough,波士顿郊区一个小镇。面试有三轮。第一轮什么都问,有问C++,问了一些算法,问渲染通道,问在GPU做矩阵相乘什么的,也有问愿不愿意relocate啊,有没有OPT啊什么的(居然连HR的问题都问了),一个半小时的面试,感觉还行;第二轮面试是对面发来一套题,三小时之内做完发回去,不过还是超时了20分钟;拿到第三面onsite也有点意外吧,onsite当天大概是早上manager介绍团队干啥,然后我又介绍自己干过啥,中午一起出去吃个饭,下午回来开始面试,先是C++和算法,开始听基础,后来加了点难度逼我思考,还好当时没慌,面试官也挺友好给了点提示,做了个异常接近的解决方法;然后是问graphics gpu的东西,还真是多亏了nv cuda的课,都答的还好,呵呵;最后是要我把自己写过的游戏引擎架构描述一下,问了一下用过什么version control啊,以前做游戏开发课agile弄的怎么样之类的,楼主也问了一下work life balance的问题。那个时候已经感觉到80%能拿下offer了。面试完第二天就收到发offer的消息(尼玛真TM快)。

期间微软也给楼主面试,另外还有一个chaos group,做3ds max vray渲染插件的公司。不过当时有AMD的offer在手就开始浮躁了,觉得在AMD做gpu游戏靠边的挺满意啦,然后那时也因为微软裁员消息对微软没了好感。chaos group其实更想去,毕竟直接就是做渲染的公司;但无奈那家不是e-verify,没得OPT Extension,万一今年H1B抽不中就直接回国拜拜了。也因为集中精力找工作有4个月了实在不想再折腾,就接了AMD的offer。(之前楼主也有发帖纠结过:1point3acres.com

======================== 华丽的分割线 ================================

总结了一下,找工的过程的确是苦逼的。心态要稳,真的不能浮躁,不要慌,面试多了就好。不要过分看重能否求解,这也是google的面试指导里面有说的(没看过的筒子推荐看看:youtube.com)。还有就是真的要尽早准备啦,楼主算是临急抱佛脚,能被AMD收其实也觉得很大程度有运气在里面(也有无心插柳柳成荫的感觉,当时网投AMD是在刷题刷累了无意中想起还有个AMD做CPU比nv强做GPU比intel强,才投的)……要坚持,貌似在地里看过有位筒子说找工作的过程就是:面试,跪,面试,跪,再面试,再跪,继续咬牙坚持面,还是跪,绝望了一下,继续努力,还跪,然后到了面跪成了习惯的时候,offer就来了。

还要感谢有个某人在旁边一直陪伴楼主找工作的苦逼岁月咯……

游戏公司的面试还是不大一样,除了技术面,游戏公司貌似更加看重你对游戏的个人品味,你的个性。记得暴雪鸟我的邮件里就问我玩魔兽世界玩了多久(那个是魔兽世界的组),我说2个月,估计不是死粉于是就不再鸟我了。还有一个没提到的,盐湖城的迪士尼,是13年秋季直接到公司面的,面的是实习。当时面试居然一个技术问题都没问,全问那些“你为什么喜欢做游戏开发啊”“你为什么觉得物理引擎重要啊”之类的问题,当时总是想着问完这些就要问技术题了吧,于是也是漫不经心的回答,觉得技术面更重要,结果问完那些问题就问完了,然后也跪了……

关于刷题,楼主的观点是动脑去刷,leetcode我只刷了80题貌似,不过每一题楼主都有认真去思考,想思路,耗费脑力2个小时都没头绪的才去看网上的答案,然后有的题也会过一段时间不记得怎么做后又去做一遍重新思考,有时会想到别的解决方法。一开始刷得很慢,慢慢刷多了,会去做个归纳总结,给刷过的题做一下分类。

学校里面的project也要认真做啦,虽然不像刷题对于面试的帮助效果那么直接,但是这个是工作之前能够接触到的时间较长的project,至少也是一个星期的project吧。楼主在EAE待过,game engine做了两年,上ray tracing的同学ray tracer也做了一个学期。刷题是一个算法而已,但project是一整个系统,即使不是很大规模。而且那是自己的project,想怎么弄,想怎么试验都行,即使是团队的,自己都有很大的发言权。但工作后,公司的Project很多时候轮不到你来决定,除非你是总监,manager,或者你已不再是new grads了。

===== 又一条分割线 =====

其实对于AMD也不是最满意啦,自己最大的遗憾是最想去的动画公司之一DreamWorks连简历都没投出去,理由就是人家想看一个比较华丽的渲染作品,于是就想着要把自己的渲染器修啊改啊,结果是改了一阵又跑去玩游戏拖啊拖啊,先是把人家的实习申请拖掉了,到拖到拿到AMD的offer了都没把渲染器修好,真羞愧……Dreamworks于是暂时真的是一个dream了。现在在AMD上手了想赖着不走了,虽然一开始几个月极其不适应,住郊区没路灯,冬天黑得早,加之之前波士顿的大雪搞得人特别烦,很不爽……
  • 22
19条回复