面试级 AI Coding 题(共 8 题)
第一题:Prompt 设计能力(初级必考)
题目
你要让 AI 生成一个 Android 登录页面。
要求:
- 使用 Kotlin
- MVVM 架构
- 使用 ViewBinding
- 输入框校验手机号和密码
- 登录按钮点击后模拟网络请求
请写出你的 Prompt,并说明如何避免 AI 输出低质量代码。
参考答案
Prompt 示例
请生成一个 Android 登录页面,要求如下:
1. 使用 Kotlin
2. 架构采用 MVVM
3. 使用 ViewBinding
4. 包含手机号输入框、密码输入框、登录按钮
5. 手机号格式校验
6. 密码长度至少6位
7. 点击登录按钮后,使用协程模拟2秒网络请求
8. 返回成功结果并更新UI
9. 代码需包含:
- Activity
- ViewModel
- Repository
- Layout XML
10. 输出完整可运行代码,不要省略实现
如何避免低质量输出
- 明确技术栈
- 明确输出文件范围
- 指定“不允许伪代码”
- 要求完整实现链路
- 限制架构模式
第二题:AI Debug 能力(中级)
题目
你遇到如下错误:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/example/xxx;
请说明:
- 可能原因
- 如何借助 AI 快速排查
- 如何验证 AI 给出的答案是否可靠
参考答案
可能原因
- 混淆误删类
- 依赖版本冲突
- 多 dex 未正确配置
- 动态加载失败
- 某模块未被打包
AI 排查 Prompt
请分析以下 Android 崩溃日志:
[粘贴日志]
请从:
1. 混淆
2. 依赖冲突
3. 打包配置
4. 多 dex
四个角度排查,并给出验证步骤。
验证可靠性
- 检查建议是否可复现
- 对照 Gradle 配置
- 用 stacktrace 定位真实类路径
- 不盲信 AI,必须交叉验证
第三题:AI + 代码重构(高频)
题目
以下代码存在问题,请说明如何借助 AI 重构:
if (type == 1) {
if (status == 0) {
doA()
} else {
doB()
}
} else if (type == 2) {
doC()
}
要求:
- 提升可维护性
- 使用 Kotlin 风格优化
参考答案
AI 重构目标
- 替换魔法值
- 引入 sealed class
- 降低嵌套层级
重构结果
sealed class ActionType {
object TypeA : ActionType()
object TypeB : ActionType()
}
fun handleAction(type: ActionType, status: Int) {
when (type) {
is ActionType.TypeA ->
if (status == 0) doA() else doB()
is ActionType.TypeB ->
doC()
}
}
面试亮点
重点不是 AI 写了啥,而是你知道为什么这样更好。
第四题:AI Agent 思维(高级)
题目
设计一个“自动修复 Android Crash”的 AI 系统。
输入:Crash 日志
输出:修复建议 + Patch
请描述整体架构。
参考答案
架构设计
日志输入层
↓
异常解析器
↓
向量检索(历史问题库)
↓
LLM 推理层
↓
Patch 生成器
↓
人工确认
核心能力
- Crash 分类
- 相似案例召回
- 根因分析
- 代码 diff 输出
风险控制
- Patch 必须人工审核
- 仅建议,不自动 merge
- 引入测试验证
第五题:AI 工程化能力(重点)
题目
如何让 AI 生成的代码更符合团队规范?
参考答案
方法
1. 提供团队代码模板
例如:
- 命名规范
- 包结构
- 注释风格
2. 建立 Prompt Library
不同任务对应不同模板:
- UI 生成模板
- Bug 修复模板
- 测试代码模板
3. 引入静态检查
AI 输出后自动执行:
- ktlint
- detekt
- 单元测试
第六题:AI 业务落地题(产品向)
题目
如果让你给浏览器 App 加一个 AI 功能,你会做什么?
参考答案
功能方案:网页智能摘要
用户价值
- 长文快速阅读
- 自动提取重点
- 节省时间
技术实现
网页正文提取
↓
文本清洗
↓
LLM 摘要生成
↓
本地缓存
优化点
- 分段摘要
- 多语言支持
- 离线 fallback
第七题:AI 编码伦理题(常见)
题目
如果 AI 生成了错误代码并导致线上事故,责任在谁?
参考答案
责任仍在工程师和流程。
AI 是工具,不是责任主体。
正确认知
- AI 负责建议
- 工程师负责判断
- 团队负责流程设计
应对策略
- 代码 review
- 自动测试
- 灰度发布
第八题:开放题(最拉差距)
题目
未来 3 年,AI Coding 会如何改变软件工程师的工作方式?
参考答案
趋势
1. 编码时间下降
更多时间用于设计与验证
2. 工程师角色升级
从“写代码的人”变成“定义规则的人”
3. AI 成为基础设施
像 IDE 一样普及
核心竞争力转移
从语法熟练度 → 系统思维 + 架构能力
面试官真正想听什么?
不是你会不会用 AI。
而是你是否知道:
AI 能做什么、不能做什么、如何接入工程体系。
最后给你一句面试级回答模板
AI 提升的是编码效率,但决定质量的仍然是工程能力。
真正的价值不是让 AI 写代码,而是构建一套让 AI 稳定产出高质量代码的流程。
如果你想,我下一套可以给你出:
- Android + AI 实战面试题
- 大厂级 AI 工程师题库
- 让你薪资翻倍的 AI 架构题