本⽂来⾃读者 Boyn 投稿!恭喜这位粉丝拿到了含⾦量极⾼的字节跳动实习 offer!赞!
基本条件
本⼈是底层 211 本科,现在⼤三,⽆科研经历,但是有⼀些项⽬经历,在国内监控⾏业某头部企业做过⼀段时间的实习。想着投⼀下字节,可以积累⼀下⾯试经验和为春招做准备.投了简历之后,过了⼀段时间,HR 就打电话跟我约时间,在年后进⾏远程⾯。
说明⼀下,我投的是北京 office。
⼀⾯
⾯试官很和蔼,由于疫情的原因,⼤家都在家⾥⾯进⾏远程⾯试,开头没有⾃我介绍,直接开始问项⽬了,问了⽐如常⽤的 Web 组件有哪些(回答了⾃⼰经常⽤到的 SpringBoot,Redis,Mysql 等等,字节这边基本没有⽤ Java 的后台,所以感觉⾯试官不⼤会问 Spring,Java 这些东⻄,反倒是对数据库和中间件⽐较感兴趣)
Kafka 相关,如何保证不会重复消费,Kafka 消费组结构等等(这个只是凭着感觉和⾯试官说了,因为 Kafka ⾃⼰确实准备得不充分,但是⼼态稳住了)
Mysql 索引,B+树(必考嗷同学们)
还有⼀些项⽬中的细节,这些因⼈⽽异,就不放上来了,提示⼀点就是要在项⽬中介绍⼀些亮眼的地⽅,⽐如⽤了什么⽜逼的数据结构,架构上有什么特点,并发量⼤⼩还有怎么去 hold 住并发量后⾯就是算法题了,⼀共做了两道
1. 判断平衡⼆叉树(这道题总体来说并不难,但是⾯试官在中间穿插了垃圾回收的知识,这就很难受了,具体的就是⼤家要判断⼀下对象在什么时候会回收,可达性分析什么时候对这个对象来说是不可达的,还有在递归函数中内存如何变化,这个是让我们来对这个函数进⾏执⾏过程的建模,只看栈帧⼤⼩变化的话,应该有是两个峰值,中间会有抖动的情况)
2. ⼆分查找法的变种题,给定 target 和⼀个升序的数组,寻找下⼀个⽐数组⼤的数.这道题也不难,靠⼤家对⼆分查找法的熟悉程度,当然,这边还有⼀个优化的点,完成了之后,⾯试官让我等⼀会有⼆⾯,⼤概 10 分钟左右吧,休息了⼀会就继续了。
⼆⾯
hr ⾯
⼀些偏职业规划的话题了,实习时间,项⽬经历,实习经历这些。
总结
基础很重要!这次准备到的 Redis,Mysql,JVM 原理等等都有问到了,(⽹络这⼀块没问,但是也是要好好准备的,对于后台来说,⽹络知识不仅仅是⾯试,还是以后⼯作的知识基础).当然⾃⼰也有准备不⾜的地⽅,⽐如 Kafka 等中间件,只会⽤不会原理是万万不⾏的.并且这些基础知识不能只靠背,⾯试官还会融合在项⽬⾥⾯进⾏串问到了不会的不要慌,因为⾯试官是在试探你的技术深度,有可能会针对某⼀个问题,问到你不会为⽌,所以你出现不会的问题是很正常的,⼼态把控住就⾏.
⽆论是做题,还是回答问题的时候,牢记你不是在考试,⽽是在交流,和⾯试官有互动和沟通是很重要的,你说的⼀些疏漏的地⽅,如果你及时跟⾯试官反馈,还是可以补救⼀下的最重要的⼀点字节的⾯试就是算法⼀定要牢固,每⼀轮都会有⼿撕算法的,这个不⽤想,,⼼态很重要,算法题不⼀定都是你会的,要有⼀定的⼼理准备,遇到难题可以先冷静分析⼀波.⽽且写出 Bug free 的代码也是很重要的,我前⾯的⼏题算法因为在⽜客⽹上进⾏⾯试,所以要运⾏出来.
最后祝⼤家在春招取得好的 Offer,奥⼒给!
面试题分享
需要免费资料的小伙伴,查看下方名片获取~