首页 > 春招到秋招腾讯面经,经历了7个部门,14面,无缘腾讯了
头像
普通人一个
编辑于 2020-11-13 15:55
+ 关注

春招到秋招腾讯面经,经历了7个部门,14面,无缘腾讯了

腾讯的面试经历比较坎坷,从春招找到秋招提前,一共经历了7个部门,14面。其中春招面了4个部门,9面,拿到了暑假实习offer,并于5-7月在腾讯实习了两个月。而秋招提前批面了3个部门,5面,都没能通过,然后就没人捞了,应该是无缘腾讯了。

不过,还是比较感谢腾讯给的面试机会和实习机会。经过腾讯的面试,让我从面试被虐,转变为有一些把握了。实习经历的加成也很多,至少在秋招中,简历筛选基本没有大问题。

PCG实习一面(凉)

一上来做题,数据结构、c++考试题,有选择题、简答题、编程题(实现strcpy,并说明返回目标内存的其实内存的原因)、代码填空题(合并升序链表)。没看懂最后一题的代码,不会填空,所以面试官让我口述了合并升序链表的思路。

  1. 介绍项目,根据我的介绍,提出疑问,并提出一些并发场景,让我设计方案。
  2. 介绍日志系统
  3. 项目的难点
  4. 压测
    • 有没有测试?
    • 并发有一百万(就是从这里才是挖坑了。原来我理解错了,一百万是成功数,不是并发。到这里,基本凉了加上前面题目做得不好,基本没救了。
    • 你知道进程打开的文件是有上限的吗?(面试官觉得数据不对)
    • 那怎么可能达到一百万,你是每次都关闭的吗?
    • 是(慌了,明明之前说的是长连接,怎么又关闭了,充分暴露的我菜了,呜呜)。
    • 知道怎么修改进程打开文件数的上限吗?
    • 用过,但是忘了。(然后面试官果断结束面试)

TEG实习一面

牛客上看到的 AI LAB 招后台实习生,想刷刷面试经验,所以就投了。

  1. 自我介绍;

  2. 介绍项目;

  3. 介绍 Reactor,Reactor 定义了哪些事件?

  4. 定时器的实现,eventfd vs pipe。(自己挖的坑,提到了 pipe 也能实现同样的功能)

  5. linux 中进程通信方式、线程同步方式。

  6. 互斥量会陷入内核吗?(刚看了一个互斥量的实现,通过关中断、开中断实现的。这个实现肯定会陷入内核,但是不知道实际的实现是不是这个,所以稍微提了一下看过的实现,然后说不知道真实实现)

  7. 多态

  8. 智能指针的实现?说了引用计数,面试官问引用计数的实现,我就有点懵了,后面经过面试官的引导,答出了“原子类”。(这里没 get 到面试官问题)

  9. 介绍知道的内存管理方式。(提了自己知道的内存管理库——ptmalloc、tcmalloc、jemalloc,然后讲了 malloc 的大概实现策略)

  10. 讲讲 hashmap。

  11. 算法(讲思路):

    1. top k
    2. 海量数据排序(分文件排序,再归并)

TEG实习二面

  1. 自我介绍
  2. 机械转计算机的原因
  3. 为什么选择 Reactor?
  4. 为什么选择 epoll 的水平触发?
  5. 项目是做给别人用还是自己练习的?
  6. 有没有做性能测试?讲了压测,提到成功的连接数,面试官问有没有失败?有没有做负载均衡?
  7. 项目难点?
    1. Socket移动的时候 fd 的处理 -> 程序一收到新连接就奔溃 -> debug过程 -> 日志 + core dump
    2. 使用Any、any_cast的原因和原理 -> 博客、学习其他类型擦除方法
    3. 定时器自注销逻辑(面试的时候没讲)
    4. 多线程/进程调试 -> 学习gdb
  8. STL项目是完全自己做的还是参考了别人的实现、思路?
  9. 提问环节:
    1. 业务
    2. 实习生的工作

二面组长已经去看招聘系统了,我猜二面过了需要录入系统了(之前两面都没录入)。但是我的暑假实习在流程中(CSIG),系统不能同时进行两个流程,所以没办法面下去了。又是周五,难受!

CSIG实习一面

  1. 自我介绍
  2. 稍微问了一下本科的情况(机械专业),平时怎么学习,为啥做这些项目?
  3. 详细介绍了网络库项目(人均 muduo 😂)(这部分面试官让我讲了很久很久)
  4. select、epoll区别
  5. 为什么选择 epoll 的水平触发,而不是边缘触发?
  6. 介绍三次握手,为什么不能两次?
  7. 介绍流量控制
  8. 介绍拥塞控制、拥塞控制的缺点(面试官提示 google BBR 算法。印象中搭梯子的时候用过这个算法,当时稍微了解过,奈何脑子不好使,已经忘了。)
  9. 做题:实现 strcpy(放水的吧)
  10. 提问环节:
    1. 部门、业务、语言
    2. 求建议
    3. 多久有面试结果(面试官直接说过了,开心,终于突破一面了。之前很多一轮游,都快自闭了)

CSIG实习二面(凉)

  1. 自我介绍
  2. 介绍 Reactor
  3. Reactor 在系统资源方面有没有缺点?(不会,讲了Reactor的一些其他缺点和epoll的内存和拷贝就绪fd的消耗)
  4. epoll底层实现
  5. 堆排序各个细节?保存数据的底层数据结构(数组实现的完全二叉树)、父子节点的索引关系、堆构建方式、稳定性、时间复杂度、为什么是log(n)
  6. 说说定时器的实现
  7. 为什么选择最小堆?
  8. 回答前面的问题时提到了时间轮,问了时间轮的实现?数据结构、驱动方式。
  9. 找出字符串中只出现一次的第一个字符。
  10. 逻辑题:100本书, 两个人轮流着拿, 一次最多拿5本, 最少拿1本。 你先拿,能拿到最后一本书吗?(只说出了6这个关键信息,其他的都是在面试官的引导下答出来的)最后还问了原理,我说不会,面试官长长地叹了口气,然后就结束面试了。

应该凉了,上次PCG一面凉了也是周五,难受!

TEG实习一面

  1. 项目的各种设计和细节
  2. Linux进程内存布局
  3. 堆和堆区别
  4. 堆和栈访问效率(从cache、缺页中断方面考虑)
  5. tcp和udp的区别
  6. 提问环节

虽然等面试官等了很久,但是面试官很友善,整个面试过程的体验比较好。而且、而且、而且,面完十几分钟,刷新了之前打开的腾讯校招官网,发现过了一面了。看来等得值啊。感谢面试官。

TEG实习二面

一面那天晚上,约了第二天早上二面。

二面全程聊项目。

  • 实验室项目
  • 介绍项目
  • 有没有将 TCP 应用(我的项目,人均muduo)到别的地方。(答:写了一个 demo,搭了一个简单的 HTTP 服务器)
  • 长短连接
  • 服务器在什么情况下会主动关闭连接?(答了出现5XX状态码的时候,4XX状态码不确定。现在认真思考过,出现4XX状态码的情况,服务端应该不会主动关闭,不然我们看到的很新颖的404页面哪来的,这些404页面除了html文件外,还需要图片和css等文件。还有一个我后来想到的情况就是服务器限流,后丢弃一些新来的连接)
  • 有没有考虑超时的情况(答了定时器,心跳机制)
  • 我回答的都是服务器的处理方法,面试官接着问客户端呢?(如果客户端关掉了,由tcp协议响应RST报文。如果只是网络问题,导致客户端发送的数据丢失了,客户端会尝试再次发送数据)
  • 开发HTTP服务器,需要注意什么问题?(答了用状态机解析http协议、有工作线程池需要考虑一些函数的线程安全问题、根据我网络库的特性,建议使用工作线程处理耗时长的任务,特别是io、通过网络请求其他服务,例如rpc、连接数据库。面试结束后我想到可以回答的点:1. 库的基础设施,例如数据库连接池。2. 静态资源方面:零拷贝、缓存、LRU)
  • 压测情况,哪里可以改进?(1. 硬件 2. 网络模型,扯了一下Reactor和Proactor,设计异步io 3. 高效的日志,分析日志需要加锁和IO操作对性能的影响 4. epoll 水平触发和边缘触发,分析了我使用水平触发的原因 面试后想到的点:连接处理如果可以“调度”,减小周转时间,这是os的知识,不知道能否实现,是我自己的一个脑洞)
  • 面试官提示协程(我说了一会自己对协程的理解,一直犹豫要不要提到go,后面知道没话说了,也还没组织好关于 go 协程的语言,所以没说。提到了微信的libco)
  • 提问环节。(得知我的网络库项目和部门的方向很契合,我猜这就是两面都是聊项目的原因吧)

还有一两个问题忘了。整个过程体验比较好,基本上都是我在讲,面试官在听,没有打断过我,直到我“词穷”为止。然后面试官根据我的回答,继续深入问问题或者引导我补充之前的问题。

二面完,过了10分钟左右,刷新官网页面。虽然还是处于复试状态,但是面试时间的状态变了。我猜应该是过了。终于突破二面了。

TEG实习三面

三面是总监面。

二面当天下午,我正准备午睡的,接到了深圳的电话。立即联想到,可能是三面。立即带上耳机,面试。

  • 自我介绍
  • 总监说前面肯定问了很多技术了,我们现在简单聊聊机型了。说一个你项目中的难点吧。
  • 我说了Reactor模式,还没讲完。总监说你讲一下Reactor吧。
  • epoll 水平触发和边缘触发在实现上的区别是什么?(我从红黑树开始讲起,面试官说不用讲这一部分,直接讲水平触发和边缘触发部分,被嫌弃啰嗦了,哈哈哈)
  • 简历上写了进程间文件描述符是怎么实现的?我以为问实现方式。后面总监改成问,文件描述符在进程间是共享的吗?我就从进程维护的文件描述股列表、内核维护的打开的文件描述符列表和inode方面回答。其实总监的问题的意思不是这个,他更直白地解释说进程间发送fd(1、2、3),接收到fd的进程可以使用。到这里,我知道了总监是想问什么,遂答之:不是,真正发送的是进程中一个文件数据结构类型的数据。总监得到了满意的答案,就说可以了。
  • 总监说简单问问就可以了,然后就到了提问环节。
    • 技术和管理的关系
    • 后面的流程,总监说会有hr联系你的了。

TEG实习hr面

  • 自我介绍
  • 个人情况
  • 什么时候接触计算机方面,并决定从事IT?(本科的时候非科班)
  • 怎么学习?有什么觉得比较难的课程?
  • 想在腾讯收获什么?
  • 提问环节

一天面了二面:gm面、hr面,第二天收到 offer call。hr说再过一天会发offer邮件,但是当天晚上就收到了offer邮件了。这效率。。。顺利到让我怀疑是不是遇到诈骗集团了。

没想到我的腾讯应聘之旅就在这画上句号了。

秋招提前批 腾讯音乐一面(1h 30min)

  • 自我介绍
  • 协程
  • 介绍项目
  • epoll 的标志位 EPOLLEXCLUSIVE不能完全解决惊群问题,具体是哪些场景下?
  • 多线程和多进程的选择
  • 了解服务器程序热重启吗?
  • 哪方面比较熟悉?(网络编程、内存管理)
  • 流量控制、拥塞控制?知道linux内核的拥塞控制吗?
  • 慢启动或者拥塞避免发送速度增加的时机是什么时候?
  • 半连接队列、全连接队列,半连接队列满了,一定会返回RST报文吗?(返回RST报文是我提的,但是一被质疑,就怂了,不敢确定)
  • 多线程写同一个socket,需要加锁吗?了解 short write 的情况吗?
  • read、write 的表现,read在阻塞模式下读数据,一定会阻塞吗?(例如,一次就将内核缓冲区的数据读完了,还会阻塞吗?)
  • mysql底层数据结构
  • 了解redis吗
  • 了解http2吗?
  • 了解分布式系统吗?
  • 30亿字符串,统计出现次数,求出现次数top 10的字符串
  • 实习相关,包括工作、技术上的收获、线上机器多少台、QPS、rpc协议
  • 提问环节

这次面试面了一个半小时,聊了很多很多,降到嗓子都快哑了。面试官部门是做基础架构的,所以问得比较深入。通过这次面试暴露了一个问题:对于深入一些的问题,没有了解,即使了解了,也是不太确定答案。大概,我不适合基础架构部门吧,我还是去做业务好了。

秋招提前批 腾讯音乐二面(50min)

  • 自我介绍
  • tcp 和 udp 的区别
  • tcp 报文头部字段
  • psh 什么意思?
  • rst 什么意思?
  • 滑动窗口的作用
  • 校验和的作用,如果报文传输过程中被修改了,怎么通过校验和发现?
  • socket连接过程状态机变化过程
  • tcp 三次握手
  • 半连接队列
  • 进程和线程的区别
  • 实习工作
  • 职业规划

秋招提前批 CDG一面(60min)

  • 编程题:接受一个十六进制的数,有可能0x开头(也可以没有),输出该数值的十进制表示(可以使用c++标准库)
  • mapunordered_map的区别
  • C++ static 的用法
  • 两个 cpp 文件都有一个static a,它们是同一个吗?
  • C++ const
  • const版本的成员函数一定修改不了成员变量吗?(mutable、虽然不能修改指针,但是可以修改指针的内容)
  • 指针的话,还是需要看指针的类型,const修饰指针呢?
  • 了解constexpr吗?
  • 空的类,实例化的对象大小是多少?
  • 编译器默认会生成哪些成员?
  • 移动语义
  • 进程间通信方式,哪个效率最高?
  • 懂数据库吗?

秋招提前批 CDG二面(45min)

  • 自我介绍
  • 实习内容
  • 怎么设计接口?
  • 两个各存5000万条交易数据(格式:交易号、姓名、金额)的文件,怎么找出两个文件的差异数据?
    • 分块排序+归并,从小到大比对
    • 桶排序,对应序号的比对
  • 熟悉数据库吗?
  • 事务的隔离级别
  • mysql 引擎,区别

秋招提前批 全名K歌 一面(40min)

上来直接做4道腾讯算法笔试题,30几分钟没有完全做出来,面试官让我说说思路,就结束了。官网流程也秒凉。这之后,就没被捞过了,哭了。

更多模拟面试

全部评论

(12) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐