ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI 帮你交差之后:实习生的真正战场在「交差之外的 30 分钟」

AI 帮你交差之后:实习生的真正战场在「交差之外的 30 分钟」 利益声明本文作者参与了 wescode 的开发。文中涉及 wescode 的技术描述基于内部测试数据涉及其他工具的描述基于各家公开文档和社区反馈。一位实习生的原话公司交付模式任务多以整块 CRUD、完整业务模块作为开发单元考核只看最终输出只要符合业务需求即可不关心我内部实现过程。开发体验浮光掠影只是拿到结果缺少深度思考的过程。这段话精准描述了 2026 年很多初级工程师的困境。AI 帮你 2 小时搞定了以前 2 天的活。你交了差。KPI 达标。但你回头看——你什么都没学到。这不是你的问题。这是整个行业在 AI 冲击下还没想清楚的事。你慌的不是 AI 太强而是你发现自己在做 AI 最擅长的事重新读一遍上面的交付模式任务以整块 CRUD为单元考核只看最终输出不关心实现过程翻译成大白话公司需要你把需求翻译成代码。这恰好是 AI 最擅长的事——它本质上就是一个需求 → 代码的翻译器。以前你用脑子翻译现在你用 Cursor / Trae 翻译。效率高了 5 倍。但你的角色没变——还是翻译员。你的慌不是 AI 太强了而是你意识到自己的工作被精确地放在了AI 替代区里一个有经验的工程师每天的时间分布工作占比AI 能替代多少理解需求、和 PM/设计对齐30%几乎不能找到该改哪里、看影响面20%需要项目级理解审查代码质量自己的别人的20%部分能帮写代码15%AI 几乎能完全替代联调、排查、处理线上问题15%部分能帮实习岗位分配给你的全是写代码那 15%。AI 帮你做完了你觉得自己什么都没学到——因为 AI 替代的恰好是你被分配到的那一块。问题不是 AI是实习岗位只让你接触了冰山尖尖。30 分钟规则每个任务交差之后多花 30 分钟这是本文的核心方法。AI 帮你 2 小时搞定一个 CRUD 模块。不要把省下来的时间全部还给公司。拿 30 分钟做 AI 不会帮你做的事——这 30 分钟是你整段实习里真正在学东西的时间。第一个 5 分钟读 AI 生成的代码不是扫一眼能跑就行——是逐函数读问自己三个问题Q1这段代码为什么这么写// AI 生成的用户列表查询 async getUsers(page: number, size: number) { const [users, total] await this.userRepo.findAndCount({ skip: (page - 1) * size, take: size, order: { createdAt: DESC }, where: { deletedAt: IsNull() }, }) return { users, total, page, size } }问自己为什么用findAndCount而不是分两次查一次查询拿数据总数减少数据库往返skip和take是什么分页模式项目用的是 offset 分页还是 cursor 分页大表会不会有性能问题deletedAt: IsNull()说明项目用的是软删除。这个约定写在哪了Q2和项目其他模块的写法一致吗打开项目里另一个类似的模块比如OrderService对比一下。你可能发现项目里其他地方的错误处理用的是自定义BizExceptionAI 用了原生throw new Error()项目里的返回格式是{ code: 0, data: {...}, msg: ok }AI 直接返回了原始对象项目里的分页参数叫pageNum/pageSizeAI 用了page/size这些不一致才是你学东西的地方。每一个不一致的背后都有一个项目约定需要你去发现。延伸阅读它写的代码能跑但和我们项目的写法完全不像Q3这段代码少了什么AI 生成的代码通常只包含正常路径。问自己入参没传怎么办有没有参数校验数据库挂了怎么办有没有降级策略并发操作怎么办有没有加锁或幂等处理你在做的事训练工程判断力。从能跑到可靠之间的差距就藏在这些问题里。第二个 10 分钟找影响面你写了一个UserService。问自己这个 Service 被谁调用了UserController.getUsers() → 调用你的 UserService.getUsers() OrderService.createOrder() → 调用你的 UserService.findById() AuthMiddleware.validateToken() → 调用你的 UserService.findById() CronJob.dailyReport() → 调用你的 UserService.countActive()如果你改了findById的返回格式上面有 3 个调用方需要跟着改。你知道吗大部分实习生不知道。因为任务只交代了写 UserService没人让你看谁在调用你。但三年经验的老工程师改任何一个函数之前脑子里都有这张调用关系图。这张图不是靠写代码攒出来的——是靠主动去看攒出来的。wescode 的 CKG代码知识图谱能自动生成这张图——改一个函数CKG 告诉你三层调用链上还有哪 8 个地方要跟着改。但即使你不用 wescode手动搜一遍Find References也能做到类似的事。关键是你得知道要做这件事。延伸阅读改一处漏三处AI 改代码最常翻的车第三个 15 分钟写技术笔记这是 30 分钟里价值最高的部分。不是代码。是一段回答为什么的文字。## 用户管理模块实现笔记 2026-12-04 ### 设计决策 1. 分页用 offset 模式不用 cursor 模式。 原因后台管理页面数据量不大offset 够用。 如果用户量上万应该改 cursor 分页。 2. 软删除用 deletedAt 字段标记。 项目约定没有写在文档里。 我是看 OrderEntity 才发现的。 ### AI 生成后我改了什么 1. 把 throw new Error 改成 throw new BizException。 原因项目统一错误处理中间件只认 BizException。 2. 返回格式从原始对象改成 { code, data, msg }。 原因前端统一从 data 里取值。 3. 分页参数从 page/size 改成 pageNum/pageSize。 原因和其他接口保持一致。 ### 我不确定的地方 1. findById 查不到用户时应该返回 null 还是抛异常 项目里两种写法都有。需要问 mentor。 2. 批量删除应该用事务吗 AI 没有加事务。但如果删到一半失败了数据会不一致。这段笔记为什么值钱它是你的面试素材——讲一个你在实习中遇到的技术取舍这段笔记就是现成的答案它是你的隐性知识显性化——软删除用 deletedAt这种约定不写下来三个月后你自己都忘了它是你区别于 AI 的证据——AI 能生成代码但它写不出为什么改了、为什么不确定你积累的到底是什么半年实习每个任务 30 分钟额外投入。你会积累出什么时间积累第 1 个月20 条项目约定笔记。你开始知道哪些规矩没写在文档里第 2 个月开始能看出 AI 生成的代码哪里不对。你改的不再是按 mentor 说的改而是我知道应该这么改第 3 个月你的影响面意识建立了。改一个函数之前你会先想谁在调用它——mentor 注意到了开始把更复杂的任务交给你第 4-6 个月你的技术笔记本积累了 50 条设计决策。面试时别人背八股文你讲真实项目的取舍——面试官一听就知道你做过真项目你不是不用 AI 了——你是从AI 替代你写代码进化到了你指导 AI 写正确的代码。什么能力是 AI 替代不了的你的慌其实在问一个更深的问题AI 降低了门槛那普通程序员的护城河到底是什么AI 能做AI 做不了写一个 CRUD 模块判断这个模块应该放在用户服务还是订单服务里实现一个排序函数判断这个排序在大数据量下是否合理生成单元测试判断该测哪些边界条件空值并发超大输入修一个 bug预判修复这个 bug 会不会引出另一个 bug按 API 文档生成调用代码在三个 API 方案之间做技术选型写 SQL 查询判断这个查询在 100 万条数据下还能不能用右边那一列有一个共同特征需要判断力。判断力 理解 经验 对项目的全局认识。它不是从写 CRUD 中积累的——是从理解为什么这么写、改了会怎样中积累的。关于工具选择你说公司用 Trae、Cursor。这两个工具帮你写代码但不帮你理解项目结构。作为参与 wescode 开发的人客观说几个差异场景Trae / Cursorwescode写代码✅ 足够✅ 足够这个函数被谁调用了❌ 需要手动搜✅ CKG 调用图自动显示这段代码违反了项目哪条规矩❌ 你自己发现✅ CSE 自动检测 提醒改完影响了哪些文件❌ 你自己排查✅ CKG 影响面分析月费Cursor Pro ¥145/月 / Trae 免费BYOK 约 ¥8-15/月但说实话——实习期间工具差异不是核心。核心是上面说的学习方式。如果你只有 Trae免费完全可以实践 30 分钟规则——手动读代码、手动搜调用方、手动写笔记。工具只是让这个过程更快但过程本身才是你学东西的地方。延伸阅读AI 编程工具已经三代了你还在用第一代你的慌恰好是你最大的优势大部分实习生用 AI 做完任务、交了差、心安理得走了——他们才是真正应该慌的人。你意识到了快速交付和真正学到之间的鸿沟。这种自觉在初级工程师里非常稀缺。不要少用 AI——那会拖团队进度。在 AI 帮你省下的时间里做 AI 不会帮你做的事。30 分钟。每个任务 30 分钟。半年后你会发现别人在问AI 会不会取代我而你已经变成了那个指导 AI 写正确代码的人。
返回列表