Skip to content

📒 面经

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->34->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 是做什么的,澄清了容器不只是运维的工作。

  1. C 的栈内存和堆内存有什么区别?

    • 堆内存如何管理?

      一开始我是懵的,一直在说页面之类的,后来想起来有空闲链表这么个东西。然后就问相关的算法,比如 Fist Fit、Best Fit、Next Fit 等等,问了下它们的优缺点,没有很好地回答出来。

  2. C++ 中有几种智能指针?

    shared_ptr、unique_ptr,没能说出 weak_ptr(我确实对此完全没有印象)。面试官引导了一下,问我 shared_ptr 有什么缺点,也没能答出来。

  3. 进程和线程

    追问问了一下 fork 系统调用究竟有没有 COW。哎,只能说操作系统课的实验太简陋了。我们实现的 fork 其实是用户态的 fork() 调用,它是一定有拷贝页表的。但是真正底层的 clone 系统调用是需要看参数来决定是否 CLONE_VM 的,然后交由 do_fork() 实现。被操作系统课的实验给害了,混淆了概念。

  4. TCP 有哪些计时器?

字节 后端开发实习生 基础技术

一面

Abstract

  • 时长: 1 小时 30 分钟。
  • 地点: 线上。

面试体验最好的一场,大概是因为是浙大的学长面的。与其他面试的单向拷打相比,这场面试更像是双向交流,让我学到了很多的东西。

面试官是做容器团队的,先介绍了一番容器团队在做什么。

编程题是一道简单的算 h 指数,遍历然后二分搜索即可。但一开始我想得比较复杂,创建了一个 map 用于累积引用次数。

以下是面试官对我的建议。

  1. 我说感觉自己现在学的东西太杂,没有精的。他指出我的问题在于在技术用完就扔,没有对其整体架构、底层原理等留下印象,这些是真正有用的东西。