首页 > 面试复盘|2次字节实习面试被刷如何9日拿意向书|大厂面试对比
头像
甜橙htc
编辑于 2021-08-21 15:19
+ 关注

面试复盘|2次字节实习面试被刷如何9日拿意向书|大厂面试对比 内部员工回复

先导篇,杂七杂八的废话

在五月份经历了两场字节实习面试的失败之后,我深刻地认识到了自己的“炮灰”角色,抱着必死的心态冲了字节的提前批......我觉得最不可能通过的公司,竟然率先第一个通过了它的提前批,拿了意向书......
当hr告知字节三面通过的时候,内心的第一秒钟确实是百感交集,兴奋中夹杂着一些释怀,心想:之后的面试之路可能就没有这么焦虑了吧。
有时候命运就是这样子,当我觉得越不可能的事,也许就潜移默化的发生了。字节跳动在我的印象中是非常考验一个人的基本功的,业界相对来说觉得这家公司的面试难度比较高。

......

从结果上看,拿到了字节跳动产品研发与工程架构部的意向书,职位是后端开发工程师-基础架构方向。

然而,回溯到投递简历到时候,并不是第一意向直接投递了产研架构的基础架构方向,而是抖音电商的后端。当时我的心路历程是:既然相对来说个人稍微熟悉一些kubernetes和分布式服务架构设计相关的知识,那么如果投递基础架构方向会不会和其他人比较优势就变小了呢?于是乎,我就冲了抖音......

但是,我一位实验室的哥们投递了产研架构的基础架构方向,一个小时之内通过了简历筛选。可能觉得越拖hc越少,在我内心纠结的前提下,加上我同学的劝导,haha,最后他把某位产研架构的hr小姐姐推给了我,我就冲了产研架构的基础架构......(ps:我的这位兄弟最终也成功通过了面试= =)。

面经

总体感受

字节面试的总体感受是面试官水平非常高,一般来说会把一个知识点挖到最深一直到不会或者模糊的地方,来考察你对一个知识点的理解程度。所以,个人觉得第一点一定要摆正自己的心态,除了一些操作系统和网络这些必须要很好掌握的基础知识之外,其他的一些扩展的知识(比如相对其他同学来说自己了解的一些组件),并不是说真的问到不会的就会给你挂掉,反而如果你有一定自己的理解,也许还是加分项嘞。

其次,就是在我面试的互联网大厂中,字节面试流程控制的相当规范。每一位同学都会有一个hr负责联系,无论是在面试流程中还是面试通过后的对接工作。和其他一些公司的体验对比我会放到文章的后半部分进行描述。

一面(2021-07-19|第一天)

一面的面试官长得贼帅,就是我印象中那种很爷们的形象,有一点点络腮胡,而且说话也很和蔼。
主要的面试就是以下的流程,先问项目,然后操作系统和计算机网络,最后一个类似于工程类的算法题吧。
大概就是以下内容:

  1. k8s提交一个yaml文件,一直到节点上创建容器出来,后边的整个过程是什么样子的?(围绕这个问题讲了好久好久,就不一一单独展开了,因为关键是看你聊到了哪里,整个过程涉及到了kubectl的原理、api-Server的作用原理、k8s存储api对象的机制、两层list-watch机制、k8s调度器实现原理以及运行过程、kubelet原理、Device Plugin原理、容器运行时接口(包括dockershim的前世今生)以及prometheus的最佳实践方式)。除了最后一个prometheus最佳实践不会,其他的运气好说的都差不多,而且最后一点在面试官对我点评的时候也涉及到了。
  2. 操作系统的进程和线程的区别,能问到的都问了,一面面试官的问法就比较自由,让我讲知道什么,全都说出来,最后他还会查漏补缺,比如说他最后会问我“嗯,说的差不多,但是还有一点,进程和线程的通信方式还没讲,可以再讲一下这里。”
  3. tcp三次握手的目的,这个是比较基础的问题,网上都能查到答案。
  4. 算法:现在有10个10g的文件,统计频数top k的数据是什么?这个问题是先回答出几个排序方法,但是面试官的目的并不是在于排序算法的选择上,而是如何设计这样一个系统,比如用到并发编程的角度读文件,结合go语言特性分析一下并发的优势之类的,然后我自己发挥了一下在大文件读写方面可以使用直接IO而非缓冲IO的方式来读之类的,相对来说是比较工程化的问题。除此之外就没有其他让手撸的算法题了,还是比较幸运的。

最后总结一下,一面问的是真的细节,太细节了,感觉面试官非常懂k8s和prometheus扩展开发这一块,不过也合理,毕竟是基础架构方向,这些可能是他们的专场(感觉上是通过简历的相关性来分配面试官的?)。因为我的项目也好还是研究方向也好都是和k8s相关的内容。

还有一点很关键的部分,就是一面面试官在最后对我评价的时候最关键的一个部分:原话大概是:“你知识掌握的不错,功底很扎实,但是一些面试技巧方面的东西可以给你一些建议。其实很多东西你不需要非要等着我去问,你应该自己把它讲出来,比如说容器运行时接口这些,你知道的话这肯定是一个加分项,今天是我问了,那如果我没有问呢?除此之外有一个我不太满意的地方是关于prometheus的最佳实践方面,我觉得做工程来讲,领导布置一个任务,其实我觉得你应该自己去主动了解一下一个组件的最佳实践方式是什么,而不应该为了完成任务而完成任务,而是应该看一下官方的一些建议之类的,写出最标准的东西来(大概是这个意思)”

一面完事之后大约一个多小时就收到了通过的邮件,以及预约下一次面试的时间。

二面(2021-07-20|第二天)

淦!直接约第二天,主要是不想等了,趁着自己记忆力还比较清晰的时候,尽量约早一点吧,晚了hc也会少......
二面面试官长得特别像我一个高中同学,看到了之后总跳戏,就想笑...人很好,说话很温和。
二面主要考察是项目方面的东西,围绕着简历中一个项目的架构设计来展开,刚开始的几分钟我给面试官看了我预先准备的一个ppt,上面有一个自己最熟悉的一个项目,包括项目概述,架构设计,架构演变改进的几个重要的部分,讲完之后他觉得还不错,然后围绕这个项目做了一些展开的询问,大致分为以下几个内容:

  1. device plugin的设计
  2. 项目中自己负责的部分,推理端的ai相关的部分是具体怎么实现的(不是我实现的,是我们组的另一位同学...)
  3. 根据项目中的内容,问如何采集对应的节点相关信息,如何设计,是采用开源时序数据库还是自己实现一个daemonset,答案是按后者,避免调度组件对第三方监控组件对过分依赖
  4. 数据库读写分离的设计,写回源避免OOM之类的方法等等(具体的我记不太清了,反正大概是解决并发场景下的一些手段吧,讲了挺多)
  5. 分布式场景下服务发现的一些手段(这个问题也不是特意以问答的形式,就是聊着聊着就聊到这方面的东西,然后讨论了一下)
  6. 还有一些其他的细节,我实在是忘记了......
  7. 算法题:区间排序,牛客和leetcode上都有

二面特别关注架构设计和项目的细节,操作系统和网络部分基本问的很少,感觉基础架构可能比较关注这些吧,最后也是差不多一个多小时收到的通过的邮件,然后预约主管面的时间。

主管面(三面 2021-07-23|第五天)

主管面时间很难约,本来我约的第二天,但是主管突然有事去北京开会了,然后只能约下周。hr小姐姐很贴心,看我比较着急,然后和主管商量时间可不可以提前,最后主管说他只有23号下午一点可以抽出时间来给我面试,就约了当天,否则只能下周了。

我主要是比较怂,见了年纪长一点的领导就心慌,主管面的时候讲话有点结巴......

主管面主要问的还是操作系统,我发现面试过程中操作系统的东西还是挺多的。

  1. 文件IO(阻塞非阻塞,同步异步,缓冲非缓冲)
  2. 结合文件IO,聊一下epoll(包括epoll的实现和原理,水平触发和边缘出发,两种如何搭配阻塞和非阻塞的问题,以及用法)
  3. k8s CRI的实现方式,具体是如何实现扩展及接口的
  4. Device Plugin的实现原理
  5. 算法题:数据流会发给你一堆数,如果是(1,x)则你要接收这个数据,如果是2则要计算你之前收到的所有数据的中位数,要求O(logn))复杂度找到这个数,这题是那个剑指offer原题,hard难度。我根本没做过,直接用的二分查找,然后插入做的,最坏的时间复杂度到了O(n),还好不是一点思路都没有,如果啥都没写的话感觉就直接挂了也不是没可能......

干货分享:刷题方法、基础知识&语言(仅供参考)

如果了解过k8s的朋友,想做基础架构我个人觉得还是比较有优势的,感觉字节面试下来比较关注我简历中的device plugin这方面的东西,一面和主管面都问了,以及对k8s的理解,扩展机制之类的。

算法题

自己准备的工作大概是从过年的那个寒假陆陆续续开始的,寒假在家没事刷了一百多道题,放假回来之后到学校就有事没事的写两道,最后就刷了一共两百多个吧(leetcode+牛客),算上重复刷了两遍的大约三百多道。
图片说明

总体来说刷的比较散,比较随意,最开始的话我是按照https://greyireland.gitbook.io/algorithm-pattern/这个网站来刷的。这个总结比较适合go语言的同学来入门,按照这个来刷题之后会对算法题有一个整体的把握。这个刷完了之后,后面就比较随意了,主要的难点其实就在于动态规划和回溯两类题目上面。一般感觉如果面试做不出来的话大多数也是这两种题做不出来(ps:这里面的回溯模版感觉非常好用)。

基础知识

操作系统和计算机网络

操作系统和网络是看的小林codding图解网络和图解系统,非常适合面试的同学看,避免直接去啃黑皮书(很难受的,不过csapp的确是一本神书,后续得读读)

golang

目前我本身的技术栈就是go语言,可能和研究生方向和项目有关系吧,写go比较多。
强烈推荐b站up主:幼麟实验室,这个小姐姐讲的是真的好,想深入了解操作系统和golang底层原理的同学可以去看看,看完之后你一定会回来感谢我,嘿嘿
除此之外,可以看一些go语言底层原理的开源书籍,比如go语言设计与实现,深入理解go语言之类的,最近还新出了一个go语言原本。

数据库

mysql我其实了解的没有其他的那么深刻,但是基本的原理和概念还是要知道的,只不过问我的比较少,专门要搞数据库引擎和存储的同学还是要仔仔细细看过的。

其他

过了基础知识和语言的一关,其他的就看个人的项目和研究方向在哪些地方了。

7家公司面试真实对比

终于到了吐槽环节,其实万万没想到,字节竟然是我第一个拿到意向书的公司....毕竟我觉得自己过不了。

那么这篇文章说过了大概一个月左右的时间才写的,中间我也陆陆续续面了一些其他的公司,真的是看到了世间百态,hhhhhh.....

百度

一二面是电话面,三面是经理面,视频面。一二面面试官感觉真的很强,非常懂技术,和百度面试官聊大脑要疯狂旋转,思考如何解决他提出的问题,过程非常爽(一面主要是基础知识,算法题竟然奇迹般地又出了多文件topK问题,不过百度的一面是在字节之前;二面架构设计,问的很多,很细,二面面试官真的强)......不过三面被经理给gank了,出了两道智力题,可能是我智商低,是真的不会,在经理的带领下磨磨叽叽十分钟才整出来,可能是一二面面评还可以,否则感觉直接就没了......

shopee

直接冲了sre,感觉shopee上海太卷了,怎么讲呢,shopee提前批筛选规则就是看学历,有几个同学有本科是双非的直接简历筛选被淘汰了,说实话挺可惜的,感觉他们真的挺强的!shopee的面试流程也很正规,面试系统应该是shopee自己的系统,面试非常喜欢问八股文,问的也比较细,主要问计算机网络,算法题比较灵活,令我印象最深的是二面让我自己实现一个负载均衡器,但整体感觉难度上比字节小很多。

华为

非常看论文,非常看比赛,非常看学历。我过了主管面(最后一面),但最后并没有通过华为的提前批(Find Star 上合地区这边的叫法)。原因是和其他人对比,我缺少重大比赛的经历和奖项,可能还拼不过本硕985的同学吧(我本科某211,硕士某985),换言之,其实当我参加面试的时候我就已经输了。我面的部门是华为运营商BG上海部门。华为一天三场面试,六月份就搞定了,但是结果是在我拿到百度和字节的意向书之后的很后才告诉我,效率极差。也不是说我对华为有什么偏见,实在是体验感极差极差,还真的见到了这种筛人机制,过了终面再刷人...而且听同学说华为会泡池子,意味着就算过了也不一定最终会过,我吐了...emm...是不是我当初选择华为云会好一点呢?我不知道...毕竟还有正式批的嘛(虽然我的意向不大了)可能是我太菜了【doge】。毕竟我不能一棒子打死,华为毕竟是一个大公司,其他部门我也没了解过,只不过在某个特定的时间,某个特定的场合,某个特定的部门,某个很菜的我不太匹配罢了......

商汤

投的是golang后端,二面挂,没啥好说的。一面问了很多linux命令的东西,没答出来,比如kill 命令能不能被捕获之类的。a了两道算法题,勉勉强强过。二面算法题没写出来,但是面试官把我一顿夸,然后挂了...后面就没投了,我以上投的全部都是提前批。

端点科技

二面关于k8s的问题没答好,不是特别熟悉RBAC,挂了,后面就没投,可能他们也不缺人吧。

阿里

我服了。首先,在校招投递岗位的要求中,我投递的基础平台研发的岗位并没有说要求一定得去实习的,这一点并没有写。其次,我并没有投递意向部门,无论是人工的还是AI分配也好,是阿里那边主动把我捞到阿里云的基础设施什么部门的,然后一面的时候面试官问我能不能来实习,我说不能,他直接告诉我说他们不能收不能来实习的,所以就不能通过,但是流程还是要走一下的,介绍一下他们的部门,最后说有缘再相见。并且,一面的面试官约的是周四下午,我周四下午等了一下午,看完了东京奥运会乒乓球樊振东和马龙的半决赛,都没等到阿里的面试官,结果出乎意料的等来了shopee的hr面,约到了当天下午六点。结果第二天阿里的面试官打电话来说要面试,大哥,我那时候都要上火车走了,我一想指不定还得约到什么时候呢,结果就直接说不收实习的,给我挂了,问题都没问。而且目前,过去了二十天左右,我的简历还被那个部门锁着,其他部门也无法捞我,很强。虽然可能并不是那个面试官的锅,他讲话也比较平和,但是上层的管理能不能合理一点、正规一点,你要是明确讲说你不收实习,那我就不投了嘛,你捞我干嘛咧......

网易互娱

两个面试官,一个负责主要问,一个负责gank,问项目相关的设计,还有tcp的知识,过了,等二面

腾讯

20号一面,祝我好运......

总结

我学历是硕士某985,本科211,这一点来说提前批有些公司还是比较看重的,就没什么优势。我也没什么特别吊的项目经验和竞赛。所以针对我这种没啥实力的选手来说,我个人觉得让自己的简历方向窄一点比较好,我自己的三个项目全说是k8s相关的东西,可能带来的影响就是某些部门比较感兴趣,某些部门就十分不想要吧......

其次就是心态摆放的低一些,如果抱着每次必挂的心态,也许就被反奶了呢......

最后,到目前只拿了百度和字节的意向书,都是上海,职位差不多,都是基础平台、基础架构研发岗位的,shopee结果还没有出,不知道hr面通过了没......可能和其他大佬相比我还是比较菜的。

最终还是希望大家找到好工作,offer拿满,以上只是我本人的一点小小的愚见和体会,但愿能帮大家拓展一下思路。

大家如果觉得对自己有帮助的话,可以收藏加评论哦!!! 顺便在下方附上字节hr小姐姐的邮箱,意向产研架构的小伙伴可以直接把简历投递到下面的邮箱,嘿嘿

yintian.erin@bytedance.com

更多模拟面试

全部评论

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

推荐话题

相关热帖

近期热帖

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

近期精华帖

热门推荐