腾讯天美工作室-游戏客户端开发实习-一二面面经

第二次面腾讯的游戏客户端了,上次参加了光子的客户端开发公开课后,不幸倒在了二面。这次依然投的光子,但是最后是天美来约的。
我用过UnityUE4,其中对UE4相对更了解一些。熟悉的语言是C++
没有图形学背景,好在他们招游戏逻辑部分的实习生,不要求图形学。

一面

先做了自我介绍。之后先问了我选择做游戏开发的理由,然后开始依次问UE4、C++和数据结构的基础知识,最后手撸一道编程题。

UE4:


  1. 你觉得Unity和UE4有什么区别。开始瞎扯。
  2. UE4中都认识哪些类。我把我能记起来的类都列举了一遍,从UObject、AActor、UActorComponent到AGameMode、AGameState。
  3. 怎么学习UE4的。说了知乎专栏insideUE4,还有通过看教程做了一个简单的射击游戏DEMO。
  4. 在学习过程中有没有深入去了解某个模块,比如网络、动画、物理之类的。没有深入去了解,但是展开讲了一下我对网络同步和RPC的了解。


C++:

  1. 函数调用中参数传递有传值、传指针和传参,它们有什么区别。这个简单,还额外提了一嘴新特性右值引用。
  2. 函数调用参数传递时底层是怎么做的。我当时不清楚这个问题问的是什么,没答上来。
  3. 我前面提到了右值引用,问我知不知道移动语义。我知道std::move(),但是我不知道这个就是移动语义,当时没答上来。
  4. 堆空间和栈空间分别是什么,哪个空间更大,哪个访问更快。这个答上来了。
  5. 类的生命周期相关函数。我只知道构造函数和析构函数。
  6. 深拷贝和浅拷贝。知识盲区,没答上来。
  7. 多态的意义及其实现。这个准备充分,答得比较好。
  8. 如果给指针分配了空间但是忘了释放会发生什么。内存泄漏。
  9. C++有什么机制防止内存泄漏。智能指针,讲了shared_ptr、unique_ptr和weak_ptr的原理。
  10. 有没有用过lambda表达式。大概讲了一下它的语法,讲了它的内联特性。
  11. 内联和宏定义在使用上的区别。这个没问题。
  12. 内联函数和普通调用比有什么优势。这个也简单。
  13. 对模板类的了解。这个只知道个大概原理,并例举了C++的一些模板类,幸好没往深了问。
  14. 介绍一下你用过的模板类。从stack、vector一直讲到unordered_map,这个真挺累的。
  15. stack、queue、vector、list、map、unordered_map实现增删改查的时间复杂度分别是多少。说了好多,也不知道中间有没有说错。
  16. vector的扩容机制以及优化方法。说出了扩容机制,但是没答上来优化方法。
  17. 哈希表在发生冲突的时候会怎么做。我只答上来了拉链法。
  18. 哈希表在什么情况下效率会很低。我直觉的回答了当发生大量冲突的时候,但是考官说哈希表发生冲突的概率是很低的,应该是哈希表扩容时,会把所有元素重新哈希一遍。

数据结构和算法:

  1. 什么是平衡二叉树。没问题。
  2. 平衡树和红黑树有什么区别。没问题。
  3. 罗列一下你了解的排序算法并介绍原理。讲了插入排序、选择排序、冒泡排序、桶排序、快速排序、归并排序和堆排序以及原理,讲起来挺累的。
  4. 基于比较的排序算法理论最低的时间复杂度是多少。我一开始说了O(n),考官提醒我是基于比较的排序,桶排序不基于比较,我改成了O(nlogn)。
  5. 什么是稳定的排序和不稳定的排序。我一开始以为是指时间复杂度的稳定,考官提示我是原数组中有相同元素时的稳定和不稳定,我才答对。
  6. 有没有用过一些其它的算法比如贪心、动态规划。我说我以前参加过竞赛,这些算法包括一些图论数论的算法都有一定了解。

手撕代码:

  1. 删掉一个有序数组中重复的数字,并返回处理完后的数组长度(要求不能使用额外的数组空间)。这题还是比较友好的,在Leetcode里应该属于简单难度。

问完基础知识,考官让我简单介绍了一下我做过的一些其它项目,并没有深问(主要是没时间了)。
最后,考官问了我是否会读博,并介绍了他们目前正在做的项目。然后直接告诉我一面通过了,让我再查漏补缺一下准备二面。
全程大约一个小时。

二面

心情复杂,不愧是大厂,完全不按套路出牌,打了我个措手不及。
这次二面我本以为会以问项目为主,结果是以数学为主,把我这个读了研以后再也没碰过数学的人干懵了。

数学题:

  1. 有一根木棍,随便砍两刀看成三条,能组成三角形的概率是多少。哎,其实是很简单的解不等式再画图的题,但是一上来我就有点懵,一直自己跟自己绕。最后被提醒了两次才做出来。
  2. 有两颗玻璃球和一栋一百层的楼,如何最高效地确定哪层是能让玻璃球不碎的临界层。蛮经典的题,以前还写过。但是前面已经让我很懵了,记忆是空白,最后也没有给出标准的答案。

手撕代码:


  1. 有一个数字三角形,请返回从顶部到底部数字和最大的路径。简单的动态规划。此处略找回了一些自信。



闲聊:


  1. 玩过什么游戏。
  2. 最喜欢什么游戏。答了Minecraft和老滚5。
  3. 喜欢这两款游戏的理由。闲扯,这里氛围就比较轻松了。
  4. 学习技术的过程中有没有加入过一些专业论坛或者交流群。
  5. 你觉得大学和研究生期间什么课最难。
  6. 反问。



啥也不说了,信心已经没了一半。
大家有时间也要看看数学题啊。
全程大约50分钟。

如果还能有三面,我再继续更新。

三面已过,但是隔得有点久,已经忘了当时的问题了。已约HR面。
#实习##面经##游戏客户端开发工程师##腾讯#
全部评论
请问是日常实习还是春招提前批呢
1 回复 分享
发布于 2021-03-10 22:55
欢迎来天美,我去年就是参加的暑期实习春招,加油~
1 回复 分享
发布于 2021-03-11 12:26
网络部分是简历上没写吗?还是就没问?
点赞 回复 分享
发布于 2021-03-11 01:06
c++部分,第二道题,如果没有理解错的话,回答方向应该是:通过将参数压入栈来实现的。
点赞 回复 分享
发布于 2021-03-11 09:25
您是学什么专业的呢
点赞 回复 分享
发布于 2021-03-11 10:09
一面C++问得很难啊 楼主学得好扎实
点赞 回复 分享
发布于 2021-03-11 10:34
这个面试太舒服了吧
点赞 回复 分享
发布于 2021-03-11 13:35
想问一下楼主,关于C++模板类那部分应该怎么答呀
点赞 回复 分享
发布于 2021-03-11 23:41
大佬,想问一下,c++是相关的题目是靠背的吗,还是写项目熟悉的
点赞 回复 分享
发布于 2021-04-04 22:25
是天美哪个工作室? 上海的吗,我也面完了,在等OC.
点赞 回复 分享
发布于 2021-04-06 19:00
楼主,客户端开发公开课难道还要面试吗?那笔试又是怎样的?是C还是C++?
点赞 回复 分享
发布于 2021-08-24 18:05
你好,请问公开课的面试有手撕代码的环节吗?
点赞 回复 分享
发布于 2021-12-11 13:10
想知道公开课之后的面试的难度 还剩几天了
点赞 回复 分享
发布于 2021-12-12 15:10

相关推荐

评论
22
172
分享
牛客网
牛客企业服务