写点什么

第一次面字节,一面很简单,二面被疯狂拷打!

作者:王中阳Go
  • 2024-04-08
    北京
  • 本文字数:3196 字

    阅读完需:约 10 分钟

第一次面字节,一面很简单,二面被疯狂拷打!

声明:本文首发在同名公众号:王中阳Go,未经授权禁止转载。

先来唠唠

实习经历对于即将参加校招的学生来说至关重要。


那些在知名科技公司实习过的学生,往往在校招招聘中更容易获得青睐,有时甚至可以直接获得正式职位,免去了激烈的校招竞争。


实习不仅仅是简历上的一笔,它代表着你已经掌握了基本的技术开发能力,比如数据库设计、操作,以及 HTTP 请求和 JSON 响应处理等。此外,实习还能让你熟悉 Linux 环境和 Git 协作,甚至可能积累处理线上问题的经验,比如接口性能问题、数据库查询优化、系统资源管理等。


在面试中,如果你能够详细阐述这些问题的背景、定位和解决过程,将极大地提升你的竞争力。企业通常更看重实际操作能力,而非仅仅理论知识。


实习经验能够让企业相信你能够迅速适应工作并带来贡献。作为雇主,自然更愿意招聘能够立即投入工作的人,这样可以缩短新员工的培养周期。


目前,许多互联网企业已经开始招募暑期实习生,对于即将毕业的学生来说,把握这一机会至关重要。不要因为信息不足而忽略实习的价值,提前准备总是胜于临时抱佛脚。记住,早起的鸟儿有虫吃,不要等到校招才开始准备面试。


下面就是我为你们整理的面试真题,看一下有没有你心仪的公司吧。

先秀战绩


虽然不同的公司考察的侧重点不一样,但是咱们还是可以有针对性做准备。


就像这位同学说的,经过这么多场面试发现:


如果面试官对项目感兴趣项目就拷打的比较深(我觉得还比较 easy);如果面试官对项目没兴趣就深挖知识点,拷打算法。(墙裂建议大家写好项目介绍!)

字节一面(技术)

  1. make 和 new 的区别?

  2. mutex 锁有几种模式?

  3. 讲一下 GMP 调度模型

  4. 两道语法纠错题(牛客上可以多刷一下)并解释为什么

  5. 一道算法爬楼梯

  6. 一道编程题:有 100 个并发线程,需要控制最多只有 10 个执行(有缓冲 channel 实现)并解释思路

  7. 知道哪些设计者模式?

字节二面(技术+人事)

技术:


  1. 讲一下一个系统访问的整个链路过程

  2. K8s 有哪些组件?

  3. 怎么把 node 里的 pod 暴露给外面使用?

  4. 我对监控的理解,怎么判断一个系统是否已经挂调了?

  5. 如果让你对系统进行一个巡检,你会怎么做?

  6. 举例数据库巡检

  7. 用过云产品吗?讲一下你对公有云的理解

  8. 用过 OPEN AI 吗?你一般怎么使用?人事:

  9. 从技术上和工作上上一家公司对你有什么成长?

  10. 在工作中和技术上学到哪些技能?举例说明

  11. 离职原因,未来职业规划

b 站外包

  1. 旋转数组

  2. mysql 索引相关。


  • B+树有什么特点?

  • 为什么不用 B 树(查询的速度差不多,因为 b+树数据都在叶子节点)。

  • 非聚簇索引和聚簇索引的区别。

  • 索引为什么要用 id 不用字符


  1. Linux 相关命令和场景

  2. docker 和 k8s

梭翱信息技术

  1. go 语言特性(channel、map 考察)

  2. 讲一下 waitgroup 的使用

  3. 知道模块化缓存吗?

  4. 知道分级缓存吗?


主要是一些缓存的应用场景为主。对于一些技术(redis、mq)的应用场景这部分比较欠缺

矢安科技

  1. 哪些数据结构是线程不安全的

  2. Map 为什么是线程不安全的

  3. Channel 阻塞可以实现什么场景(计数,令牌桶)

  4. Mysql 什么时候是行所什么时候是表锁

  5. Mysql 有几种错误读(脏读、幻读等等)

  6. Mysql 默认事务隔离级别是什么

  7. 假如有个 sql 联了多个表还有字查询,改怎么优化

  8. 你平常是怎么优化 mysql 的

  9. Kafka 为什么快?

  10. Kafka 怎么实现消息不丢失

  11. Kafka 是顺序写还是随机写

  12. Go 协程是怎么扩展内存的(找 P 要)

  13. 讲一下你对 docker 和 k8s 的理解

  14. 说一下某种集群的 leader 选举策略(举例了 redis)

  15. Redis 中什么是主管下线,什么是客观下线。

  16. 聊一聊你对 GRPC 的理解。

  17. 为什么 gprc 传输比 JSON 快


  • 少了 json 转为 2 进制

  • protobuf 文件中字段名用后面的数字代替,进一步减少数据量(学到了)


场景题:


  1. 假如有大量定时任务需要在凌晨 1 点都准时开始执行,你会怎么做

  2. 假如消息发送过多导致大量堆积怎么处理

华苏科技(国家电网外包)

项目拷打(介绍项目+遇到的难题)


  1. 有缓冲 channel 和无缓冲 channel 的区别

  2. 了解 gin 的中间件吗,讲一下你对他的了解

  3. select 满足多个 case 的时候怎么执行的。

  4. 如果有一个全局变量怎么保证并发安全。

  5. CPU 高问题如何解决?

  6. 知道哪些设计模式?


场景题:


我有一个方法,用来存储一些文件资源,有多种不同的存储方式,你会怎么设计这个方法(应该是要考察泛型的使用)

爱可生

介绍简历中的项目。


  1. 遇到的项目场景难题。


(他不太想听那种用技术选型方案来解决的常规问题,吹了一下 systemtap)


  1. 讲一个技术栈中随便一个技术遇到的难题。

  2. 平时是怎么学习的。


整个面试几乎就没有技术性提问,一直在让我介绍项目,和遇到的问题以及我是怎么解决的,解决的思路是什么。

成都美大

项目拷打


  1. 讲一下 mysql 的索引是什么结构

  2. 讲一下 sql 一般是怎么优化的

  3. Kafka 消息堆积怎么处理

  4. 写一个方法的时候是传值好还是结构体好


场景题:


秒杀超卖怎么解决。(分布式锁+redis 缓存)

矢安科技二面

一面的技术 leader,没有聊太多的技术话题。主要是一些团队协作沟通上的问题


  1. 假如产品给你一个需求,你觉得不合适,和产品经理有冲突,你会怎么做?

  2. 你平时是怎么学习的?

  3. 假如给你一个活要求某个时间内快速完成,你又没学过,你会怎么做?


试探你是不是愿意加班

杉岩数据

项目拷打


其中问了为什么不用普罗米修斯去监控


  1. 假如你用于通知的 Kafka 挂了怎么办?有没有对 Kafka 进行监控?

  2. channel 的使用场景?

  3. chaneel 关闭之后再读和再关闭会发生什么?

  4. map 中的数据 delete 之后内存会回收吗?

  5. GRPC 请求和 http 请求有什么区别

腾娱

四道基础语法题


c := []int{11, 12, 13}test(c)log.Info("c=%v", c)func test(s []int) {  for i := 0; i < 10; i++ {    s = append(s, i)  }}
复制代码


  1. c 最后是怎么样的?


func main() {        values := []int{1,2,3,4,5,6,7,8,9}        for _,v := range values {                go func(){                        println(v)                }()        }}
复制代码


  1. 求输出


func main() {    wg := sync.WaitGroup{}
for i := 0; i < 5; i++ { go func(wg sync.WaitGroup, i int) { wg.Add(1) fmt.Printf("i:%d\n", i) wg.Done() }(wg, i) } wg.Wait() println("exit")}
复制代码


  1. 求输出


func testDefer() (err error) {  defer func() {    if err != nil {      log.Error("defer: %s", err)    }  }()  log.Info("testDefer: %s", "test")  return handle()}
func handle()error{ return fmt.Errorf("normal:test")}
复制代码


  1. 改造他让他变得有序


func main() {        values := []int{1,2,3,4,5,6,7,8,9}        for _,v := range values {                go func(){                        println(v)                }()        }}
复制代码

杉岩二面

项目拷打 15 分钟


  1. Kafka 的消息丢失和消息重复消费。

  2. Kafka 和 Rabbitmq 的区别在哪?(架构、推和拉)

  3. 拉的模式有什么好处(控制消费速度)

  4. 使用分布式锁的过程中应用挂了?

  5. 优雅启停+defer

  6. 使用过期时间+自动续期

  7. 对象存储和文件存储的主要区别是什么?

  8. 分片上传是怎么实现的(文件合并 hash 一致性校验,引出文件秒传)

  9. 邮箱验证码功能怎么实现的。(redis+邮箱组件)

  10. jwt 的格式。加密算法、内容、过期时间

  11. 讲一下 defer 的原理

  12. 讲一下 map 的底层结构

  13. map 中 hash 冲突怎么解决(链表、红黑树)

  14. 讲一下 go 性能调优的案例(pprof,线程日志)

  15. 通过线程日志延伸出,怎么看一个线程在线程日志里是卡在循环还是事件等待?

  16. 线程日志上面会有标记。

  17. 讲一下 mysql 的事务隔离级别?

  18. 解释一下什么是可重复读?

  19. 事务实现的底层原理?

  20. Redis 持久化机制(RDB,AOF)

  21. 为什么持久化的时候是 fork 子进程处理

  22. 讲一下 docker 实现容器的基本原理

  23. 用过其他容器运行时吗

  24. K8s 有哪些组件?

  25. 你们是用什么 control 去构建 deployment 的?(没听懂)

衫岩三面

  1. 介绍上一家公司的业务和工作内容

  2. 了解上家公司的组织架构

  3. 我对系统监控的理解

  4. 如果让我设计一个监控系统需要注意哪些方面

早日上岸!

我们搞了一个免费的后端面试真题共享群,互通有无,一起刷题进步。


没准能让你能刷到自己意向公司的最新面试题呢。


感兴趣的朋友们可以加我微信:wangzhongyang1993,备注:面试群。


本文首发在我的同名公众号:王中阳Go,未经授权禁止转载。

发布于: 刚刚阅读数: 4
用户头像

王中阳Go

关注

靠敲代码在北京买房的程序员 2022-10-09 加入

【微信】wangzhongyang1993【公众号】程序员升职加薪之旅【成就】InfoQ专家博主👍掘金签约作者👍B站&掘金&CSDN&思否等全平台账号:王中阳Go

评论

发布
暂无评论
第一次面字节,一面很简单,二面被疯狂拷打!_Go_王中阳Go_InfoQ写作社区