字节跳动游戏研发三面面经

07/09更新:

打电话问了hr,hr说面试未通过。

官网上还是显示面试中,应该过一段时间会变成已结束。

感觉像我这杨三面完依然还是面试中的应该就要凉了,三面完显示面试已完成的应该还有机会。




一面            早上11点开始,持续30分钟


1. 讲讲数组和链表。

2. 说说进程线程。

3. 讲讲http。

4. get和post区别。我说最根本的差别是幂等性,然后参数放在url中,长度有限制,安全性其实差不多。他问说还有吗,我说没了。感觉我回答的不是他想要的答案。

5. 讲讲同步异步。我说了I/O多路复用和异步,说了Proactor和Reactor,再说到select,poll,epoll。

6 .除了select,poll,epoll,还了解哪些I/O复用吗,IXXX听说过吗。没听说过,IXXX是什么我都忘了,只记得I开头。

7. TCP断开连接,讲讲Close_Wait。

8. 讲讲乐观锁,悲观锁。不会。

那讲讲线程安全。我说,这个是不是是java的啊?(问完我就后悔了,这问题好蠢)

他说这不是操作系统层面的吗?就是死锁。我说死锁啊,那就是对多个任务请求占用同一个资源。然后我想说死锁四个条件的,结果给忘了。我就说,这个忘了。他说没事。

这题是我一面答得最烂的一题。

9. 讲讲数据库,索引。然后我说了Innodb支持自增,会自动建索引。然后说了B+树,他问我B+树除了扁平还有什么吗,我说叶子结点都在底部,查询效率衡定,节点之间还通过链表连起来。

10. 讲讲深浅拷贝。

11. 两个有序数组找相同元素,我说双指针,他问时间复杂度,我说O(N)。

他说那无序数组呢,我说我用dict做,空间换时间。

12. 你有什么要问我的吗?我问了他头条游戏团队有多少人,主要用什么语言。前端c#,后端java,主要语言没有c++。是的你没有看错,没有c++。


等了十分钟,发来一面通过的短信。然后HR打电话过来,说快到12点了,下一面下午开始吧,然后定的下午1点。


二面          下午1点开始,持续1个小时


1. 说说你写的C编译器。

2. 挑一个实习的项目,说说遇到的挑战。

3. 既然项目用的Tornado,说一说异步。

4. 来做道算法题吧:

一堆需求,每个需求都有需要完成的时间和deadline,求最多能完成几个。

然后我说了这个是动态规划的题,然后想了五分钟,直接跟他说我不会写。(我算法一直很渣)然后他说,那我们换个。

5. n*n格子,从左下走到右上。

一开始题目描述有问题,测试用例给的输入是3,输出是5。然后我就按斐波那契数列写了,后来输入2输出3,面试官发现不对。

然后我跟他讨论了一会儿,最后他也觉得题目有问题,让我不要管测试用例,再写一遍。

然后我按全排列写了。但是误会了题目的意思,题目说的是走格子,我理解成走边了,结果输出总是出错。比如2*2输出6,其实3*3才输出6。

后来面试官说你这个不对吧,我跟他讨论了一下,才意识到他说的是走格子,不是走边,然后把输入减1,终于过了。

这道题做完我心都凉了,一道很简单的题搞了这么久,心想这轮肯定过不了了。

6. 没时间了,问你点基础吧,说说Time_wait。

7. 说说vilotile。

8. 说说数据库四大特性。我说了A和C,I和D有点想不起来了。正在想,他直接说,没时间了,今天就到这吧,之后HR会联系你。


我心想凉透了,也很难受,难的算法不会也就算了,很简单的做了这么久,然后一个ACID竟然没说出来,就很难受。


5分钟后发来短信,我心想,头条效率真高,五分钟就告诉你凉了

结果点开一看,面试通过??Excuse me?我盯着短信看了好几遍,还刷新了面试链接,我怀疑是HR操作错了。

然后短信说30分钟内安排下一轮面试,我这30分钟就不停刷新那个链接,我觉得一定是HR搞错了。

然后30分钟后真的三面了。


三面           两点半开始,持续30分钟


1. 我看你简历写的c++和python,现在用哪种语言多一些。答曰python。

2. STL了解吗,说说常用的。

然后我说了Vector、queue、stack、deque。然后说了deque的底层实现。

然后他说set,hashmap呢?我说我没用过,基本都是用python的dict和set,只知道STL的set,map底层是红黑树实现的。

他说那python的set是什么实现的你知道吗?我说我不知道,我猜也是红黑树吧。他笑了笑,没说话。

3. 讲讲实习的项目,说说亮点。

4. 看你项目对ElasticSearch操作比较多,说说ElasticSearch。

然后我说了倒排索引,索引放在内存中,然后用了一些技巧压缩,刚想说压缩技巧被他打断了。

他说索引不大,为什么最后导出用了那么久呢。我说索引是不大,但是通过索引去找全部的doc要用很长时间,换言之查询很快,但是导出比较慢。

然后问了我数据量大概有多大,我说10亿左右,请求量较高的系统7天的数据大概有5个G,压缩后六七百兆。

5. 来问个游戏相关的题。现在有一个很大很大的地图,上面有很多角色(怪物,NPC等),每个角色视为一个质点,有一个坐标(float型)。要怎么设计底层的存储结果。

然后给了个大体方案,他又根据这个方案再往细了问。这题大概讲了十分钟吧。

6. 未来职业规划。

7. 有什么想问我的。

i.头条游戏的技术栈。

ii.是不是也在知春路。

iii.您觉得作为一个开发,之后的学习路线,往操作系统,即计算机底层深挖比较好,还是朝算法深挖比较好。

iv.头条是打算通过游戏变现吗?

v.为什么做游戏会选择lua?



三面下来,感觉问的都不深,可能因为我只是本科?基础问题基本都是我自己扩展了一些。算法除了二面的动态规划,其他都很简单,可能面试官也看出来我算法菜的一批,就不羞辱我了。

整个流程还是很快的,一天走完。但是我估计我是凉了,二面菜鸡本质暴露无疑,祝大家好运,可不要像我这么菜了。

#字节跳动##面经##Java工程师#
全部评论
游戏研发,还是服务器端
点赞 回复
分享
发布于 2019-07-06 17:38
iocp,win下的io复用
点赞 回复
分享
发布于 2019-07-06 17:46
滴滴
校招火热招聘中
官网直投
还不错啊,祝好运。
点赞 回复
分享
发布于 2019-07-06 17:54
二面的不是贪心题嘛,就是尽量选deadline比较靠前的。
点赞 回复
分享
发布于 2019-07-06 17:56
楼主,挺好奇三面你问的第三个问题面试官咋回答的?
点赞 回复
分享
发布于 2019-07-06 18:13
为什么我还是显示笔试中
点赞 回复
分享
发布于 2019-07-06 19:06
二面第一道算法题应该是leetcode630吧,感觉面试问这个有点偏难。。
点赞 回复
分享
发布于 2019-07-06 19:07
大佬 投的哪个部门 我也想试一下 感觉是个有java的部门
点赞 回复
分享
发布于 2019-07-06 20:01
面我的说游戏部门用C++和lua
点赞 回复
分享
发布于 2019-07-06 20:07
游戏开发虽然对C++要求挺高,但是感觉真的开发还是C#和Lua居多
点赞 回复
分享
发布于 2019-07-06 23:50
过了吗
点赞 回复
分享
发布于 2019-07-07 02:23
你收到通知能告诉一声么,我也是三面结束
点赞 回复
分享
发布于 2019-07-07 15:37
楼主你已经很强了,真的。这面试难度换我早挂了。各位做c++的朋友,考虑下来我们多媒体组不?面试难度比起其他组简单不少哦。字节跳动多媒体校招提前批,https://www.nowcoder.com/discuss/203226,或者点击头像--讨论贴 查看
点赞 回复
分享
发布于 2019-07-07 15:38
同三面结束等hr消息。。。慌慌
点赞 回复
分享
发布于 2019-07-08 18:16
楼主现在的状态是已结束吗?
点赞 回复
分享
发布于 2019-07-08 20:46
游戏地图底层存储那题楼主是怎么答的?
点赞 回复
分享
发布于 2019-09-06 14:24

相关推荐

10 152 评论
分享
牛客网
牛客企业服务