热乎的宇宙条总部面经,已拿offer,速来围观
作者:陈同学
说起我字节跳动的面试经历可以说一波三折的,我在字节有经历过「十轮」的面试经历。
我和字节跳动的渊源可以追溯到去年2019的10月份,当时我的水平很菜,由于怕进入字节的招聘系统,所以我最早是选择在boss直聘上投递简历。当时投的是日常实习,以为这样就不会在面试系统上留下我的面试记录,自然就会更保险,但是后面才知道这样还是会进系统的,那个时候正好已经拿到了「 腾讯」的日常实习0ffer。
鉴于此就没有在当时面了,跟字节的HR商量,能不能将面试的时间延迟,也就是2020年的3月份。因为当时预想在腾讯会实习很久,没想到那边HR也同意我往后拖延这么久的一个面试时间。然后在腾讯那边实习到12月份,提前结束,在实习期间主要是用go写的一些组内数据系统和升级一些需求等等。
结束了实习以后开始整理复习自己学过的东西,包括梳理项目等等。一直到了2月份回家。在家中享受着由于疫情导致的史上最长寒假。在这很长一段时间里面,我都没有刷题(3月份之前),而是一直在复习巩固深入前面的基础和顶目部分,所以算法是很差的。这也为我后面字节日常实习面试的惨败埋下伏笔。

1、 3月24日 抖音后端
这一天,我迎来了我在字节跳动的第一场面试
- 当时先是问我一些在腾讯实习时侯做的东西 
- 深挖一些业务细节以及深入的挖一些顶目中设计到的技术细节 
虽然有对实习顶目有做过梳理,可能还是对一些细节思考的深度不够,回答的还是磕磕绊绊的 
- 顶目讲完了就开始上算法题了 
- 题目是剑指offer原题--栈 
- 旋转数组的中位数 
当时是记得有做过求旋转数组的最小值,所以知道大概是用二分法去做,但具体的一个实现逻辑,在那里卡了好久支支吾吾了半天,气氛一度陷入尴尬,面试官说你是不是有点紧张,这样把我先问你一些别的问题,于是就又问了一些常规又基础的问题 

- 三次握手 
- 四次挥手 
- 进程线程 
- 进程同一个主机通信和不同主机通信有什么区别 
- 会经过网卡吗等等 

2 、4月12日我开始了
第二次的字节日常实习面试产品研发和工程架构部,好了在那个平凡的下午面试开始了 
- 老规矩依旧是先自我介绍 
- 深挖项目 
- 深挖实习实习经历 
- 然后问基础问题其中比较崩的一个点是把红黑树的特性说错,但总体我觉得还是聊的挺流畅的没有什么太大的问题然后就开始最担心的手撕算法环节了 
- 当时出的一个经典的二维动态规划的题,力扣原题岛屿数量 



3 、619号一面二面是连续面
从下午四点一直到下午六点 
1 面1小时
- 自我介绍 
- 讲讲管道的源码 
- 数掘库哪些引擎 
- 对于文件系统的理解 
- 内存管理 
- 伙伴系统说下 
- epoll{讲了码实现, 
- ET和LT在源码层面是怎么实现的 
- 网页输入url的全路历程,深挖细节 
- 实现一个哈希表如何实现 
- 实习顶目细节 
- 内存池顶目细节 
- 有没有了解过别的内存分配器 
- 僵尸进程与孤儿进程 
- B十树索引和B树对比 
- 信号机制讲了内核实现,些信号是不能捕获的? 
- 还有没有看过别的源码 
- leetcode零钱变换变种 
2面1小时
- 自我介绍 
- 讲一讲自己觉得有挑战性的项目 
从项目目的,解决的问题,怎么解决的,亮点是什么,改进了什么达到什么想过去回答 
- 如果让你设计一个编译器,你如何设计 
- 开始手撕 
- 用互斥锁实现读写锁,然后问了不少延伸出去的内容 
- 树的z字形遍历leetcode原题 
- ·webserver项目细节 
- 长连接短连接 
- tcp的keepalive和http的keepalive 
- 场景设计题 
那边说总共三到四面。刚刚hr打电话来说二面通过了约的本周日三面。字节效睾很高,许三面通过面试完大概几十分钟hr就打电话过来说通过了安排下一面紧接着后天就开始了三面和hr面 
3三面6月21日
3面4面也是一起连续面。字节3面30min。 
- 自我介绍 
- 有没有学过计算机相关的课程 
- vector实现 
- C++对象存储模型 
- STL分配器 
- RPC调用过程中数据包流程(不会rpc,讲了数据包在网络中的传输流程)组包是在网卡组的还是在操作系统组的? 
- 有没有什么工具可以查看在操作系统协议栈中传输的数据包 
- epoll内核实现 
- epoll中tx和rx什么区别(不会) 
- shared_ptr源码 
- 实习相关-tars框架的tctc_epollserver组件源码 
- 实习的体验和收获 
- 如果收获了字节阿里腾讯offer怎么选?以后的感兴趣的方向?反问环节 
4面hr面30min
- 介绍一下自己 
- 前面几轮面试体验怎么样 
- 自己最不能忍受的一个点 
- 别人对自己的一个评价 
- 对字节跳动的看法 
- 讲一讲华为软挑比赛 
- 比赛时侯有没有碰到什么难点 
- 如何配合协作 
- 在实习时侯的一些收获 
- 如果自己是顶目组的一个Leader,组内有人进度老是拖延你会怎么办 
- 如果收获了字节阿里腾讯offer怎么选? 
- 能不能来提前实习 
- 反问环节 
本来以为hr面差不多就稳了,没想到竟然还加了一轮技术加面,可能是是我实习的两次一游表现的太差导致的吧,也有昕朋友说是会随机抽取10%的候选人来进行加面。总之也就是这个加面再次让我的字节跳动面试之旅再陷险境。 
4 、字节5面(621)
字节五面开始“.也是很常规的一些环节 
- 自我介绍 
- 腾讯实习顶目细节 
- 然后一道算法题 
5、字节6面
我开始了我在视频架构部重新的面试流程也是一面二面连着面 
- 自我介绍 
- 网络第四层和第七层的区别 
- tcp到ip拆包组包的过程 
- httpl.1和http2的区别 
- https加密 
- 数字证书 
- 两道算法题 
- 判断是否是完全二叉树 
- 力扣原题leercode1024视频拼接 
- 有没有拿到其他offer 
6、字节七面
- 自我介绍 
- 腾讯实习项目介绍 
- 数据库的ACID 
- mysq膈离级别 
- b+树索引 
- select/poll/epoll 
- 一致性哈希 
- 算法题 
- 手撕单例模式 
- leetcode105 
- 反问环节 
7、字节八面7月2日
- 自我介绍 
- 介绍腾讯实习顶目 
- 问了go的一些问题偏场景设计 
- 场景设计题 
- 负载均衡的权值轮询 
- 算法题 
- 股票买卖只能买卖一次 
- 股票买卖能够买卖多次 
8、总结
- 一般大厂的面试每一轮面试官是会写面评的,所以如果你在实习面试或者提前批面试表现太差的话像我一样实习面试两次一轮游,是肯定会后面的秋招有影响的像我一样差点提前批简历都没筛选通过多亏了我有一个nice的内推人所以且面且珍惜自己评估要不要提前投 
- 对于阿里来说有些部门会在秋招或者实习前线下进行开展一些面试,这些面试是不进系统的抓住这些不进系统的机会是对自身水平评估的最好机会查漏补缺 
- 不要觉得自己有了大厂实习面试会稳,最决定面试能不能通过还是看你自己的水平 
- 如果一开始你没有经历过面试或者对自己水平不自信千万不要上来就投递自己想去的公司可以那那些自己不想去的公司或者不知名的公司练手打怪升级摸清套路 
- 找到一个好的内推人还是蛮重要的就像我的内,推人实在是太感谢他了 
9、书籍推荐
- 计算机网络 
《网络是怎么连接的》《tcp/ip详解》卷一 
- 算法与数据结构 
《大话数据结构》,极客时间王大佬和谭大佬专栏,《剑指offer》 
- mysql书籍推荐 
《mysql必知必会》《高性能mysql》 
- 操作系统 
《Linux内核设计与实现》《深入理解操作系统》 
- LinuxC/C++应用编程 
Linux基础命令推荐书籍:《Linux就该这么学》 Linux应用编程推荐书籍《后台开发应用与实践》《Linux多线程服务端编程》 补充资料:gdb手册和makefile详解 
- 大数问题 
大数问题通常的套路是hash,分治,布隆,bitmap,如果推荐的话还是上面数据结构相关资料.当然如果能了解下比如hdfs文件系统,mapreduce,spark/flink流式计算最佳哈 
- 分布式/中间件 
推荐书籍:《redis设计与实现》《从0开始学架构》《docker入门到实践》《大型网站技术架构-核心原理与案例分析》 
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看❤️
评论
