讨论/求职面试/字节跳动|头条后端(Go)|北京|2021暑期实习|一二三面+HR面面经(已接offer)/
字节跳动|头条后端(Go)|北京|2021暑期实习|一二三面+HR面面经(已接offer)

第一份实习,拿到 offer 才敢写面经系列...

面试经验总的来说:

  • 心态一定要好,多和面试官交流,不要沉默,实在不会大方承认
  • 简历上的项目一定要熟,项目用到的东西也要熟,用到 redis 必问
  • 面试官喜欢问为什么,多查查,遇到了就能装b
  • 算法题需要亿点运气

一面(3.22)55min

面试官是个小姐姐,nice

  1. 自我介绍

  2. 扒项目

    • 主要工作,遇到的困难
    • 一些细节问题,改进方案
  3. go 垃圾回收

    • 不太熟,大概描述了一下,提了一嘴 Python(简历上写了熟悉 Python),小姐姐说没关系,说下 Python 是怎么做的
  4. hashmap(说了 go 的 map 和 redis 的 hash 结构)

  5. redis rehash 过程

  6. rehash 过程中添加数据,查询数据怎么办?(就是问渐进式 rehash,刚好没看到,瞎猜了半天)

  7. hash 冲突用的什么方法解决的?查询时间?最坏时间?

  8. 你说链地址法冲突到一条链上会退化成 O(n),它不好为什么要用?为什么不用其他的?

    • 没太明白她的意思,我只是说最坏情况可没说它不好。。然后只能说它们各有优缺点吧
    • 应该再说一下链地址法的主要优势的
  9. 一道没见过的算法题

给出一个分子式,比如:HMg2(H2ON3)3N2,计算这个分子式中每个原子出现了多少次,输出一个map,比如上面的分子式中:map[string]int {"H": 7, "Mg": 2,"O": 3, ...}

  1. 都以大写字母开头,后面跟 0 个或者 1 个小写字母,比如 Mg, H
  2. 单个原子后面跟 0 个或者 1 个数字表示它出现的次数,比如 Mg2 表示 Mg 出现 2 次,数字范围 2-9
  3. 分子式中可能有括号,括号后面可能跟 0 个或者 1 个数字表示整个括号内的原子出现的次数,比如 (N3Ag)2 表示 N出现 6 次,Ag 出现 2 次 4. 括号可以嵌套
  4. 输入是合法的

上来就遇到这么长的题让我很慌,加上之前 redis 被问到不会,这里感觉都要停止思考了。。看了半天说想办法从后往前把数字乘进去去掉括号再处理,问她思路有没有问题,得到肯定回答才松了一口气,然后说了下具体方法,理清之后面试官把括号去掉了,然后说时间不够了写下简化版代码吧

  1. 反问

算法题写了有二三十分钟,感觉要凉了,没想到结束时面试官说先别走啊,我去喊一下二面面试官,瞬间复活

二面(3.22)1h

逐渐有状态了,二面还算轻松,全程在线,当时感觉过挺快,回头一听才发现问了这么多问题

  1. gmp

  2. 协程的优势

  3. 进程线程区别

  4. 进程地址空间有哪些划分

  5. 进程间通信

  6. 共享内存是怎么回事?映射到实际物理内存的虚拟地址在地址空间的哪一部分(我猜在堆区)

  7. 虚拟内存

  8. 页面置换算法(说了局部算法和全局算法)

  9. LRU 实现思路

  10. mysql 引擎,它们的区别

  11. innodb 辅助索引为什么存主键 id,回表不是要浪费时间?

  12. b+ 树索引优势

  13. acid

  14. 隔离级别,可重读是怎么实现的?幻读是怎么回事?间隙锁知道不?

  15. 读写锁互斥关系,其他分类的锁

  16. 我看你项目用到了 redis 具体用到了哪些数据结构?(string,hash,zset)

  17. zset 实现,跳表是怎么回事?高度?时间复杂度?为什么不用 b+ 树?

  18. redis 是单进程还是多进程?

  19. 扒项目(另一个爬虫项目)

    • 代理服务的默认端口?(第一次听说代理还有默认端口)
    • 页面解析用的什么?
    • 爬虫比较困难的场景?
    • 纯js渲染的页面怎么爬?
  20. (第一个项目)压测怎么做的?其他一些可以优化的点

  21. 力扣原题,舒服:力扣33. 搜索旋转排序数组

  22. 反问

二面面试官超级 nice,各种引导,问到我不会了就说ok没问题,全程给我信心,越面越顺

晚上另一个hr小哥哥加我微信约了三面时间,之前联系我的小姐姐不见了,唉

三面(3.25)30min

  1. 扒项目(收获什么的)

  2. 我看你项目用了 mongodb,mongodb 存储索引知道吗?和 mysql 比有哪些优势?(回答 mongodb 并不熟,只是毕设想用用新东西,优点就知道非结构化扩展容易,速度快)

  3. mysql 存储引擎

  4. 项目用到了 redis 哪些结构(zset,hash),说一说底层实现

  5. zset 除了跳表+hash表外还有其他实现吗?

    • 才想起来数据量较小时会用压缩列表实现
    • 又问压缩列表实现的主要目的,答节省内存
  6. 进程通信方式

  7. io多路复用的几种方法(不熟,就提了下名字)

  8. cookie session

  9. 拥塞控制

  10. 力扣原题,舒服:力扣15. 三数之和

三面面试官应该是某个部门老大,面相和蔼,问了30分钟就结束了,有点慌,没想到结束后10分钟hr就发来微信约hr面了

hr面(3.29)15min

聊天,实习生都没啥好问的

面完晚上我等不及就微信问hr结果,说没问题,offer 在审批了,然后就是漫长的等待,中间还赶上清明假期,足足等了一周多才接到 offer,期待成为一名 ByteDancer

26
共 17 个回复

一看就知道是科软的

7

听说一面都是同事面

纳尼,咋知道楼主是科软的

我好像知道那个小姐姐是谁了,你入职应该会遇到她

对,还挺看面试官状态hh

感觉楼主面试算正常的,有磕碰也有顺利的,其实面试就怕紧张,一紧张脑子空白,面试官说OK挺提升信心的,面试难度适中,让我来回答也是一部分不会的

恭喜加入996大军

羡慕

我们放实习的

python+go吧,字节技术栈是go