快手的面试流程也是非常神奇,居然在某个周六的下午集中面所有人,并且14:00一面,17:00就接着二面,最后的HR面也只聊了7分钟就结束了。整个流程略粗糙,但技术面的内容还是比较有意思的,简单记录一下。
UE:实习经历里 UE 部分做的内容(对方是UE的项目),功能怎么开发的,哪些难点,怎么解决的;Listview/ScrollView 原理,实现;slate 相关内容;
UGUI:可能因为简历里写了unity相关,虽然对方是UE项目但问了很多UGUI的内容:
UGUI 渲染流程:答 CanvasUpdateRegistry,两个 Rebuild 队列,ICanvasElement ...
Image 和 RawImage 区别:答 显示Texture/Sprite,Image支持多种显示模式,IlayoutElement 接口 ...
Mask 原理: 答 模板缓冲区,模板测试,生成新的材质 ...
LUA:lua使用场景;xLua热更原理(实习内容相关);lua和C#交互原理(答 栈,P\Invoke);lua表的原理,表的结构(数组部分和哈希表部分如何增长);lua oop 如何实现。
手撕:出了个简单的最近公共祖先题,当时只剩三分钟左右了,写到最后还有一句 return 没有写完。面试官看我的函数名叫 lca,然后说你是不是做过这题,说下思路吧。然后简单说了下思路就结束了(略尴尬。
二面基本一直在拷打 ue 的基础内容。
反射部分:UCLASS 宏的作用;为什么需要反射;UE 中反射是如何实现的(答 宏标记,UHT扫描,static 提前初始化,代码生成,友元...),在什么阶段生成的反射信息;反射会带来哪些问题(答 破坏封装性,内存占用...);
GC部分:UE 中 GC 的原理;GC 之前为什么要加锁(顺便问了一下锁的相关内容);关于 GC 还有什么要补充的(答 ReferenceTokenStream,反射信息辅助GC,按照偏移量访问 ...),对方表示掌握的还不错;
容器部分:UE 中的容器和STL中容器的区别;TSparseArray 原理,TSet 原理,和STL 中的同名容器有什么区别;不同容器的特点(增删查改复杂度)。
网络部分:项目里网络同步的方案,C/S 结构下如何写逻辑,项目里延迟补偿、服务器回溯怎么做的,如何模拟高 ping 环境;帧同步状态同步区别;UE 网络同步的协议,UDP如何保证可靠。
手撕的环节面试官说他也不出力扣的题了,让手写一个状态机。平心而论这题我准备过,但写的时候面试官希望我用他给的逻辑写,然后自己写了一些类的框架让我填里面的逻辑,当时确实慌了然后改了很久也没有跑通,还是太菜。
总体来说快手的面试官还是非常专业,问的问题都比较深入,而且有的问题还是比较反套路的,例如状态机。可能是因为表现一般的原因,二面之后也没有更多的技术面了,面了更多场的同学欢迎留言!从投递到接到意向也差不多一个月,效率还是挺高的。
#秋招##快手##快手求职进展汇总#