企鹅游戏开发课面试

先占个坑,期末周结束再来更新

背景

2022 腾讯 IEG 游戏公开课客户端开发学员面试,30min。本来我是对游戏一窍不通的,本来我也是对 C++ 一窍不通的。为了给暑假找点事干 && 白嫖一次 C++ 复习,就报名了。也有貌似是非必须参加的笔试,但是编程题很简单,暴力直接带走了。

题目

  1. 首先问了下有没有游戏开发的经验,UE4 引擎有了解吗

    没有。。。

  2. 问了几个 C++ 的。没答上来的(暂且记得这么多):
    • C++ 的内存空间有哪几种?(少答了)
    • 几个 cast 函数(不知道)
    • extend 关键字干啥的 (不知道。调用 C 函数的)
    • 编译器为一个空类提供哪几个函数?(还会提供两个版本的重载的取地址运算符,但是当时不知道怎么想的答成了取地址符😢)
    • 如何避免内存碎片(答了一个重载new和delete,面试官说这就是常量池技术,问还知道其他的吗,不知道)
    • C++ 多态有哪几种(少答了,提示了函数重载,然后顺着问了下面的问题)
    • 函数重载发生在编译时还是运行时?(给答成运行时了,虚函数调用才是运行时,函数重载是编译时根据同名函数的参数列表重新生成函数的名称放在符号表中)
    • C++ 多线程的经验有吗?(没有)
    • 锁有几种?(我照着数据库系统概论那本书的数据库的锁说的,只讲了互斥锁和共享锁,还知道什么锁?不知道)
  3. 给看了一段 C++ 代码,问哪里可以调优哪里有问题,面试官好心地给提示了

    • 指针的参数传递问题(改为传递指针的引用而不是指针本身)

    • 浮点数的运算问题(乘法快还是除法快)

    • 迭代器的效率,itr++ 汇编需要几条指令(我回答没了解过汇编)

    • 大数组包小数组效率高还是小数组包大数组效率高(?)

  4. 顺着上面的最后的一个问题问了个操作系统的问题,我直接回答没学过操作系统(过了很久的更新:现在 OS 的八股已经熟悉很多了)

  5. 寄网。UDP 和 TCP 区别。就在我以为问寄网会有把握时:

    如何用 UDP 实现 TCP?
    • 不会
  6. 没问算法和数据结构😢,难得我又把排序算法拉出来背了一遍

  7. 没有反问环节。最后说要去先了解一点游戏开发的东西。那感觉就是能进这个课的?但是真的游戏开发一窍不通,半路跳车会进🐧黑名单吗😢

感受与反思

  1. 首先是第一次技术面试,又激动又紧张,introvert 体质就发作了,全程“额”,“吧”,“应该”,“不太了解”,几乎没直视摄像头,都在盯着屏幕。甚至还在思考的时候翻了白眼😇
  2. 其实就是标准的八股,但是现在的水平难以应对,而且还是 C++ 的(疯狂找借口)
  3. 感觉回答的风格还是太学校课程了一点?就是没有直接切中答案的要害,说了一些有的没的
  4. 实践还是太少了。尤其是寄网的部分,原理大概知道,但是没有实操过
  5. 简历还是太寒酸,
  6. 待补充。活过期末再说吧

后续

  • 通过了面试
  • 项目的作业是用 UE4 写一个 FPS 游戏。由于对游戏开发不感兴趣而且暑假全程睡大觉,因此课几乎没听项目肯定也是没做的...

企鹅游戏开发课面试
https://balddemian.github.io/Interview-Tencent-IEG/
作者
Peiyang He
发布于
2022年6月18日
许可协议