这篇腾讯 TEG 客户端开发面经很有代表性,因为它并不是只看客户端表层能力,而是明显把项目、多线程、OS、网络和 C++11 一起压上来了。
一面先从项目和多线程切入,二面继续往:
-
Reactor / Proactor
-
线程池
-
socket 参数
-
epoll / select / poll
-
map 底层
推进。整体就是很典型的"客户端也要有系统和网络底子"的风格。
校招大礼包获取:入口
可能是至今最全,最好,最实用的校招大礼包,减少信息差,预期漫步无敌的刷提,不如有的放矢,针对性的准备,这样才能有效备考,有了这份资料,不说100%拿到offer,至少帮你提升50%概率拿到offer
这篇面经适合谁看
如果你准备投腾讯 TEG、客户端开发、偏 C++ / 系统 / 网络的研发岗,这篇很有参考价值。
面试流程速览
-
初试:项目、多线程、OS、C++11、智能指针、链表题
-
复试:Reactor / Proactor、线程池、socket、HTTP / HTTPS、epoll、死锁、C++11
这条线的重点非常清楚:先看你项目是不是有料,再看你基础能不能跟上。
初试在看什么
初试里最核心的是:
-
高并发服务端项目
-
物理内存和虚拟内存
-
进程 / 线程 / 内存分区
-
死锁
-
C++11 新特性
-
右值引用和移动语义
-
智能指针、循环引用
-
链表两两反转
这轮说明腾讯客户端岗并不轻,尤其如果你项目里用了多线程,面试官会顺势把 OS 和并发基础全问出来。
复试为什么更偏"网络与框架"
复试的问题包括:
-
Proactor / Reactor 区别
-
线程池创建、销毁和函数
-
socket 有哪些、函数和参数
-
HTTP 和 HTTPS
-
epoll / select / poll
-
死锁原因和解决
-
C++11 移动语义
-
map 底层
这轮已经明显开始看:
-
你是不是能真正做网络和客户端底层开发
-
你是不是只知道概念,不知道实现细节
从这篇面经里能看出腾讯 TEG 客户端在筛什么
-
项目中的多线程和并发是否真实
-
你的 OS、网络和 C++11 基础是否过关
-
你对 Reactor / Proactor、socket、epoll 是否能讲到实现层
-
你的链表基础题是否稳
如果你准备这类岗位,这几块要重点补
-
多线程项目、死锁、虚拟内存、内存分区这条 OS 线补齐。
-
右值引用、移动语义、智能指针和循环引用这条 C++11 线补透。
-
Reactor / Proactor、线程池、socket、epoll 这些网络框架题别空。
最后提醒
这篇面经说明:客户端岗并不意味着网络和系统就可以不懂,尤其腾讯这类团队会很看底层基础。