AcWing
  • 首页
  • 活动
  • 题库
  • 竞赛
  • 校园
  • 应用
  • 文章
    • 题解
    • 分享
    • 问答
  • 吐槽
  • 登录/注册

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

作者: 作者的头像   RyanMoriarty ,  2022-06-24 00:50:03 ,  所有人可见 ,  阅读 86


14


9

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

以下为面筋内容

岗位:飞书文档,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的应用

面试评价

23 评论


用户头像
SolitudeAlma   3天前     回复

大佬真的厉害,我哭死!!!

用户头像
RyanMoriarty   18小时前     回复

大佬也可以的,加油呀hh

用户头像
SolitudeAlma   7小时前    回复了 RyanMoriarty 的评论     回复

打算八月份开始找 呜呜呜


用户头像
acwing_gza   5天前     回复

恭喜~祝贺~

用户头像
RyanMoriarty   4天前     回复

谢谢hh


用户头像
acwing_gza   5天前     回复

恭喜~祝贺~


用户头像
acwing_gza   5天前     回复

恭喜~祝贺~


用户头像
acwing_gza   5天前     回复

恭喜~祝贺~


用户头像
acwing_gza   5天前     回复

恭喜~祝贺~


用户头像
7_48   5天前     回复

恭喜~祝贺~


用户头像
liang302   7天前     回复

佬!!!tql


用户头像
断然   7天前     回复

大佬 你这是面的什么岗位

用户头像
RyanMoriarty   7天前     回复

上面有写呀hh

用户头像
断然   7天前    回复了 RyanMoriarty 的评论     回复

ooo 对不起大佬 我是憨批, 大佬你这个是搞python吗 怎么都问Django


用户头像
不AK不改名   7天前     回复

tql


用户头像
ShawnXIAOGNAH   7天前     回复

啊这…怎么都24届了。23届不都还没毕业呢么。

用户头像
ღSupperღ   7天前     回复

是的呢o(╥﹏╥)o


用户头像
ღSupperღ   7天前     回复

大佬tql,Orz

用户头像
RyanMoriarty   7天前     回复

谢谢啦hh,其实很多是常规题目

用户头像
ღSupperღ   7天前    回复了 RyanMoriarty 的评论     回复

24届现在实习会不会太早呀

用户头像
RyanMoriarty   7天前    回复了 ღSupperღ 的评论     回复

一年比一年难,今年不去可能明年机会就更少了,而且大三可能还要准备考研或者润,这些和实习都冲突,其实现在这个时间点是为数不多的选择

用户头像
ღSupperღ   7天前    回复了 RyanMoriarty 的评论     回复

同为24届,我感觉我是个废物,达不到实习的标准o(╥﹏╥)o


用户头像
RyanMoriarty   7天前     回复

春招早已结束,面试很多也是一、两个月前的内容了hh,本来应该早点写完的,但因为准备期末考试,鸽了太久。虽然最后也没能去成阿米(简历挂,哭死),但也算是有个句号了。


你确定删除吗?

© 2018-2022 AcWing 版权所有  |  京ICP备17053197号-1
用户协议  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标
请输入绑定的邮箱地址
请输入注册信息