乐趣区

关于面试:怀着忐忑的心情我来了B站实习B站后端日常实习面经分享

写在后面:

  • lz 大三,专业课还没上完,为了面试本人提前看了计网和 OS。因为是第一次找实习,简历也不太会写,之前投了很多家公司都被秒拒了,投的字节也是。起初字节的 hr 给我打电话说我的简历里没有我的项目是会被零碎主动拒掉的,所以瞎写了几个我的项目,被捞起拉去面试了
  • 从大略 11 月初开始面字节,第一次面三面后挂了,而后又被 hr 捞起来又面了一次,这次四面过了,可能这个部门真的很缺人吧 hhh 因为工夫长远,好多细节记不得了

一面:

  • 我这辈子第一次面试,特地缓和,设施没有调试好,面试官那边听不到我声音,所以就推延面试了,耽搁了面试官的工夫。
  • 第二次上来问了:
  • 我的项目
  • TCP 握手挥手
  • 面试官看我没啥教训,我的项目做的也不怎么样,于是说“做两道题吧”
  • 判断均衡二叉树。我确认了以下定义开始写,因为太紧张把 java 的语法都写错了 hhh 面试官跟我说不必缓和
  • 请写出一个高效的在 m * n 矩阵中判断目标值是否存在的算法,矩阵具备如下特色:
  • 每一行的数字都从左到右排序
  • 每一行的第一个数字都比上一行最初一个数字大

二分,面试官说我逻辑写简单了

  • 而后第一次面试就完结了,全程根本就是在做题,没有问操作系统。可能公司面对没有开发教训的候选人就会让他做题吧。

二面:

  • 二面面试官看起开不太开心,上来问了我点 Java 相干的,我答得不好,我跟他说我平时用 Java 只是刷 leetcode,他说那咱们做两道题吧。。。
  • 二叉树的最大门路和,Leetcode hard 原题,还好我前几天刷过一遍,我感觉这个面试官不怀好意,上来就一道 hard,说好的循序渐进呢
  • 给定一个字符串 m(只含有 26 个小写字符,假如 m 的总长度不大于 1000),要求在字符串中找到最长的一个间断回文子串 k,返回其长度。其中间断回文子串 k 需满足以下条件:

(1)整个字符串是回文串(从前往后和从后往前看字符串是一样的)
(2)该字符串中的任意相邻字符在 ASCII 码表中也是相邻的
(3)字符串中字母序必须是且只能是先升序后降序,且字母序只能扭转一次

  • 我拿到题很开心心想这不就是最长回文子串吗,这个我会!而后就要 DP。面试官说停停,你再看看这题须要 DP 吗?我一看,噢,原来一遍遍历就行,而后就开始写,期间写了很多 bug,都被面试官挑出来了
  • 做完两道题才开始问八股文
  • 数据库的隔离级别

解决幻读须要什么隔离级别

    • 外存排序,归并
  • Top K 问题,快排 + 剪枝。如果数据量很大没法快排呢?维持一个堆。因为那段时间我 Java 用的比拟多,心里想的是代码,上来就说 PriorityQueue,面试官没听懂我要干啥,问我学过数据结构没,我说哦哦哦用堆,他说你早说用堆不就完了
  • 而后第二次面试就完结了,还是做题,做题,做题

三面

  • 上来先让我自我介绍,我就把学过的课程说了说
  • 聊到语言,又说到了 Java,我说我这个就是刷题用的,暗示他别问了,他说刷题为啥不必 c ++,我说好久没用忘了

可他还是要问 Java(╯▔皿▔)╯

  • Equals 和 HashCode 办法,自定义数据结构放在 HashMap 里须要重写哪个。我学 Java 的时候记得,起初忘了。。
  • HashMap 扩容策略,我说链表转红黑树,他说如果红黑树变得很大呢,我说我真不知道别问了
  • 他说好好好不问了,咱做题吧。
  • 最大子序和,leetcode 经典中的经典,间接背进去。他说如果我不仅想要最大的和,还想要区间范畴呢,我就又改了改。他说行,下一题吧。
  • 一个先升序后降序的数组,找出某个值在不在这个数组内。二分魔改过了,期间他始终引领我,我说您说的我没太听懂,我依照我的思路写能够吗,他说好的好的,不打搅你了,而后我就给他边写边讲我的思路,他说也行
  • 做完了题问我打不打 ACM,把我乐的够呛,说我刷题才俩月,哈哈
  • 问我用过 Linux 吗?答曰学计组和 OS 的时候会用 ubuntu,但命令行不太熟
  • 会 git 吗?不会
  • 用得惯苹果零碎吗?我说我俩电脑一个 win 一个 mac,会的
  • 而后完结了欢快的面试,第二天收到了拒信

起初我就去 B 站先实习了,那边用的也是 Go

  • 过了两周,又被 hr 拉去面另外一个组,说缺人,我一开始是不想去的,但还是批准了面试

一面

  • 聊天聊到了我当初的实习,于是问了我点 Go 相干的
  • 在公司都写什么货色了
  • ConcurrentHashMap 如何放弃一致性。我说全局大锁,他说留神性能问题。而后我说能给点提醒吗?他说如果这个 HashMap 数组特地长呢?我问那可不可以分段加锁?他说能够。起初我回去查了查老版本的 Java 真的是用的分段加锁,我可真机智
  • slice 理解吗,我说临时没用到过。被“讥嘲”了,他说在字节的节奏会快很多,你过去学两三天就要干活了。

Goroutine 为啥轻量

  • 过程线程相干的,问的比拟深刻。他说:你方才提到了 Goroutine 对于操作系统是通明的是吧,那么操作系统如何向某个 Goroutine 发送时钟中断呢?如果不能发送如果有某个 Goroutine 始终执行怎么办?这个我不太会,他说没事,回去查查

HTTPS 握手,我说不理解握手,简略地说了对称加密算法和非对称加密算法

  • ARP 协定是什么,我说还没学到 IP 层,不晓得
  • 而后就开始做题了。感觉这个组面的基础知识比拟多,而面的算法都很简略
  • 两个排好序的链表排序并去重,我一边讲思路一遍写。tips:写题的时候肯定要和面试官阐明本人的思路,不然面试官不晓得你在干什么
  • 就这一道题
  • 我问了他们组是做什么的

二面

  • 这时我经验过的最好受的一次面试,面的货色我根本全没答出来
  • 而且面的时候我的电脑死机了,连忙借室友的电脑面的,耽搁了五分钟,回去发现面试官还在等我
  • HTTPS 怎么握手,我说不晓得,他说以前不是问过你吗?我才晓得他们有记录的,就说忘了去查了(起初面完去查了

ARP 解析,我恰好下午看书看到那,就答复进去了,他说你是回去看了吗?我说我只是恰好学到这。。

  • Cookie 理解吗。我把 Cookie 和 session 记反了,说 cookie 是存在服务器端的,他说你确定?我说 emmmm…(起初回去一查这么简略的问题都没答对他竟然放我过了。。
  • 他说之前问过你的,你有没有回去查过哪些?我就答上次的那个 Goroutine 相干的问题,说 Goroutine 之间是合作式调度,如果某一个 Goroutine 始终在占用 CPU 而不阻塞那么他是不会让进来的(这是旧版本的个性),他说那这样的状况就始终占着?不能强行执行调度吗?我说如同是的。起初我回去看了看最新版本的个性,发现能够抢占式调度了。。
  • Go 如何利用多核性能?不晓得。(也是回去查,学到了 GMP 模型,一开始会调配 GOMAXPROCS 个 Processor
  • 设计一个秒杀零碎?不会不会不会
  • 做题吧
  • 荷兰国旗问题。这个我做过,但工夫长远,现场做的时候还是做了挺久的,边做边想必定去不了本人了,在 B 站实习也挺好的 /(ㄒ o ㄒ)/~~
  • 他说你等十分钟三面吧,我 Σ(っ °Д °;)っ,竟然还有三面

三面

  • HashMap 扩容。所以我发现他们真的很爱问之前你没答上来的货色。我说不会。。他说没事你本人设计一个,而后我就本人设计了一个,他指出了有余,我就又接着改,改了好几个版本他说行
  • 设计一个调度零碎。我用的多级动静优先级队列 + 堆,操作系统课刚讲过的
  • 他仿佛问了不止两个问题,但我有些记不得了
  • 算法:
  • 最大子序和。我说之前问过了,换一个吧(过后我好呆啊,万一换一个我不会咋办(╯‵□′)╯︵┻━┻
  • 矩阵内的最短门路,只能向下或向右走。这个比较简单,一个 DP 搞定
  • 三面完结

HR 面

  • HR 来势汹汹,语速很快,期间跟我聊了我的项目,性情等等好多货色,劝我如果想工作的话尽早脱离学校的环境等等。。而后说你没有工程开发的教训,咱们北京这边北航和北邮的学生来的时候都有相干开发教训的,他们上手会很快。我一听这不是要把我给拒了吗,连忙说我在 B 站实习了 hhh 因为 B 站的技术栈和字节的技术栈很像 (都是 Go) 我上手也会很快的 blabla,她听了很开心,说你等告诉吧!但其实我上手会很慢(●’◡’●)

写在最初

B 站这边还有很多校招 hc(以转正为目标的实习应该也是能够的)。字节这边也很缺人。大家如果感兴趣能够私信我哦~ 我能够把简历间接发给 HR

总结

另外我这里为大家筹备了一线大厂面试材料和我原创的超硬核 PDF 技术文档,以及我为大家精心筹备的多套大厂面试题(不断更新中),心愿大家都能找到心仪的工作!
有须要的敌人关注:公众号前程有光回复材料下载

退出移动版