从 IEG 到 WXG,我的暑期实习总结(附面经)

今年 3 月底从 IEG 离职,4 月 8 号开始投递简历,投了 10 家,给面的有滴滴、快手、腾讯音乐、腾讯、字节这 5 家,米哈游、网易雷火、得物、拼多多需要笔试我没有参加,乾象简历挂,阿里、京东、美团这些 Java 厂怕被当成一条野狗没投,投的都是后端或者服务器开发,不太想继续做鸡架。

近两年依次学习过的内容有:cmu15-213、mit6.s081、一生一芯第六期(接近做完B线)、cmu15-445、muduo、mit6.824,然后就是因为工作原因学了一些编译原理和静态分析的内容,这部分看的比较杂,我个人喜欢看很多资料来对比着学,另外对 llvm 里 clang 的一些模块比较熟悉一些,基本都是轮子项目,基础应该不成问题,但是 toc 的后台经验比较缺乏。

面试官基本都比较友好,没有太拷打我从做 tob 工具转到做 toc 业务,我对后端框架的使用、后台中间件的使用、三高的系统设计这一块确实了解的比较少,面腾讯顺利的原因大概率是之前的面评和 ld mt 给的实习评价都还不错,背书比较强,在腾讯这种重基础的厂还是比较有利的。还有一点就是之前实习经历大多数面试官可能了解的不多,所以问的时间一般比较长,然后这又刚好是我比较了解的部分,他们也没法指出我说的对不对,然后就没有那么多时间拷打其他内容了。。。

基本情况

  • 学历:双非本,9 硕,科班
  • 实习经历:中小厂 C++ 2 个月、大厂 C++ 8 个月(都不是后端业务)
  • 简历项目:15-445、6.824
  • 算法:codetop 前 250、hot 100
  • 八股:主要补充了一些 MySQL 和 Redis,陆续准备 3 周

面试过程

  • 滴滴:4.10 一面
  • 快手:4.10 一面 4.14 二面
  • 字节:4.21 一面 4.27 二面
  • 腾讯音乐:4.14 一面 4.22 二面 4.24 三面 4.28 HR面 4.29 OC
  • 腾讯:4.14 一面 4.18 二面 4.23 三面 4.28 面委会面 5.7 HR面 5.9 OC

滴滴和字节已挂,快手还没结果,字节二面和面试官聊的很投缘,反问口头说我过了,让我准备后面的面试,结果五一之后给我挂了,可能还是希望招和业务 match 的实习生。目前已接 wxg。

面经

滴滴

一面:

1. TCP为什么可靠?

2. 实习经历拷打

3. 算法题:最大回文子序列(太久没刷了,面试官提示之后才写出来,还没 bug free)

快手

一面:

1. 实习经历拷打

2. 虚拟内存实现的目的?

3. 右值引用:std::move 一个对象,这个对象还能使用吗?

4. 智能指针的并发安全问题?

5. 下面这个对数组的修改会导致什么问题?

void foo() {
       int k;
       int vec[5];
       int l;
       
       bar();
       
       vec[5] = 3;
   }

6. 讲一下LRU-K是怎么实现的?

7. 算法题:LRU 实现

二面:

1. 实习经历拷打

2. 八股文:

  • new 一个字符串 发送给一个服务器,服务器收到并显示在屏幕上,有多少次系统调用和拷贝操作?
  • 一个服务器有大量的 close_wait 状态,为什么?怎么解决?
  • MySQL 主从分布式事务一致性保证?
  • MySQL 容灾设计?

3. 算法题:力扣 670 最大交换

字节

一面:

1. 实习经历拷打

2. 项目拷打

  • 为什么是可扩展哈希,为什么不用别的?LRU-K有什么优势?
  • 为什么是B+树?怎么实现的并发加锁?如果不同事务访问B+树索引怎么保证并发,描述一下?悲观锁是怎么做的?
  • 火山模型是什么?nested index join是怎么做的?多个事务并发访问这个算子你能分析下吗?谓词下推和TopN你能描述下吗?
  • 在可重复读的状态下,你能讲讲二阶段锁是怎么实现的吗?有向图的检测是怎么建图的?恢复策略你是怎么考虑的?
  • raft算法基本原理

3. 算法题:a长度木头,分m段,求最大积?(类似整数拆分,多一个维度的DP)

二面 :

1. 实习经历拷打

2. 项目拷打

  • buffer pool 和 MySQL 的 buffer pool有啥区别,这个可扩展哈希和 LRU-K 有什么优势?
  • B+ 树的乐观锁优化你是怎么做?
  • 有了解过 MySQL 的悲观锁和乐观锁的具体实现吗?
  • 讲一下你这个事务锁管理器运作原理,这个三种隔离级别和支持五种锁是什么?

3. 分布式

  • 了解paxos算法吗,和raft相比有什么优劣势
  • zookeeper了解吗?

4. 有了解过进程间的通信方式吗?

5. IO 多路复用有了解吗?

6. 讲一下在浏览器中输出一个 url 到显示在浏览器这整个过程发生了啥?

7. DNS 查询过程能详细讲讲不?

8. 了解 SQL 的慢查询怎么优化吗?

9. 算法题:岛屿数量

10.数学题:50个红球,50个白球,两个盒子,怎么放球让拿到红球的概率最大?

腾讯音乐

一面:

1. C++拷打:

  • 面向对象是什么?
  • 与面向过程的区别?
  • 虚函数表原理?
  • 智能指针:介绍、线程安全性?
  • C++内存模型是啥样的?
  • 内存对齐讲讲?
  • 原子操作实现?
  • 内存屏障讲一下?
  • 无锁队列实现?

2. 网络拷打

  • TCP 三次握手?为什么三次?
  • TCP四次挥手?为什么四次?
  • TIME_WAIT状态,为什么需要2WSL?
  • HTTPS的握手过程?
  • 为什么HTTPS最后还是用对称加密,折腾这么长时间干啥?
  • Socket写过吗?和TCP握手怎么对应的?
  • 半连接队列是什么?在三次挥手的哪个阶段?
  • SYN攻击是什么?有什么办法应对?

3. 数据结构

  • 哈希表:实现?哈希冲突处理?链表法怎么优化减少哈希冲突?
  • 二叉树:平衡树、二叉查找树、红黑树、B树、B+树?
  • 红黑树为什么这样设计?
  • B+树对比B树有什么缺点?有什么优点?

4. 算法

  • 快速排序?
  • 排序的稳定性?
  • 快速排序是稳定还是不稳定?
  • 怎么优化快速排序?

5. 操作系统

  • 进程和线程的区别?
  • 进程切换上下文换的是什么?线程呢?
  • 虚拟内存?
  • 懒加载机制?
  • 进程间通信方式?
  • malloc实现原理,主流malloc有哪些?讲一个你熟悉的?
  • 零拷贝有哪些?
  • 什么通信手段最快?
  • 为什么是mmap?对比消息队列、管道和其他的?
  • mmap原理?
  • 中断和异常?

6. 算法:LFU

二面:

1. 腾讯实习经历拷打

2. 八股文拷打(每个部分的内容相对一面会查考的更加深入,深挖进去,一面基本快问快答)

  • C++:
  • 面向对象
  • 智能指针、右值引用
  • 数据结构
  • 红黑树、B/B+树
  • 哈希表
  • 算法
  • 排序算法、快排、稳定性、改进
  • 操作系统
  • 进程线程区别
  • 进程上下文切换什么
  • 进程间通信
  • socket编程
  • IO多路复用
  • 惊群效应
  • 计算机网络
  • TCP三次握手、为什么三次?
  • TCP四次挥手、为什么四次?Time Wait 为什么是 2MSL?

三面 :

1. 腾讯实习经历拷打

2. 闲聊

腾讯

4.15一面 4.18二面 4.23三面 4.28面委会

面试内容以实习经历和算法题拷打偏多,八股几乎没有

全部评论
强啊🍐神
点赞 回复 分享
发布于 昨天 14:35 江西
接好运
点赞 回复 分享
发布于 昨天 14:16 陕西

相关推荐

评论
3
8
分享

创作者周榜

更多
牛客网
牛客企业服务