字节跳动 后端 实习 12.10 一二面 面经(已 oc)
字节 后端 实习 面经
背景
- base 杭州 抖音电商后端实习生(可转正)
- v2ex 内推
- 双非大三计算机科班
- 有开源项目
- leetcode 刷了一百道
- 三面面经:https://www.nowcoder.com/discuss/822810
- HR 面面经:https://www.nowcoder.com/discuss/825124
一面 12.10.16-05 约 60 mins
原本约的四点面试,面试官迟到五分钟开始。
- 自我介绍,聊到转专业,课程上学了计网、数据库等,数据结构正在学所以学的一般。然后开始提问。
- (项目出现异步)异步是什么?:我说,那我扯远点从协程开始说起吧...然后讲了一遍协程线程进程三者区别和特点和应用的场景(协程用在 I/O 频繁 balabala)。
- 然后问我学过计网吧,开始问 TCP 三握四挥:然后答了一遍。
- 细问 time_wait 在哪个阶段:我说第三次挥手客户端。
- 为什么需要三次握手,两次行不行?:不行,两次的话服务器无法知道自己的发能力是否正常,也不知道客户端收的能力是否正常,没办法信任客户端所以不行。
- 说一下 TCP 和 UDP 区别:一个一对一,一个一对多;一个面向连接,一个不是;一个需要三握四挥可靠一个不可靠;【这里漏了两点:一个面向报文,一个面向字节流;一个首部 8 字节,一个首部 20~60 字节】。然后因为辛辛苦苦背了好多 QUIC 的知识,于是在这里由提了 QUIC 相比于 TCP 和 UDP 协议的改进。
- 然后开始问 TCP 拥塞控制的方法:【这里寄了,只想起一个滑动窗口协议(并不对),然后说记不清了】。
- 然后问慢启动的细节:寄了,忘了。
- 计网问到这里,开始问操作系统。你知道多进程和多线程的特点和区别吗?:进程要分配 PCB 和一大堆资源,比较慢,线程依托于进程的资源,无需分配太多资源,线程切换开销小,且其为 CPU 调度的基本单位,所以理论上多进程没有多线程快。
- 说到进程,你知道哪些进程调度算法?:常用时间片轮转;还有 FIFO 什么的,记不清了。
- 时间片轮转有啥缺点:需要频繁中断进程重新调度,切换开销大,会吃掉一大批系统资源。
- 学过数据库是吧?写到 SQL 题 【从一个表中筛选出所有 name 字段出现两次以上的数据】:寄了,不会,说写后端用 ORM 比较多,没怎么手写过 SQL...
- OK,那你知道 mysql 三个引擎是什么吗?:默认 myIASM,不支持事务,只支持表级锁;MEMORY,在内存,除了快没啥优点;Innodb,最常用的,支持 ACID,支持事务,支持行级锁。
- mysql CHAR VARCHAR 有啥区别:CHAR 定长,即便小于也会填充为这个长度,VARCHAR 不定长,会按最大预分配内存空间并且有一个字节存长度。
- 写题:
给一个数组,以及一个数:如 [1, 3, 4, 3, 9, 1], k = 12, 返回其中最短的大于等于 k 的子数组。若无满足条件则返回 0 Input: [1, 3, 4, 3, 9, 1] 12 Output: 2 // 因为最短的是 [3, 9] 长度 2
很怪的写出来,之后有空说下思路。
结束。
面试官人很好,面试体验很好。我 滑动窗口 没说出来,SQL 没写出来,写题花了小半个小时...
结束后感觉终于解放啦!正准备出去吃饭出去浪结果接到 HR 电话:很高兴通知您一面通过啦,刚好二面面试官有时间,请问有时间继续面吗?
那就继续面吧...
二面 12.10.16-20 约 60 mins
- 问项目,看到有开源项目于是问了一下社区有几个核心开发者(200+ 吧),项目有几个维护者(主要是我,还有我 mentor)
- 你说你是转专业的,那你是怎么抽时间做这些竞赛开源的?:转专业后就不重视绩点了,非专业相关课也不怎么听了,然后大二选了一堆课,所以大三有很多时间做这些。
- 那你一般花多少时间做开源:假期的一般,开学后的话周末抽一天。
- 问另一个后端项目,是全程跟进对吧,说一下做了哪些工作(结合项目说了说),有哪些挑战(一个是需求方理不清需求,然后花了很多时间帮他们理需求,一个是后期用消息队列折腾了半天 docker 和 redis【本来背了好久 redis 结果两次面试一点没提...】)
- 写题:Leetcode 160. 相交链表 【上来就起手式造测试样例了,面试官:??你先跟我讲一下思路,我:啊好...就是遍历两棵树用 hashmap 确定重复的然后输出...】 面试官努力引导我去优化空间,但是恕我愚钝属实没啥优化思路...反正是写出来了...(辛苦面试官了 ORZ
- 输入一个 url 会发生啥:从浏览器解析到缓存到 DNS 到 TCP 到 TLS(因为背了半天一直没问很绝望所以甚至把 CA 怎么认证发数字证书都讲了一遍) 到 DOM 数渲染...然后 TCP 挥手结束。
- 稍微问了一下 TSL 为什么后面用对称加密:因为对称加密性能好。
- GET / POST 区别:长度(只有 IE 有限制);一个快(发一个 TCP)一个慢(发俩 TCP)【这里漏掉了 get 仅支持 ascii 码字符集,post 支持 iso-xxx 字符集】
- 智力题:9 颗糖分给 10 个不同的人,有集中分法:除了暴力求没想到别的方法,面试官努力引导我失败...
- 最近看过哪些技术书:因为投的仓促,最近准备面试,本来想看《编码》没看成。然后问对你影响最大的技术文章/书,我说最近最震撼的好像是 Linux 源码...然后是蚂蚁一篇关于 QUIC 落地实践的文章和美团技术团队的一篇关于 CSRF 攻击的文章。
时间到,面试结束,最后面试官:最近两三天 HR 会联系你【大概是过了吧】
总结
两面都没有反问,本来准备了几个问题都没机会问...
从两个星期前的周五忽然被内推开始准备,整整肝了俩星期面经+lc...本来以为寄了没想到🐶到了二面...感谢面试官!
坐等三面.jpg
12.14 Update: HR 联系,二面通过,约了三面【技术面】在周五,预备写三面凉经了。上周五面完后太颓废,啥也没干
#字节跳动实习##面试题目##字节跳动#