因为公司原因,最近想换工作,第一目标就是字节,9月份找朋友内推的上海教育部门,朋友让我多准备准备,过了两周才开始一面。

附上新鲜的一二三四五面面经。

写在前面
面试字节一定要提前复习,能提前多久就提前多久。尤其是算法,绝对是重中之重,因为我已经刷了 3 年 LeetCode 了,所以算法没怎么复习,三次面试一共 6 题也全写出来了,基本上都是原题。
然后就是数据库、网络、消息中间件、架构等等。校招的话架构可以不用太深入,稍微了解就行了。社招的话一定要注重自己的深度和广度。

我的情况
工作 3 年多。
1 年 C 语言开发,3 年 Go 后端开发。
曾就职于 BiliBili,目前在一家创业公司。

一面(视频面试)
Go 语言
GMP 调度模型,很多面试官都会问这个,一定要好好复习,要讲出亮点,讲出其他同学讲不出的东西。
Context 的用法,接着问了几个 follow up,不过都不是很难。
语言问的比较基础,并没有很深入的扣细节。
操作系统&计算机网络
select 和 epoll。(很常规的问题,也算是必考题了)
HTTP 和 HTTPS 的区别。
TCP 拥塞控制。
数据库
问了用过哪几种数据库。尽量回答自己熟悉的,以免踩坑。
Mysql 用的是什么数据结构,可以具体说说吗。
大库 DDL 怎么做比较好。和面试官纠结了好久,感觉这部分答的比较一般。
中间件
用过哪些中间件。答了用的比较多的是 kafka 和 rabbitmq。
rabbitmq 的工作原理。我只是用过,但是没有具体研究过,凉凉。。。
kafka 的工作原理,如何保证顺序等。这个研究的比较深,答的也比较好。

算法

206. 反转链表

15. 三数之和

耗时一小时五分钟,总体聊的比较顺利,小哥人也很好,比较专业,不过一面完全没有问项目上的东西,当天晚上 hr 就约了二面。

二面(视频面试)

二面是部门老大,语速很快,问题切换也超级的快

Go 语言

Go 的垃圾回收是怎么实现的,好在哪里,不好在哪里。

操作系统&计算机网络

详细描述一下 HTTPS 的加密过程,需要几次通信。这个看过,但是没有仔细复习,凉凉。
三次握手和四次挥手,说一下 time_wait。

数据库
Mysql 的幻读是怎么个情况,Mysql 是如何避免的。
架构
设计一个海量的评论系统。这部分一共聊了近 20 分钟,被问到头秃。社招的小伙伴一定要好好准备。
算法

面试题 02.05. 链表求和

76. 最小覆盖子串

耗时一小时不到,架构聊的有点差,但是后面靠算法扳回一点,大佬让我后面再好好准备一下基础和架构,听这意思是过了。第二天 hr 小姐姐约了三面。

三面(视频面试)
三面是这边的技术 VP。一来先自我介绍,一面二面好像都没有自我介绍。。。
自我介绍之后让我讲一个最得意的项目,讲了一个以前在 B 站做的项目,大佬表示一般般,然后开始问一些基础,这个级别的大佬已经不是很 care 语言了,所以都没有问 Go 相关的知识。

操作系统&计算机网络
用过哪些锁,自旋锁和互斥锁有什么区别。(同学们锁一定好好复习,也是必考点之一)
用过哪些分布式锁。答了 mysql,redis, zookeeper 分别聊了一下优缺点。
redis setnx + expire 有什么缺点,如何优化。因为之前自己用过,所以答上来了,但是好像不是面试官想要的最优解。
打开一个 URL 的过程。(这个也是必考点,基本上每个人都会,所以尽量说点其他人不知道的,一定要有自己的思考,让面试官眼前一亮,而不是觉得你在背书)
这部分答的比较顺利,中间基本上没有什么停顿和思考。

数据库
B 树 和 B+ 树的区别,为什么 mysql 要用 B+ 树,mongodb 要用 B 树。
redis 的跳表知道吗,为什么不用红黑树。我回答了因为红黑树实现比跳表复杂。但是面试官不是很满意,后来查了一下是有这部分原因的。
redis 集群是怎么实现的,说一下一致性 hash。
基本上都是比较基础的东西,都能答上来。

架构&设计
设计一个微信朋友圈系统,列出主要的表结构,只需要实现一些基础的功能,比如聊天列表等。写出一些数据结构,然后和面试官讨论了一下,很快就过了。
这部分的话最好提前练习一下,抓住其中的重点,解答之前先问清楚需求。

算法

1.670.最大交换

2.把一个方程式设计成树以及很多的 follow up (这题应该也是原题)

耗时一个小时,聊的比较顺利,感觉字节面试时间卡的都比较准,基本上都是一小时左右。

四面(视频面试)
四面好像是交叉面,整体下来也不是特别难,基本上都答出来了。和三面一样,也是先过一遍简历,问一下项目中的问题,再开始相同的套路。

Go 语言
Go 的逃逸分析了解过吗,能不能写一个。
操作系统&计算机网络
问了进程的调度,因为大学有深入研究过时间片轮转算法,所以着重讲了一下。
数据库
Mysql 集群如何保证数据的一致性。分别回答了弱一致性和强一致性。
架构&设计
类似于设计一个长链接转短链接,不过需要考虑高并发,回答了分库分表。
算法

四面基础聊的不是特别多,稍微答到一点就立马切换到下一题了,架构聊的多一点,总体聊的还算比较顺利,不得不说字节的面试基本上都是一个套路,每个系列都会问一下,但是问的都不是特别深。
本来以为四面就结束了,第二天换了一个 hr 告知还有五面,于是约了下周五面,中间和 hr 也聊了很多,hr 先问了一下我的情况,然后告诉我一些注意事项。hr 说面试官可能会问一下工作领域相关的问题,问的问题会比较开放,让我好好准备一下。

五面(视频面试)
五面好像是北京那边的大佬,我以为就是谈谈心,聊聊人生规划的,然而依旧是技术面。先简单问了一下项目,然后直接开始聊架构设计。

架构&设计
Mysql 集群在保证强一致性的情况下,如何保证高并发。聊了好多种方法,但是面试官都不是很满意,中间磕磕绊绊的。最后问可不可以用缓存,我前面提到了使用 redis 中间做一层,但是面试官说用 memcache。。。
设计一个海量日志写入系统。这部分之前没有接触过,答的不是很好,面试官也不是特别的满意。
感觉五面有点凉,一共才聊了 30 多分钟,不过架构部分也确实是我的薄弱项,确实需要花时间好好的提高一下,之后需要好好的学习一下。

后续
后来问 hr 情况,hr 说还在讨论,让我等等。然后就没有然后了,下次再战吧。

复习建议
重要性的话和工作经历有关系。校招应该更看中算法,建议同学们多刷题,社招的话可能会更注重架构把。大家还是需要根据自己的情况去复习。

基础:数据库和网络一定要重点复习,千万不要觉得简单的东西可以不复习,有时候面试官并不想难你,只是想象征性的过一下而已。有时候你觉得的简单的问题,其他人肯定也简单,想要突破重围,那就要说出自己的亮点,说出自己的特色,但是这部分不是很好说,需要多花点时间去研究。
开发语言:语言的话主要还是平时的积累,多看源码,要知道对应语言的一些特性和比较常用或者有特色的标准库。比如 Go 的 GMP 模型,垃圾回收,channel 都是必考点,最好去读一下源码。
数据库:最重要的肯定是 Mysql,Mysql中比较重要的就是隔离级别和索引,一定一定要弄懂。然后就是 redis,也是经常会问的一个东西。
中间件:这个也是必问的一个环节,尽量要多了解一些,但是一定要说自己会的,至少知道运行原理和特点。比较重要的中间件有:memcache、kafka。
架构设计:有实战最好,没有实战多学习一些开源的架构,尤其是日志系统、评论系统、聊天室相关的内容,经常会考到。
项目:好好准备一个有亮点的项目,很多面试官喜欢让你说一个印象最深的项目,这时候就是你的表演时刻了。
其他:分布式、Docker、微服务也是经常会问的东西,也要好好准备。
算法:把最重要的算法给忘记了,能刷多少刷多少,主要是学方法,而不是去完成某个题目。
总结
从投递简历到五面,大概经历了半个多月,基本上是隔一天面一次,都是在晚上 19 点以后,说明字节晚上的下班时间。。。
五次面试都是视频面试,体验很好,面试官和 hr 也都很效率和专业。一二面偏基础和算法,对项目和工程问的不是很多。三面和四面的话会增加项目和架构上面的东西,不过算法依旧是跑不掉的。前面四面我的算法回答的很好,基本上都是稍微调试一下就过了。基础回答的也比较顺利,设计题也还好。五面架构聊的很差,可能是导致失败的最大原因吧。

最后感谢大家看到这里,希望对同学们的面试有所帮助,再次感谢!

总结所有的面试题目都不是一成不变的,特别是像一线大厂,上面的面试题只是
给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大
家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试
题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴
巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档
。私信博主(777)领取,祝大家更上一层楼!!!

字节跳动 |go 后端开发工程师社招一二三四五面面经|2022相关推荐

  1. 字节跳动python后端_【字节跳动】[字节跳动][实习]后端研发工程师(python+go)...

    职位:[字节跳动][实习]后端研发工程师(python+go)-字节跳动 [岗位职责] 一年的时间,我们已经发展成行业第二,并且今年业务的发展速度是大头条体系最快的,成功的业务造就成功的团队,成功的团 ...

  2. 【校招】面试_字节跳动_客户端开发工程师_二面

    1 面试信息 面试形式:视频面试 面试时间:2020-03-10 14:00:00GMT+08:00 面试时长:约半小时 面试职位:客户端开发工程师-产品研发和工程架构部 2 面试问题 1.A.B轮流 ...

  3. 【校招】面试_字节跳动_客户端开发工程师_一面

    1 面试信息 面试形式:视频面试 面试时间:2020-03-05 16:00:00GMT+08:00 面试时长:约两小时 面试职位:客户端开发工程师-产品研发和工程架构部 2 考察内容 1.我们主要考 ...

  4. 爆肝整理!2022年字节跳动 java 后端开发岗面试题整理

    前言 最近有收到很多粉丝朋友私信,说自己在2021年的秋招并不理想,想在这段时间好好准备复习一下好在2022的金三银四里面跳槽,找一份自己喜欢的工作.之前一直没有时间为大家整理,这两天把今年字节跳动的 ...

  5. python后端工程师简历_【社招】字节跳动 - 后端开发工程师( Python Golang)-懂车帝...

    [字节跳动-懂车帝-后端开发工程师] 想加入最有梦想最年轻有活力的团队么,懂车帝研发团队呼唤你!懂车帝今年 3 岁,已经成为发展最快的汽车类资讯平台. 如果你热爱编程,热爱汽车,那么动动手指投出简历吧 ...

  6. 字节跳动2019春招后端开发工程师-笔试题解析

    一.简介 字节跳动2019春招第三批在线笔试(后端开发工程师)已结束,结果也是凉凉.本文主要是分析这次的题目,并给出代码,以供大家参考和讨论,如有错误之处,还望帮忙指正,谢谢每位优秀的程序员. 二.题 ...

  7. 2019年字节跳动2020届秋招在线笔试真题(后端开发工程师)

    2019年字节跳动2020届秋招在线笔试真题(后端开发工程师) 第一题 第二题 第三题 第四题 第一题 第二题 第三题 第四题 字节跳动的题,对于我这个菜鸟来说确实很难,对一半都做不到.还得继续努力啊 ...

  8. python后端工程师_Python 招聘:[字节跳动] 后端开发工程师 | Python 技术论坛

    大家好,字节跳动后端研发工程师正在招聘. 职位为内推职位,社招.实习均可,欢迎大家了解投递. 后端开发工程师 职位描述: 1.对标业内顶级 PaaS 和  SaaS 平台产品,按照业务领域需求,打造优 ...

  9. 三七互娱2019秋招Java后端开发工程师

    三七互娱2019秋招Java后端开发工程师 三.简答题 2.给定一个整数的数组,要求将数组中的所有为0的元素移动到数组的最后,其他的元素保持原来的顺序. 示例 数组{ 1, 5, 0, 0 ,2,19 ...

最新文章

  1. C++__min_element()和max_element()函数的使用
  2. 【C++】cannot access private member declared in class 'Box'
  3. 云原生安全厂商小佑科技完成数千万Pre-A轮融资
  4. 字段定义_ArcGIS开发amp;gdb、shapefile创建与投影定义,字段创建
  5. 使用RegistryKey的一个注意点
  6. cannot resolve symbol什么意思_JavaScript异步编程实现之一:Promise对象是什么?对resolve理解...
  7. Python获取文件路径:os.listdir()和os.walk()
  8. LSTMs和递归神经网络的初学者指南
  9. [妙味DOM]第一课:DOM基础概念、操作
  10. 数字逻辑电路课程设计之数字电子时钟
  11. 韩顺平Linux操作系统视频教程
  12. vue加载中图片和加载失败图片的占位图
  13. LEBERT:Lexicon Enhanced Chinese Sequence Labelling Using BERT Adapter
  14. 【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍
  15. android 窗口切换花屏,分享Android4平台二级页面滚动花屏问题的解决方案v1.0.0
  16. 02. Docker安装记录卸载
  17. 数据库集群技术(转载)
  18. 初识大数据--Hadoop大数据平台架构与实践
  19. 解决超新尔雅网课无法倍速(16+倍速冲刺)
  20. 一款基于SpringBoot开发开源外卖系统

热门文章

  1. 用html+js用canvas 实现刮风下雨特效【建议收藏】
  2. 致我们终究拥抱的距离
  3. 微信小程序使用towxml解析md/html
  4. 计算机二级 MS office(Excel)常用函数
  5. 谁说NTFS不支持UEFI启动的?启动U盘放不了超过4G的文件怎么办?Server2016 Win10 U盘UEFI启动制作方法
  6. 爬虫实战【6】Ajax内容解析-今日头条图集
  7. Element select表单必填验证
  8. 零基础学习资料(建议收藏)
  9. 分布式事务讲解 -消息队列+定时任务+本地事件表
  10. 抢票 | AI未来说学术论坛第11期 信息检索与知识图谱专场