字节后端实习技术三面面经

上海985,科班,大三。

投递的是后端开发,日常实习,产品研发与基础架构部,即负责技术中台的大部门,具体到给教育产品线做用户增长的小部门,主要运用go和python。

由于是我的一位HR实习的大四学姐帮我推的简历,面试全程都由她来安排,并且在面完马上就能得知结果,所以整个流程走得非常快,两天搞定了三轮技术面。

一面(1.24 18:00)

面试官:本次面试将持续30~45分钟(实际约45分钟)

1.自我介绍(学校,专业,姓名,应聘职位,专业知识,项目简介)

2.tcp/udp的区别(八股文)

3.tcp的拥塞控制(八股文)

4.进程与线程(八股文)

5.常见的排序算法及时间复杂度(非典型八股文,刚结束的一学期上过算法课,凭借记忆讲述)

6.算法题:a. 合并三个有序数组,-- 执行两次两路合并

​ b. 最长非重复子串-- 秒给双指针+哈希表的思路,面试官问是否之前做过这道题?

​ 但是写的时候,由于第一次面试太过紧张,左指针的更新方式写错了,绕了半天没改对,以为GG

7.反问: a. 问部门负责什么?

​ 答: UG部门,你知道UG吗?教育部门下的,负责用户拉增(。。。什么玩意儿?U净?那不是洗衣机嘛?)

​ b.从您的四十多分钟观察来看,我有什么以后可以提升的点?

​ 答:写代码题的时候要想清楚点。你思路很清晰,但写的时候有点乱

面完后咨询HR(本校的实习学姐),她告诉我过了,安排后续面试。感谢一面面试官不杀之恩/抱拳

紧张的来源分析:对成功的渴望、对失败的恐惧

二面(1.25 14:00)

面试官:本次面试将持续30~45分钟(实际约55分钟)

1.自我介绍(同1,结构更加合理,表述更加流畅)

2.Redis在项目中的使用?做了什么功能?用了什么数据结构?(答map。。。面试官说没有这个。。)

3.Redis有哪些数据结构,底层实现了解过吗?(有看过博客,没有系统学习,时间久远已忘却。。)

4.MySQL的ACID(八股文)

5.四大隔离级别?会出现什么问题?(老八股文了)

6.读已提交和可重复度底层实现的区别?(没答好)

8.MySQL的索引?二级索引?(经典八股文)

9.面试官想不出问题,遂自告奋勇讲解B+树与B树的区别。(中间因非叶子节点是否存储数据产生分歧,在一番沟通后达成一致)

10.算法题:复杂链表的复制(剑指offer原题)

二面面试官显然比一面热情和善得多,每个问题的回答也都会有反馈。

五分钟后发来三面通知,晚上九点,冲冲冲!

三面(1.25 21:00)

三面面试官一见面就给人扑面而来的强者气息,看背景墙像是在专属的办公室里,而一开口又是亲和力拉满,实在给我印象很深刻,应该是大部门的leader。

1.确认了我的基本情况:华东师大? 大三? 可以实习多久?

2.问了下项目是什么(第一个极光数据库运用了MongoDB,并且加了Redis做图缓存巴拉巴拉,第二个商城项目 三个面试官都没理过)

3.MongoDB和MySQL的区别?MongoDB为什么读写快?(非关系型数据库,表结构松散,但也会带来编程难题。具体读写快肯定是设计架构上有精巧之处,具体的还没有深入系统学习过)

4.Redis和MongoDB与MySQL的区别(内存数据库,避免了磁盘IO,读写快)

5.做一道编程“大”题。

​ 第一回合:给出一个乱序的数组,且元素可能重复,找出和为0的所有数字对。

​ 其实这个题乍看很简单,不就是两数之和嘛?存哈希表,O(n)解决。但是这里比其刷题要考虑去重、找出所有而非一个。

​ 于是就用HashSet来存,希望借助set自动去重。但是数组的默认比较方法是比较内存地址,两个数组即使有相同的元素也会被判定为不同的数组。

​ 第二回合: 如何解决这个问题?

​ 如果是一个对象的话,可以重写hashCode和equals方法,但这是数组。。。无法重写。诶,那我构造一个新的类吧,numPair存储这两个数字。面试官说好,你写。

​ mmp,我以前没有重写过equals方法和hashCode,只能摸着石头过河,凭着理解写了,最后解决了这个问题

​ 第三回合:如果数组中只有一个0,不允许构造[0,0],而且不是找和为0而是和为定值要怎么改?

​ 一通乱改,更改了程序逻辑。

​ 第四回合:两数之和升级为三数之和

​ 如果是三数之和的话,我肯定要先排序了,因为排序复杂度是O(nlogn),然后指针放在一个位置,剩下转换为两数之和。

​ 讲完思路,我问就这样吧?别写了吧,前面坑挖太大了。面试官和蔼可亲地说:还是写一下吧。。。。

​ 又一通乱写。。

​ 后来时间快到了,面试官说就先告一个段落吧,确实也不太好写。。。能这样就挺好的了(其实咱心里明白,这种题最关键的不是有没有写出完全正确的程序,而是在面试官刁难我的过程中展现我见招拆招的能力。虽然我越写越慌,脸也逐渐胀成了红皮鸭子,但还是相信面试官不会刷我的)

6.最后问两个问题吧:ArrayList设置了上限吗?超过了怎么办?HashMap底层数据结构?扩容?(哈哈,正中下怀,八股文我太会了)

7.啥时候能实习?(年后吧,年后要是急,我可以尽快来的)

​ 面试官说好的:年前就算了,也没几天了。希望你可以多实习几个月,因为刚上来看文档可能就要一个月,三个月的话做不了太多东西就走了,提升不大

8.反问:a.到底是啥部门?一会儿又教育增长,一会儿又产品研发与工程架构?

​ 答:哦~确实有点费解哈。我们是负责技术中台的,然后教育增长是下面的小部门。

​ b.从您一个小时的观察来看,我有什么可以提升的方面?

​ 答:在你这个阶段,达到这个程度就挺不错的了。以后多实践、多做项目。

追聊:确实,我之前闷头学了快一年,没机会做什么牛的项目,这个商城项目也是网上找的跟学着做的。所以非常希望能够拿到这份实习,接触真实的工业界项目,在项目中提升自己

面试官:好的,挺好的。后续我让HR和你交流吧

三面刚挂,我的HR学姐就来报喜通过,告诉我明晚有一个HR面,随便聊聊天,沟通下入职的细节即可。

总体来说,我的第一次面试经历非常愉快,难度也远远小于预期–三道算法题全是剑指offer原题。

不得不说,我得到了幸运女神的眷顾。

喜悦,Over

你可能感兴趣的:(面经,面试,java,mongodb,redis,mysql)