橘子瑞米甄选教育面试

一、自我介绍与基本情况#

  1. 先做个简单的自我介绍。
  2. 为什么会选择在大二这个时间点出来实习?
  3. 学校目前是结课了吗?
  4. 如果各方面都合适,最快能到岗的时间是什么时候?
  5. 最短实习时长大概能做多久?

二、语言与技术栈选择#

  1. 除了 Go 之外,还会其他语言吗?
  2. 一开始学的是 Java,为什么后面会转向 Go?
  3. 你觉得 Go 相比 Java,在个人项目开发体验上有什么优势?

三、Go 基础#

  1. 你简历上写了深入了解 goroutine,可以简单讲一下 goroutine 和线程相比为什么更轻量吗?
  2. GMP 模型分别代表什么?
  3. GMP 中 G、M、P 各自的作用是什么?
  4. goroutine 泄露是什么?
  5. 有缓冲 channel 和无缓冲 channel 的区别是什么?
  6. 你了解 Go 中的 context 吗?
  7. context 一般有哪些使用场景?
  8. Go 里的内存逃逸是什么?
  9. 哪些场景可能会发生内存逃逸?
  10. 变量逃逸到堆上之后,对 GC 有什么影响?

四、Feed 流项目#

  1. 介绍一下你做的 Feed 流系统。
  2. 你说实现了 IP 和账户级别的限流,这个是用 Redis 做的吗?
  3. Redis 限流用的是什么数据结构和算法?
  4. 为什么选择固定时间窗口,而不是滑动窗口?
  5. Redis 操作怎么保证原子性?
  6. Lua 脚本为什么能保证 Redis 操作的原子性?
  7. 你简历里提到的软鉴权模式是什么?
  8. 软鉴权中间件的具体实现逻辑是怎样的?
  9. 如何判断请求是否携带有效 token?
  10. 如果请求没有 token,但是访问的是公共接口,你会怎么处理?

五、Agent 项目 / MCP / RAG#

  1. 介绍一下你的 Agent 系统。
  2. 你用了 MCP,可以解释一下 MCP 是什么吗?
  3. MCP 解决了什么问题?
  4. MCP 和普通工具调用有什么区别?
  5. 这个 Agent 项目是你从 0 到 1 写的,还是基于现成项目学习修改的?
  6. 你项目里做了 RAG,知识库里的数据来源是什么?
  7. RAG 知识库中的数据格式是什么?
  8. 你是怎么对 RAG 文档进行 chunking 的?
  9. 为什么没有按字数切分,而是按 Markdown 标题切分?
  10. 按标题切分有什么优点?
  11. 如果某个标题下面内容特别长,你会怎么处理?
  12. 你提到了 SSE,为什么要用 SSE 做流式输出?
  13. 为什么这里选择 SSE,而不是 WebSocket?

六、网络基础#

  1. WebSocket 和 HTTP 的区别是什么?
  2. WebSocket 适合什么场景?
  3. WebSocket 是怎么建立连接的?
  4. WebSocket 和普通 HTTP 请求有什么不同?
  5. HTTP 和 HTTPS 的区别是什么?
  6. HTTPS 为什么更安全?
  7. HTTPS 需要什么证书?

七、行为面问题#

  1. 在现阶段积累职业经验这个方向上,你会更激进还是更稳重?
  2. 如果有一个有挑战性的工作,你会怎么判断自己要不要接?
  3. 如果有两个选择: 一个是去中小公司独立负责一个新业务项目; 另一个是去大厂做某个特定业务节点开发; 你会更倾向于哪个?
  4. 你怎么看待大厂 title 和实际项目产出之间的关系?
  5. 你在学业上的短期和长期规划是什么?
  6. 你在求职上的短期和长期规划是什么?