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的应用

面试评价

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

相关推荐

AI大模型算法,一环扣一环的拷打Transformer 基础详细介绍 Transformer 架构(Encoder-Decoder 结构、位置编码、FFN 等)Decoder 的因果注意力中,Q、K、V 分别来自哪里?→ Q 来自当前 Decoder 输入(已生成的 token 序列),K 和 V 也来自同一序列(需 mask 未来信息)Attention 为什么要 scaled?不做会怎样?为什么是√dₖ?→ 点积随 dₖ增大会让 softmax 进入饱和区,导致梯度消失;除以√dₖ可使方差稳定在 1(数学推导参考 Vaswani 论文)Transformer 如何加速推理?KV Cache 是什么?训练 vs 推理的并行性差异?→ 训练时所有 token 并行计算;推理时自回归,KV Cache 可缓存历史 K/V,避免重复计算,大幅提速多模态论文深挖(以 Video-LLaMA 为例)讲解 Video-LLaMA 的整体结构→ 视频编码器(如 ViT + Temporal Aggregator)→ 投影层(对齐文本空间)→ LLaMA 语言模型论文中 CoT(Chain-of-Thought)的具体设计?→ 在 prompt 中加入推理步骤示例(如 “视频中先看到人挥手,然后狗跑过来…”),引导模型分步作答微调 & 分布式训练微调用了 LoRA,介绍其原理→ 将权重更新 ΔW 分解为低秩矩阵 A×B,冻结原模型,只训练 A、B,大幅减少可训练参数LoRA 初始化怎么做?秩(rank)设为多少?为什么选这个值?→ A ~ N (0, σ²),B 初始化为 0;常用 rank=8 或 16,在效果和参数量间取得平衡(实验验证)知道 DeepSpeed 和 Megatron 吗?分别说说→ DeepSpeed(微软):主打 ZeRO 显存优化;Megatron-LM(NVIDIA):张量并行 + 流水线并行论文用 DeepSpeed,三个 Stage(ZeRO-1/2/3)分别是什么?→ Stage1:优化器状态分片;Stage2:+ 梯度分片;Stage3:+ 模型参数分片(通信换显存)二面下一篇再写吧,力竭了
查看10道真题和解析
点赞 评论 收藏
分享
03-23 22:51
深圳大学 Java
Baidu 后台开发实习一面(30min)1.主要业务用Go,他对Go就没啥好问的(……)我说对Go会基本使用,对比较深的不了解2.MySQL有用到索引?那么你在项目里是怎么使用的?3.聚簇索引?二级索引?以及它们的区别?4.说一下覆盖索引?如何去建立一个这样的覆盖索引?5.给了一个SQL语句(Select * from table where a=1 and b<1 and c=2 order by d desc),问如何建立覆盖索引?6.乐观锁?乐观锁的具体怎么操作?CAS是改值还是++?7.Redis在秒杀和超卖这个场景是怎么利用的?Lua脚本中的命令你可以举一些吗?8.浏览器输入一个url到浏览器渲染出页面的一个完整过程?9.得到IP地址后,假设现在有多个服务,比如登录服务,后端服务。如何根据这个ip知道具体是哪个服务?10.http的常用状态码?2xx?3xx?4xx?5xx?无手撕Baidu 后台开发实习二面(40min)主要就是问我实习的事情,实习讲清楚干了啥,然后是问实习中遇到的困难,和该怎么去处理。1.提到了我多级缓存的一致性问题该怎么解决。写请求是如何保证一致性的?为什么要用多级缓存?2.遇到缓存击穿问题该怎么解决?然后项目中库存超卖,一人一单的实现流程?2.场景题:商业化下Redis做缓存,遇到缓存击穿问题该怎么解决?除了Redis做缓存,redis的成本是比较高的?还有没有别的手段和方法去处理?3.对当前ai快速变化的看法?ai开发占你开发的百分比?4.实习的时候如果遇到mentor和leader给你大量并行的任务,你会怎么去安排任务的执行情况,如果遇到能力不足的任务,该怎么去沟通交流?5.职业规划?6.手撕:两数之和
查看16道真题和解析
点赞 评论 收藏
分享
04-03 12:18
西北大学 Java
一、个人 & 实习背景HTTP 协议讲讲只是把 HTTP 改成 WebSocket,那内部处理流程或编排具体有什么变化?关键是怎么把完整音频基于什么维度切割?延迟从 800ms 降到 200ms,这个 800ms 是处理完成返回的时间吗?是发起请求之后,完整响应吗?从请求到所有 response 收完?确认一下延迟口径:是接口请求维度,从发起网络请求到数据全部接收完成?端到端的链路流程说一下?二、计算机网络 & 操作系统HTTP 请求信息里面有哪些内容?Request 里都有什么?HTTP 和 HTTPS 的区别是什么?HTTPS 传输过程中具体是怎么保证数据安全的?现在浏览器都是多进程,进程之间协作通信方式有哪些?进程之间的通信方式有哪些?方法的入参、出参、局部变量在内存哪块区域?三、Redis & MySQL & 中间件Redis、MySQL 这些组件用过吗?缓存怎么使用 Redis?具体怎么用?积分排行榜是整个站点所有用户积分排名吗?Redis List 有数量上限,量大后性能会有问题,几万几十万用户还能用吗?Redis 集群解决了什么问题?排行榜是一个 key,集群怎么分?100 万用户按 1 万一组分片:新用户进来往哪个分片加?边缘用户积分变动,跨分片时数据怎么处理?有更好的方案吗?Redis 还用过其他功能吗?不重复领优惠券是什么场景?Lua 脚本里查,其他人同时执行不也会有问题吗?Redis 持久化方式有哪些?MySQL InnoDB 为什么用 B+ 树?MQ 用过吗?了解吗?知道是做什么、解决什么问题吗?四、项目 & 架构之前做的都是 Spring Boot 单体服务吗?有没有接触过微服务架构?五、算法题第 k 个排列有思路吗?hard题:60. 排列序列
点赞 评论 收藏
分享
评论
33
149
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务