📒 面经¶
2025 暑期实习¶
腾讯 CSIG 云产品一部 高性能网络团队¶
一面¶
Abstract
- 时长: 1 小时 14 分钟。
- 地点: 线上。
- 内容: 拷打简历(仅关注网络和操作系统相关)+ 一道链表题目。
提前 5 分钟面试官就会进场了,如果你已经准备好就直接开始。
自我介绍。
我把在实验室做的 DPU 项目写在了最前面,面试官就直接问了这个项目。介绍一下这个项目是什么,你在其中做了什么工作。然后,针对你提到的一些术语进行提问,比如:
-
你刚刚提到 Host 和 DPU 之间建立连接,需要提前传输哪些数据?
LKey、GID、QPN 等...
-
RDMA write 这类语义有哪些?read/write 和 send/receive 你觉得区别在哪?
单边操作时另一端的 CPU 不需要参与。
-
追问:为什么 RDMA write 不需要对端 CPU 参与?
网卡通过 DMA 总线控制器直接访问内存。
-
-
和 Socket 相比,RDMA 有什么优势?
面试前看了 ofi-guide/OFIGuide.md,回答了记得的一些点:异步(非阻塞)、零拷贝。
接下来问打超算比赛的经历:
-
MPI 的 Allreduce 采用什么通信方式最好?考虑 8 个节点接在一个交换机上的简单拓扑。
我回答用树形方式,比如 8 个节点,1 号节点和 2 号节点通信,3 号和 4 号通信,然后 1 号和 2 号节点的结果再传给 5 号节点,以此类推。面试官问有没有更好的方式,我没想出来。
(其实我太久没有写 MPI,已经忘记 Allreduce 是什么了,乱说了一通
-
不改代码你们是怎么调优程序性能的?
换用不同的 MPI 实现,采用不同参数测试,进行 Profile 比较。
然后问操作系统
-
简单讲讲虚拟内存的作用?页表怎么实现的?为什么要用多级页表?多级页表的每一级的长度是怎么定的?
略。
最后写一道链表题目:
- 数字链表相加,比如
1->2->3
和4->5->6
相加得到5->7->9
。低位存在头结点,高位存在尾结点。
然后反问环节,问了下国内 DPU 的发展情况。
最后会问你的未来规划,就业意向等。
二面¶
Abstract
- 时长: 21 分钟。
- 地点: 线上。
- 内容: 聊聊简历的内容。
自我介绍。接下来简单聊了一下简历上的内容。
在简历的内容之外,扩充问了一些 AI 相关的内容。我对 AI 的了解不多,感觉回答得不是很好。比如问了反向传播算法是什么,为什么从输出层开始反向传播。
以及本次面试忘记开摄像头了,可能挂在了这里()。
阿里 安全研发工程师 安全研发保障中台¶
笔试¶
单选题、不定项选择题、编程题。
算法和数据结构考了 KMP、二叉树、队列;OS 考了分段内存、银行家算法、内存页面和文件系统块;数据库考了 SQL 和索引;网络考了 XSS 和 DNS 缓存。
编程题 3 道,约有 1 小时时间。
一面¶
Abstract
- 时长: 47 分钟。
- 地点: 线上。
- 内容: 考察安全方向的知识,聊聊简历上不同方向自我感觉最好的项目。
自我介绍。因为这个岗位看起来和我的简历并不匹配,所以我面向岗位描述,重点介绍了自己与之相关的部分。毕竟招聘中确实写了超算竞赛是加分项。
开场先问:搞超算的为什么投安全?
接下来一些简单的问题,问了是否了解编译器调试原理等。
腾讯 CSIG 云产品一部 容器团队 TKE¶
一面¶
Abstract
- 时长: 1 小时 20 分钟。
- 地点: 线上。
- 内容: 两道 CPP 题目,重视对标准库的考察。
自我介绍。然后向我介绍了一下 TKE 是做什么的,澄清了容器不只是运维的工作。
-
C 的栈内存和堆内存有什么区别?
-
堆内存如何管理?
一开始我是懵的,一直在说页面之类的,后来想起来有空闲链表这么个东西。然后就问相关的算法,比如 Fist Fit、Best Fit、Next Fit 等等,问了下它们的优缺点,没有很好地回答出来。
-
-
C++ 中有几种智能指针?
shared_ptr、unique_ptr,没能说出 weak_ptr(我确实对此完全没有印象)。面试官引导了一下,问我 shared_ptr 有什么缺点,也没能答出来。
-
进程和线程
追问问了一下
fork
系统调用究竟有没有 COW。哎,只能说操作系统课的实验太简陋了。我们实现的fork
其实是用户态的fork()
调用,它是一定有拷贝页表的。但是真正底层的clone
系统调用是需要看参数来决定是否CLONE_VM
的,然后交由do_fork()
实现。被操作系统课的实验给害了,混淆了概念。 -
TCP 有哪些计时器?
字节 后端开发实习生 基础技术¶
一面¶
Abstract
- 时长: 1 小时 30 分钟。
- 地点: 线上。
面试体验最好的一场,大概是因为是浙大的学长面的。与其他面试的单向拷打相比,这场面试更像是双向交流,让我学到了很多的东西。
面试官是做容器团队的,先介绍了一番容器团队在做什么。
编程题是一道简单的算 h 指数,遍历然后二分搜索即可。但一开始我想得比较复杂,创建了一个 map
用于累积引用次数。
以下是面试官对我的建议。
- 我说感觉自己现在学的东西太杂,没有精的。他指出我的问题在于在技术用完就扔,没有对其整体架构、底层原理等留下印象,这些是真正有用的东西。