字节测开面经已收offer(两轮技术面,一轮技术加面,一轮HR面)
鼠鼠本人情况,本科四非,努力考研到某末九,硕士方向是经典计算机视觉,开始是奔着算法去的,后面觉得成果不行,满足毕业要求后果断Java启动。去年十月中开始学习Java,玩着学着,没啥压力。本来说着一月中寒假回去猛猛学,结果寒假回去陪女朋友猛猛玩了一个月。二月中返校继续学习,项目一是外卖和点评杂交的,项目二是商城,弄到三月二十一号开始投简历(有点晚了,三月初投我觉得最好,因为投了也不会很快约面),期间各种简历挂,一面挂,然后从开发变成开发测开都投,美团一面聊的很好二面延期后面跟我说没HC了,遛狗呢。。。万念俱灰之际,字节电话约面。开始都没敢约面,因为HR小姐姐上来就说这是个核心部门,我说要不算了吧,听说字节面试地狱级别难度,HR小姐姐跟我说试试呗试试呗,可能缺人所以会略微降低难度,两轮技术面,涨涨见识不吃亏的,决定尝试一下。特别感谢她,我的贵人。
一面(43min 温柔小姐姐)
——————————————————————————————————————————————————
1.自我介绍+项目轻微拷打
2.用过哪些锁(内置锁,共享锁独占锁,读写锁,乐观锁悲观锁,自旋锁)
3.mysql怎么建索引,有什么经验(区分度,经常用于where range查询的字段,字段太长了考虑前缀索引,联合索引记得遵循最左匹配原理,避免深度分页等。表数据少就没必要建索引)
4.布隆过滤器原理
5.HashMap HashTable ConcurrentHashMap聊聊(经典八股,HashTable东西是老的,但没什么用,不开门)
6.消息队列聊聊(只会RabbitMQ,自己看过kafka的八股,都说了)你都用过吗(只用过RabbitMQ,kafka是额外了解的)我们用kafka比较多,下去可以学学kafka(包的包的)
7.看你是做深度学习的啊,怎么不去算法(鼠鼠要是有顶刊顶会肯定想去,可惜菜啊。。。)
8.写几个SQL吧(但是她那边好像出问题了没法复制题目,其实鼠鼠真的不太会SQL,后续没写题,运气爆棚)改问我MySQL事务隔离级别,分别会产生什么问题(经典八股,直接吟诵)
9.手撕最长不重复子串(小姐姐电脑有点问题,让我共享屏幕本地写,快慢指针,非常快搞定,然后说思路,因为写的比较快,后面觉得还有时间,继续八股)
10.你要给一个接口限流,你打算怎么做。(不会场景题,但是突然想到背的八股限流算法,固定窗口,滑动窗口,令牌桶、漏桶,开始吟诵)
11.说说你硕士阶段的课题吧(这个真有话说,狠狠聊)
12.怎么都是后端开发项目,投的测开啊(测开好啊,测开可太好了,没有开发卷,而且测试是为了提升用户的体验感,更有意义。测开也是开发,开发不是测开。小姐姐说其实部门几乎都是开发,进来还得学Go,绷,吹过头了)
13.分布式事务(直接协议Raft Paxos起手,嗯背。然后扯Seata分布式事务模式XA AT TCC,吟诵)
14.计算机科班的,就不问你计网操作系统啥的了(人太好了)
15.什么时候能来实习,能实习多久
16.反问
二面(47min 温柔女面试官,比一面要严肃一些)
——————————————————————————————————————————————————
1.自我介绍+项目轻微拷打
2.redis的RDB和AOF对比(经典八股,吟诵)
3.引出了RDB的save bgsave
4.引出了AOF的刷盘机制
5.HashMap HashTable ConcurrentHashMap聊聊(上午刚问过)
6.JVM运行时内存区域(八股吟诵)
7.JMM是什么(经典八股,java内存模型不要和内存区域搞混)
8.线程通信方法,进程通信方法(专门看过,直接吟诵)
9.布隆过滤器原理(上午刚问过)
10.什么是缓存击穿以及你是怎么解决的(吟诵)
11.乐观锁和悲观锁的区别
12.说说硕士研究的课题吧(上午刚问过)
13.做道题吧,第K大的数(简单,直接用优先队列,不到2min写完。面试官看了一眼不让用优先队列,鼠鼠不会建堆,好在记过用快排的做法,出了点差错但也最终搞定,面试官还算满意)
14.再来一道吧,岛屿数量(运气爆棚,图论啥都不会就会这个,背都背下来了,3min搞定)
15.面试官说我写得挺快啊,可以嗷。其实是恰好都见过,运气好,问我什么时候能来实习,实习多久。
16.反问
HR通知我需要加面并向我致歉,因为一开始是说好只有两轮技术面的,但业务那边说要再加一面。很难受,但必须顶住压力,因为我感觉三面一定很难。
三面(1h3min 一眼大佬男面试官,人很好但上压力,题目也都是场景题,手撕很难)
——————————————————————————————————————————————————
1.你觉得咱俩视频面试这个过程用到了什么网络协议(开幕雷击,UDP TCP HTTP 还有吗 DNS 还有吗 ARP 还有吗 IP 别问一个说一个啊,你想完整了一口气说出来。太压力了,又挤出来个 BGP OSPF RIP,大佬沉默了)
2.来个自我介绍吧
3.详细介绍一下你的秒杀场景。(直接按着点评的顺序说的,单体解决超卖,一人一单,再扩展到分布式)
4.你项目里的redis缓存主要是干什么的(突然大脑空白,只背过缓存三兄弟,想了十秒钟,是存储一些店铺信息、优惠券信息的,后续抢券异步解耦的时候还用Redis缓存先判断秒杀资格)
5.压测过吗,QPS如何(只是在解决超卖一人一单问题的时候,测过异常率,主要是判断是否解决问题)
6.怎么解决缓存一致性的(Cache Aside模式)这样就能解决吗(不能,可以使用延时双删,或者Canal订阅binlog日志,这俩都是背的)你实际用的哪种方法(经典道歉,这两个方法只是我了解的,其实并没有使用,我就用了Cache Aside,设置过期时间来兜底)
7.你是计算机科班啊,那计算机的课程你觉得哪个掌握的最好?然后我问你几个问题(鼠鼠计网操作系统哪个都不太会啊,我说掌握的都不是特别深入,您可以都问问,感觉踩雷了)
8.虚拟地址(这个真会,什么段式页式段页式,什么页表快表,分级页表,什么段偏移页内偏移,吟诵)
9.运行程序的时候什么时候从逻辑地址转成物理地址(不会,我说链接时候。你确定吗?经典道歉+不确定,大佬沉默。后续查资料编译链接加载运行,应该是在加载阶段)
10.C语言用过吧,里面的指针申请的是虚拟地址还是物理地址?(肯定虚拟,不然太不安全了)
11.说下UDP TCP区别(八股,吟诵)
12.说下HTTPS加密过程(八股,大家一定要细看这部分,什么签名,混合加密都记住,过程搞懂,吟诵)
13.忘记了,总之是私钥密钥通信的场景,听都听不懂(直接道歉+我不会+请问答案是什么)。
14.做个题吧,给定一个数n如23121,给定一个数组如[2 4 9],求由a中元素组成的小于n的最大数,22999(运气最好的一集,之前刷面经刷到过这题,找过答案看了个大概,真考到了,靠记忆磨蹭了十几分钟,输入用例测试是对的,让我解释算法,解释着解释着发现有问题,大佬让换个测试用例,结果不对,已经慌了,后续带我debug了五分钟,给了提示也还是不会,总之就是大体没问题但细节有问题)
15.本科成绩怎么样,硕士成绩怎么样(我说大一大二爱玩,后面顿悟了好好学习了,本科成绩还凑合。硕士都不怎么看成绩了,都是看成果,问GPA,我说没看过,他说GPA都不知道申请出国留学怎么办,鼠鼠什么家庭啊还出国)
16.反问
HR面(18min 温柔的小姐姐)
——————————————————————————————————————————————————
1.自我介绍。(这里可以和之前的自我介绍有所区别,之前侧重于项目介绍来凸显能力,这里可以多加一些自己的学校经历,项目相较于技术面简略概括一下,最后加上自我评价+吹波公司+意愿,诸如“我认为我学习能力较强,抗压能力较强,我也非常欣赏公司的企业文化,并且岗位也比较契合,希望可以进入公司学习。”)
2.说说你的未来的职业规划。(暑期实习当然努力学习争取转正。如果转正了继续沉淀,累积经验,从边缘业务逐步向核心业务靠近,为公司做出贡献。同时希望用自己的经验帮助后面的新人。泪目)
3.说说你的项目,都学习到了什么,你的项目是基于什么背景做的,你觉得哪个部分让你收获最多。(按照自己项目回答即可。关于背景,其实基本都是网上的项目,所以这里背景贴合实际就行,比如你做商城,你可以说这是因为我看到宿舍楼的二手交易群缺少一个平台之类的。)
4.考虑什么城市。(都可以,因为实习是提升技术的,地点无所谓,我喜欢去不同的城市感受不一样的氛围。)
5.你简历写的做深度学习的,为什么跑来做测开了?(测开好啊,测开可太好了,没有开发卷,而且测试是为了提升用户的体验感,更有意义。测开也是开发,开发不是测开。)
6.前几面的面试下来觉得怎么样,面试官怎么样(好,很好,非常好。学习到了很多也知道自己哪里不足,提到了面试官说要学Go,明确了后续学习方向。)
7.你觉得自己有什么优点(我优点太多了)
8.聊天,聊本科经历,表现得像个正常人就行。
9.反问
——————————————————————————————————————————————————
放出简历供大家参考,简历是overleaf编译的,模板在 https://github.com/fky2015/resume-ng
对了,有佬推荐在哪里学go吗,我目前是在完美学的