文章
小厂面试
橘子瑞米甄选教育面试
一、自我介绍与基本情况#
- 先做个简单的自我介绍。
- 为什么会选择在大二这个时间点出来实习?
- 学校目前是结课了吗?
- 如果各方面都合适,最快能到岗的时间是什么时候?
- 最短实习时长大概能做多久?
二、语言与技术栈选择#
- 除了 Go 之外,还会其他语言吗?
- 一开始学的是 Java,为什么后面会转向 Go?
- 你觉得 Go 相比 Java,在个人项目开发体验上有什么优势?
三、Go 基础#
- 你简历上写了深入了解 goroutine,可以简单讲一下 goroutine 和线程相比为什么更轻量吗?
- GMP 模型分别代表什么?
- GMP 中 G、M、P 各自的作用是什么?
- goroutine 泄露是什么?
- 有缓冲 channel 和无缓冲 channel 的区别是什么?
- 你了解 Go 中的 context 吗?
- context 一般有哪些使用场景?
- Go 里的内存逃逸是什么?
- 哪些场景可能会发生内存逃逸?
- 变量逃逸到堆上之后,对 GC 有什么影响?
四、Feed 流项目#
- 介绍一下你做的 Feed 流系统。
- 你说实现了 IP 和账户级别的限流,这个是用 Redis 做的吗?
- Redis 限流用的是什么数据结构和算法?
- 为什么选择固定时间窗口,而不是滑动窗口?
- Redis 操作怎么保证原子性?
- Lua 脚本为什么能保证 Redis 操作的原子性?
- 你简历里提到的软鉴权模式是什么?
- 软鉴权中间件的具体实现逻辑是怎样的?
- 如何判断请求是否携带有效 token?
- 如果请求没有 token,但是访问的是公共接口,你会怎么处理?
五、Agent 项目 / MCP / RAG#
- 介绍一下你的 Agent 系统。
- 你用了 MCP,可以解释一下 MCP 是什么吗?
- MCP 解决了什么问题?
- MCP 和普通工具调用有什么区别?
- 这个 Agent 项目是你从 0 到 1 写的,还是基于现成项目学习修改的?
- 你项目里做了 RAG,知识库里的数据来源是什么?
- RAG 知识库中的数据格式是什么?
- 你是怎么对 RAG 文档进行 chunking 的?
- 为什么没有按字数切分,而是按 Markdown 标题切分?
- 按标题切分有什么优点?
- 如果某个标题下面内容特别长,你会怎么处理?
- 你提到了 SSE,为什么要用 SSE 做流式输出?
- 为什么这里选择 SSE,而不是 WebSocket?
六、网络基础#
- WebSocket 和 HTTP 的区别是什么?
- WebSocket 适合什么场景?
- WebSocket 是怎么建立连接的?
- WebSocket 和普通 HTTP 请求有什么不同?
- HTTP 和 HTTPS 的区别是什么?
- HTTPS 为什么更安全?
- HTTPS 需要什么证书?
七、行为面问题#
- 在现阶段积累职业经验这个方向上,你会更激进还是更稳重?
- 如果有一个有挑战性的工作,你会怎么判断自己要不要接?
- 如果有两个选择: 一个是去中小公司独立负责一个新业务项目; 另一个是去大厂做某个特定业务节点开发; 你会更倾向于哪个?
- 你怎么看待大厂 title 和实际项目产出之间的关系?
- 你在学业上的短期和长期规划是什么?
- 你在求职上的短期和长期规划是什么?