海量HC部门直推!2021字节跳动游戏团队秋招研发岗面经集锦

2021校招正在如火如荼的进行中,看了那么多面试经验的你是否已经眼花缭乱,不要方,字节贴心游戏的HR小姐姐收集了他们成功通过面试的经验,打探到了第一手消息!

满满干货!让你们顺利通过面试官的层层关卡!都是学长学姐们用自己的亲身经历总结出来的经验和教训!那就让我们一起看下去吧~

等等!如果你看完以后开始心动,那就欢迎点击文末的内推链接!只要你动动手指,你和字节就可能有故事!风里雨里,我们等你

【已入职同学有话说】
同学(游戏客户端开发工程师-朝夕光年
  1. 氛围很重要,与同学互相交流面试经验和面试套路,对所有人都很有帮助。
  2. 及时复盘,总结经验。
  3. 给别人讲解比任何方式都更能加深印象。因为给别人讲明白需要你对整体,对细节都有很好的掌握,能够做到条理更加清楚。
  4. 就算两个人都觉得对这个知识点的掌握度已经不错了,也可以通过一个人提问,一个人答来测试是不是真的掌握了,这就又回到第一点:学习氛围很重要!
  5. 校招的面试其实是有套路的,编程题或者一些知识问题是有题库的,面试一家公司前,先百度一下"xx 研发面经",把第一页每一条都点开看看,是很有帮助的,虽然大多数情况下可能实际面试不会问到原题,但是可以看到一些可能自己完全没有准备的问题,一些可能以前从来没有想过的问题,至少做到面试时候不会完全不知所措。
  6. 面试的题目原则上都是保密的,但是网上各个公司的真题比比皆是,牛客网甚至有公司授权可以看到的原题。所以我在面试时碰到有意思的,或者面试过程中觉得自己答得不好的题,会写博客进行记录,但是不能记录原题,更不能出现跟公司有关的任何信息。
  7. 网上的面经质量参差差差差差不齐,如果自己有自己的面经,至少可以每次面试前看看自己的。


同学(游戏引擎开发工程师-朝夕光年
“我在2019年9月进行了面试,面试的岗位是游戏引擎研发工程师。由于时间比较久,所以记不太清楚具体的问题了,只能大概回忆一下当时比较主观的感受。”
【流程】
笔试通过以后,耐心等待公司的面试邀请邮件。一轮面试通过以后,会有类似的邮件邀请下一轮面试并预约时间。这样总共需要进行若干轮面试,整个过程要持续若干周,坚持就是胜利。
【题目类型】
  1. 前几轮的面试都会提一些数学题,编程题,c++基础题,图形学相关的问题等等。每轮面试持续时间半小时到四十分钟甚至可以更久。
  2. 数学题比较偏重概率论,比如两个人进行掷色子游戏,有一个固定的规则,问两个人获胜的概率分别是多少。建议参加面试的同学稍微复习一下这方面的内容。但是即使自己真的不会做这道题,也要尽可能清楚完整地把自己的思路表达出来。
  3. 编程题是在和笔试相同的环境下编程。印象最深刻的一道题目是使用两个栈实现一个队列。面试官会先提出一个基础的问题,等面试者完成以后,再在此基础上增加难度,增加功能。需要注意的是,完成以后面试官会就一些细节进行提问,比如,遇到一些特殊的输入数据,这个程序的行为是什么样的,为什么会这样,以及有可能的改进优化方向。所以不妨在编程的时候,就考虑一下这方面的内容。但是遇到特殊的数据,程序无法处理的情况,也不要慌张,毕竟在有限的时间里没有人可以做到完全正确。把自己的改进的思路表达出来就好。或者可以询问面试官,经过他的提醒之后,是否可以再次改正自己的程序。
  4. 图形学相关的问题。首先是基础的问题,比如什么是渲染管线,什么是帧缓冲区,三维模型是怎样保存的,描述shadow map等等。只要平时多动手写写相关的代码,这些问题不会很难。另外还有进阶的问题,比如描述延迟渲染,渲染大量相同物体的时候的优化方案等等。建议平时可以浏览一些图形学大牛的博客,知乎上相关的专栏,可以积累很多技术知识。
【关于个人项目】
  1. 简历中的个人项目,绝对是面试过程中的大头。面试官会就个人项目进行十分深入的提问。首先,需要面试者大概描述一下整个项目以及自己负责的部分,然后,面试者对某些关键的地方(比如遇到的困难,解决的技术难题等)进行重点介绍,接下来,面试官会根据上面的内容,再次进行深入挖掘提问。
  2. 可以说这种深入挖掘是刨根问底式的,甚至可以具体到某一个数据结构,所以,一定要对自己体现在简历中的项目中自己负责的部分了如指掌。如果是以前做的项目,建议面试前好好回顾,对于认为出彩的部分,重点准备。也可以提前准备一些图片等资料,有助于现场展示,图片不需要花哨,主要目的是方便大家理解。
  3. 当时我展示了一个自己做的小游戏的雏形,其中涉及到场景管理,我使用了BVH动态管理场景中的物体,就被问到了为什么选择BVH,而不是KD-tree。像这样的情况,虽然自己在项目中的做法未必是最优解(几乎肯定会有更好的解决方案),但是也没关系,回忆一下当时选择这个技术的原因(可以仅仅是因为容易实现,或者自己对这种技术更熟悉),如果能描述相关技术的异同,就更好了。
【关于最终面】
如果顺利来到最终面试的话,就距离拿到offer仅仅一步之遥了。最终面不会再问之前那么深入的技术问题,而是更像聊天。面试前整理身心,把自己最好的积极向上的一面展示出来就可以了。
【注意事项】
  1. 遇到不会的问题怎么办?
  • 不要慌,尽量把自己思考的过程说出来。或者可以联系其他相关的知识,但是不要顾左右而言他。当时我被问到了,渲染管线中的深度测试是发生在fragment shader之前还是之后。这恰巧是我的知识盲区,但是我知道一些相关的信息,首先,在fragment shader里是可以通过gl_FragDepth来改变像素深度的,另外,假如深度测试发生在fragment shader之前的话,可以优化掉很多不必要的像素计算。于是我将这两点描述出来,然后进行一些合理的猜测,并且表示会学习弥补这个盲点。我不确定我的这个答题策略是否正确,谨供参考。
  1. 面试时间
  • 千万要严格遵守约定好的面试时间!让面试官等待是很不礼貌的行为。海外党由于时差等原因,更需要提前协调好双方都合适的时间,并且要注意冬令时切换等问题。比如提前预约了某天十点的面试,过了几天,切换到了冬令时,就提前了一个小时,变成了九点。
  • 总体印象
几轮面试下来,字节跳动的面试官们都给我留下了一种活泼亲切的印象!面试的氛围都相当友好平等,完全不会有“面试官大于面试者”这种压迫的感觉,面试官一直在引导,鼓励你展现出自己真正的能力。对于我这种容易紧张的人可以说非常友好了。但友好的同时,提出的问题本身绝对是扎扎实实十分有难度和深度的。
另一个印象是专业性,所有的面试都会提前沟通,对于海外党,HR会反复核对协调时间。这种专业性和HR同学的耐心在我面试过的几家公司中,是最好的。

同学游戏服务器开发工程师-朝夕光年
“我把面试经验简单总结,从【面试心态】、【技术知识】和【沟通技巧】三个方面来和小伙伴们聊一下,供大家参考。希望对大家会有一些帮助。另外希望小伙伴们每个人都可以找到最适合自己的面试状态和技巧,顺利拿到字节offer!”
  • 【面试心态】:面试前尽量调整自己一种平常心的状态,适度的紧张感能让自己思维保持活跃,但过度的紧张会让自己发挥失利。只有尽量调整自己,技巧就是相信自己。
  • 【技术知识】:字节游戏服务器开发的面试一共经历三面技术面试,一面还是比较重基础,从简历上找话题,着重聊项目涉及的知识细节,加上计算机网络、数据结构、编程语言、数据库等基础的考察。最后会有一两道算法题,一面算法题相对简单,我当时是写的归并排序。所以,基础很重要,对常见的排序算法,以及leetcode的高频题和剑指offer经典题要掌握好,很有可能出现在一面中。刷题的必要性就不多说了。二面和三面相对考察的比较综合一些,因为是游戏业务,面试会问业务场景设计题,主要考察数据结构和的知识比较多。因为游戏业务中,对数据结构设计的要求相对较高,比如实现MMO游戏人物坐标实时更新、技能施法范围、段位排行等问题,会问这些场景用什么数据结构实现,所以对常用的数据结构及特性要有了解。
  • 【沟通技巧】:不得不说,字节跳动面试官特别好,面试体验必须要点赞。在面试过程中调整自己的语速,尽量在回答之前脑海中罗列出知识要点,回答的有逻辑和层次感是非常加分的。遇到面试不会的问题不要慌张,根据自己的知识范围去思考,可以和面试官沟通思考的方向和思考的过程。如果确实是一道超出知识范围的题,可以和面试官交流更优方案。展示出自己的好奇心和求知欲来,会给面试官一个不错印象。在做算法题的过程中,也尽量和面试官保持沟通,可以说出自己的思路,如果思路有问题或者和正确答案比较接近或者有更优解,面试官可能会给出一些提醒或提示。面试是两个人沟通交流的过程,所以掌握一些沟通技巧,加上一些锻炼,面试的效果也会up!up!up!

肖同学(游戏测试工程师-朝夕光年)
一、问题归纳大致分为三类:
【游戏理解】
  • “你最喜欢的一款游戏是什么?”
  • “那么现在以你说的这款游戏(dota2)为例,请你以一个测试工程师的身份,负责测试视野这一块,你会如何进行工作呢?”
  • “现在有一款制作中的MOBA游戏,你会如何平衡英雄的强度呢?”
【脑筋急转弯】
  • “有6个小球,其中只有一个比较重,剩下5个一样。用一个天平最少称几次才能找出这个球?”
  • “有6个小球,其中只有一个不一样重,剩下5个一样。用一个天平最少称几次才能找出这个球?”
【技术相关】
  • 我比较了解C++,所以询问了C++相关的概念,应用,以及现场敲代码。
  • “如何证明一个单链表有环?多说几种方法。”
  • “重写和重载有什么区别?”
二、经验:
1.一定要对自己喜爱的游戏多多思考,不只是作为一位玩家,更要作为程序人员去思考。
2.书本知识多加巩固,LeetCode可以适当刷刷。
3.对于一些没有标准答案的题目,面试官可能更在意你的思考方式,而不是你的答案。

杨同学(游戏测试开发工程师-朝夕光年)
  1. 知识储备:游戏测试开发三个名词组合在一起,这个职位要求工程师既要懂测试知识,又要擅长开发,还要玩游戏并对游戏有思考。字节的面试非常考验知识储备,编程语言、计算机网络、数据库、测试思维、对游戏的思考、工作经验/项目经验,在面试的一小时过程中都会有所聊到。面试过程中遇到不会的问题不要紧张,可以先根据相关知识推导一下,整理思路后向面试官说出你对问题考点相关理论的了解与答案的推论。
  2. 通用能力:面试官除了看重技术能力,还有一点也非常看重,那就是通用能力,如基本素质、沟通能力、思考能力、领导能力、组织能力、解决问题的能力等。这些决定了你能不能成为一个好同事。所以不要紧张,以平常心与面试官交谈,可以多说一些实习、项目中对非技术方面的心得,担任学生干部时如何组织活动等,展现自己的通用能力。
  3. 工具推荐:牛客网、Leetcode是校招过程中我最常用的两个工具。牛客网可以看大厂面经题目,根据题目去找答案,做应试用。大厂技术岗位每轮面试都会有1~2道手撕代码,如果有在Leetcode上刷题,相信这部分对你来说很轻松。再推荐CyC2018整理的笔记,看完这个笔记,面试过程中你至少能回答80%的问题。另外,自己总结面经非常有用,这里不是说把问题列出来发到牛客网上,而是总结自己哪个问题没有答好,哪块知识还需要加强,这样每次面试都总结复盘,下一次面试你会表现得更好。

刘同学(游戏测试开发工程师-朝夕光年)
【面试流程】
  1. 疫情期间,所有的面试都是线上进行,字节的面试效率很高,每轮面试结束之后大约三天就可以收到hr的反馈。
  2. 面试官都很友善,面试之前都会礼貌地告知面试者,需要用电脑打字记录面试流程,这面试之前的简单互动会让人放松一些。
  3. 面试过程中,一定要多和面试官沟通,遇到没理解的题目要多提问,充分了解面试官的出题意图。面试官会在这种友好的沟通氛围中,对你产生好感,从而得到比较好的面试体验。
  4. 整个面试流程一般为三轮技术面+一轮HR面,技术面主要考察测试和开发的基础知识,项目经历,以及不可避免的手撕算法。
【知识储备】
  1. 游戏测开需要有一定的开发能力,开发的基础技能很重要,计算机网络、操作系统、编程语言等基础知识要掌握,网上的面经有很多常考的题目类型,可以多看看。时间充足的话,还是建议看书,从而形成一个更系统的知识结构。
  2. 算法题可以平时多刷刷leetcode,建议至少每天一道,保持感觉。
  3. 积累一定的测试知识,同时对游戏要有一定的了解。比如在平时玩游戏的时候,对游戏的规则、游戏关卡的设计等,要有一定的理解和思考,如果让你测试某个游戏功能的话,你会想到什么测试用例。
【写在最后】
希望大家都能如愿拿到offer,期待在字节与你相遇!

郎同学(游戏测试工程师-朝夕光年)
“只要对游戏充满热爱,就不要犹豫,字节里满是会“玩”的同学”
【面试流程】
面试分为五个环节进行,一轮笔试,三轮业务面试,一轮HR面试
【回顾总结】
  • 游戏测试基础尤为重要,这是作为游戏测试工程师最基本的能力,也是面试过程中考察最多的地方,这方面网上的知识分享很多,但有些杂乱无章,应当通读一本专业书籍进行知识梳理,然后再将各模块知识开枝散叶
  • 计算机基础知识,字节的面试是技术风的面试,考察着计算机基础的各方各面,应当在日常学习时关注这方面的知识,积累知识储备量,面试过程中问到不会的方面也不要紧张,坦然的面对并虚心求教,面试官会很耐心的解答,很快就能将不会的知识变为会的知识
  • 逻辑思考能力,这种能力的考察是贯穿整个面试过程的,不仅仅是逻辑思考题,面试交流沟通的过程中也要先思后答,一团乱的沟通逻辑不仅会对面试官带来困扰,也会使自身的紧张感大幅度提升
  • 游戏热爱!!!面试官一定一定会讨论游戏方面的理解和热爱,这时只要放平心态,在玩家和设计者两个角度上阐述对游戏的理解,很快就会发现每一个面试官都是和你一样的忠实玩家,并且都是优秀的游戏开发者
【个人感受】
  • 面试官都很温柔,在遇到思考不出的问题时,会抛砖引玉的引导,也会耐心的讲解不懂的知识和疑问,每一次面试都是对个人能力的提升
  • HR小姐姐非常尽心尽责,对于流程上的疑问都会尽快回复,面试都会邮件和电话进行通知,不用担心因为小小的过失就错过精心准备的面试
【说给大家】
选择字节,与优秀的人一起“玩”,我在这里等着你们!



【海量HC等你来】
如果看完以后你对游戏部门充满兴趣,那就欢迎向我们砸简历!加入我们吧!
真正的海量HC!!便利的内部流转渠道! !
市面上目前流行的游戏品类都在研发中,中重度游戏为主,休闲也有!满足大家的需求!
岗位:
游戏客户端开发工程师、游戏服务器开发工程师、游戏引擎开发工程师、游戏测试开发工程师、游戏测试工程师、游戏技术美术工程师
——文末福利
内推码:【P2MNTT2 】



【关于我们】
朝夕光年自媒体,首次亮相,请多指教!
All Gamers:
朝夕光年的自媒体正式亮相!微信/微博/抖音/b站全面上线,就等你的关注了!
快快点击一波,你想了解的朝夕光年,都在这里啦!👇
《这,就是朝夕光年!》
《为什么是朝夕光年?如果选择需要理由》
#内推##秋招##校招#
全部评论
现在还没有收到满意offer的!!来看看我们!!我们还有hc!!🤣
点赞 回复 分享
发布于 2020-11-09 10:47
#秋招# #字节跳动# #字节跳动2021秋招开始了#  👈点击话题获得更多相关招聘信息 ---------------------------------------------------- 牛客校招助手,永远陪伴在你的求职路上。 关注校招牛,及时获得各大企业校招信息~
点赞 回复 分享
发布于 2020-11-10 08:31
链接里面没有看到研发类的岗位呢?
点赞 回复 分享
发布于 2020-11-11 17:14

相关推荐

1)C/C++static作用,变量加入static以后在内存中存储位置的变化volatile作用C++为什么有指针还要引用,为什么不和JAVA一样抛弃指针delete和delete[]的区别虚函数是用来干嘛的?虚函数机制怎么实现的?虚表指针在内存中的存放位置?C++多态怎么理解?C++有哪些多态的典型例子?叙述程序编译都包含哪些阶段,每个阶段干了什么?CMake是如何包含文件目录的全局变量和局部变量在什么地方?堆栈如何申请资源?C语言编译后的内存分布连续调用同一个函数两次,它的局部变量初始化结果是否会一致?静态局部变量存储在静态区,那么静态区的创建和消失是在什么时候?在windows里面运行了多个进程,其中一个进程执行完了,它的静态区会如何处理?静态局部变量与局部变量的区别?为什么局部变量未定义时,每次初始化的结果是不确定的?是个真随机数还是个伪随机数?嵌入式中栈的工作机制是什么?struct字节对齐了解么?容器了解吗?vector实现的机制是怎么样的?迭代器有了解吗?讲解一下你的理解内存分配函数了解么?如果系统中只有10K内存,而我要分配12K,能分配成功吗?如果能,那么将分配到的区域用memset进行初始化,会成功吗?2)处理器架构51和32架构的区别MCU可以运行Liunux吗,为什么STM32启动过程(上电开始->main执行的过程)中断响应执行流程,中断上下文指的什么,保存中断上下文是完成的什么操作,以STM32为例,都有哪些寄存器被保存STM32 F1和F4的区别Cotex-M系列使用浮点运算对STM32中断效率会产生什么影响STM32常见寄存器:R13(SP,堆栈指针),R14(LR,连接寄存器),R15(PC程序计数器)作用什么是大小端模式3)操作系统Freertos支持的任务调度方式,详细说下每种方式任务(线程)间通信方法进程和线程的区别互斥量和信号量的区别优先级翻转,如何避免优先级翻转STM32任务切换为什么用PendSVFreeRTOS的内存管理怎么实现的?为什么这么做?对于临界区数据的处理,使用互斥锁和自己通过条件来判断,哪样更好,为什么?最后呢祝各位同学工作顺利,关注我分享更多面试知识,嵌入式c++的同学可以看一下大佬总结的面经  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
分享
1 9 评论
分享
牛客网
牛客企业服务