24届字节后端开发实习面筋

坐标某牛马院校,有幸亲历今年死亡春招季。。因受朋友鼓动,加之深感自己在学校所能接触到的实际生产场景有限,不太能学到很多东西,缺乏有效的实践,所以想到外面尽早接触工业界的实际生产场景,以此来锻炼自己的能力,顺带丰富一下履历。准备了两个多月过后,我投出了自己人生中第一份字节跳动的简历。经过二战过后(二战的原因一言难尽。。),最终非常幸运的上岸了,非常感谢字节,能在如此困难的春招大环境下还能给我一份实习的机会

以下为面筋内容

岗位:飞书文档,Base:广州,一面+二面+业务调整换部门

tips:飞书文档的全流程是两轮技术面+一轮hr面

一面

主要以项目为主,八股为点缀,细节考察略多

项目

不同客户端之间是如何通信的

Django channel和websocket

redis对Django channel的作用(背文档)

为什么要使用websocket,websocket的特性,和传统http通信的区别 (八股)

匹配系统的实现

结合thrift框架,多线程模型,匹配池,参数设计,函数等的具体实现

Thrift框架的各类server、协议如何选用,最终方案的理由 (结合项目做横向对比)

如果匹配系统挂了会有什么后果

玩家一直停留在等待界面,排不到人

如果项目挂了怎么办,有没有容灾,如何排查错误

(1)明确故障:什么故障,出现在什么地方,可不可以场景复现

(2)排查原因,分段排查:客户端排查(其他客户端有没有这个问题),服务端排查(看进程指标是否正常),中间链路排查(看看有没有错误调用),打日志

(3)根据原因进行修改

(4)重新启动

以上仅针对个人开发的小玩具而言,其实对于正常的业务而言,是应该需要容灾,包含:故障发生,故障感知,自动切换,服务恢复多个过程,由于细节太多,不赘述。

用户登录模块的登录是怎么实现的

Django自带的Login模块

Django的login模块是基于什么实现的

当时没有了解Django新版本有没有做改动,但是以前看过一篇博客讲的是古早时期Django的login模块是基于cookie和session的,所以说了cookie和session

Cookie和session的区别(八股)

介绍项目中基于Oauth2的第三方授权实现

详细描述每一个过程发送的数据、数据的发送方和接收方,参数的来源(比如有些url参数是自己对外提供的,有些如应用id,应用密码等参数是应用所注册的第三方平台所提供的)

Token的特点 (八股)

如果第三方平台跑路了,原有基于第三方授权注册的用户怎么办

在用户注册时强制填多几个注册信息,避免其中一种渠道挂了后用户就没办法再登陆了

闲聊

部门培养计划

针对该岗位的学习建议

二面

主要还是以情景题为主,八股不少但耗时不长,大部分时间还是面试官在引导如何解决情景题

情景

如何对项目进行优化

服务层调优

数据库(做缓存,加索引,减少访问次数等)

服务端代码逻辑优化(算法选择、利用测试工具找瓶颈,依次优化、选择更合适的函数,协议等)

服务链路间的调用(减少调用次数,避免重复调用,减少冗余数据的传输和处理);

基本库调优(涉及sdk涉及,不赘述)

语言层调优(涉及函数内联,逃逸分析等内容,不赘述)

其他:

借助nginx,做动静分离,数据压缩,负载均衡,调整worker进程的数量控制并发量

根据场景(以读多写少为例),部署多个数据库(负责处理读请求的数据库需要比处理写请求的数据库要更多,这是根据场景决定的),将不同类型的请求转发到不同的数据库进行处理

使用多线程模型,IO多路复用等

如何应对高并发场景

负载均衡,服务降级,熔断,避免雪崩

降级的方式:消息队列削峰,停掉优先级不高的服务,做监控等等

常见的限流算法:计数器,滑动窗口,桶漏,令牌桶

如何设计一套自己的限流算法

?????投了投了,15吧。

数据库

为什么redis是单线程(八股)

介绍一下redis的单线程模型(八股)

Redis在项目中的使用

Django channel的依赖,验证码

Redis的持久化(aof,rdb),两种方式的区别和优劣(八股)

Update语句执行流程,两阶段提交(八股)

聚簇索引和二级索引,回表(八股)

介绍僵尸进程,孤儿进程的成因,解决方式(八股)

从输入域名到显示网页全流程(八股)

http常见字段,状态码(八股)

闲聊

面试评价

对基础和自己的技术栈掌握得还可以,但是离工业界太远,不太了解工业界处理问题的方式,学院派气息比较重

有什么可以继续学习的

我刚问什么你学什么

hr面

因为业务调整,原定的招收24届同学名额改为招收23届,24届的同学年底再储备,所以hr帮我换了部门(血压上来了,因为要从头面起)

碎碎念:说好的优先广州Base,结果换到深圳了,导致一半的工资面临上交房东的尴尬情况QwQ,这房租,我都想在公司睡行军床、搭帐篷了

岗位:growth中台,Base:深圳,一面+二面+三面+hr面(省略)

已OC

一面

综合考察,八股为主

项目

项目介绍

如何实现联机,如何把其他玩家渲染到客户端上

Django channel,websocket,渲染是根据客户端存储玩家数组依次渲染的,玩家匹配成功就会被加入到数组中,自然就可以被渲染

Django channei的底层实现(背文档)

redis在Django channel中起到了什么作用(背文档)

项目挂了怎么办,有没有做容灾

小玩具无容灾(其实自己也不会hh)

(1)明确故障:什么故障,出现在什么地方,可不可以场景复现

(2)排查原因,分段排查:客户端排查(其他客户端有没有这个问题),服务端排查(看进程指标是否正常),中间链路排查(看看有没有错误调用),打日志

(3)根据原因进行修改

(4)重新启动

数据库

Redis的两种持久化方式(八股)

Redis的数据结构,以及实现这些数据结构的底层数据结构(八股)

介绍一下ACID,以及实现它们的日志,bin log,redo log,undo log(八股)

bin log和redo log的区别(八股)

update语句执行流程,两步骤提交细节(八股)

各个隔离等级(八股)

聚簇索引和二级索引,回表(八股)

行级锁(next-key锁,间隙锁,记录锁),锁的退化规则(八股)

分库分表,为什么分表,怎么分,多少数据分一次(八股)

操作系统

内存分页的实现,换页,页缓存(八股)

介绍文件系统,讲一下一个文件从磁盘到内存的全过程,含inode,中断等内容(八股)

介绍文件的非连续空间存储和连续空间存储(八股)

二面

纯八股考察

数据结构(二叉排序树,平衡树,红黑树)

各自的特点,优劣,复杂度(八股)

写项目时平衡树和红黑树怎么选

读多写少用平衡树,写多读少用红黑树

寄网

TCP的滑动窗口,流量控制,拥塞控制(八股)

影响网络传输效率的各种因素(八股)

按照OSI或者TCP/IP各层依次枚举可能的原因,也涉及操作系统IO效率,网卡等角度

数据经过TCP/IP每个层所发生的变化(八股)

有网络层为什么还需要传输层(八股)

UDP协议传输大数据和传输小数据的区别(是没有见过的问题,失策了)

https握手的全过程,含会话密钥生成,CA证书等内容(八股)

对称加密相比非对称加密除了速度以外的优点(八股)

语言

Python和cpp的区别(聊得比较宽泛,不多阐述)

闲聊

内部项目如何进行测试

部门的职能和岗位详情

培养计划

三面

综合考察

项目

项目介绍

遇到什么难点

帧同步,状态同步分析各自原理,横向比较,阐述最终选用方案的原因

不同客户端如何通信

Django channel,websocket

是否有测试过网络延迟

无详细数据,但有简单的测试

语言(Python)

生成器和迭代器的区别和底层实现(八股)

怎么理解装饰器(按自己的理解来说就行)

可以在装饰器里计算函数的运行时间吗

装饰器适合用来做什么设计模式

Python的垃圾回收:引用计数,分代回收,标记清除(八股)

Python中new和init的区别,底层做了什么工作 (八股)

数据结构(跳表和红黑树)

跳表的特点和实现

分析跳表和红黑树的区别,复杂度,分别适用的场景

如果写项目,要二选一,怎么选

http各版本,1.0,1.1,2.0,3.0

闲聊

字节内Devops的应用

面试评价

#字节跳动##春招##实习##后端开发##春招上岸经验#
全部评论
老哥主要语言是python吗
1 回复 分享
发布于 2022-06-27 15:05
1 回复 分享
发布于 2022-06-27 17:09
怎么没有算法题
1 回复 分享
发布于 2022-06-29 01:52
楼主是直接在官网投的吗 什么时候投的呀
点赞 回复 分享
发布于 2022-06-24 09:42
哥们啥时候入职,你不会和我一个部门的吧?😁
点赞 回复 分享
发布于 2022-06-26 09:58
你好牛
点赞 回复 分享
发布于 2022-06-26 22:42
你开始上班了
点赞 回复 分享
发布于 2022-06-27 08:41
老哥牛呀
点赞 回复 分享
发布于 2022-07-04 22:31
点赞 回复 分享
发布于 2023-05-01 10:35 湖北

相关推荐

评论
32
147
分享
牛客网
牛客企业服务