1. 为什么“AI副业”这条路对工程师来说是个坑
打开任何一个内容平台,搜“AI副业”,你能看到的关键词组合基本逃不出这几类:AI绘画接单、AI写文案带货、AI数字人直播、AI一键生成短视频。这些内容的共同点是——门槛看起来极低,收益被无限放大,而实际执行起来的隐性成本几乎没人跟你讲清楚。
我身边有不少做开发的朋友,去年到今年陆续被这类内容吸引,花了几千块买课、买工具会员、买所谓的“接单渠道”,最后真正跑通闭环的,一个都没有。原因不复杂:这些副业的核心竞争力不在技术,而在流量运营和销售转化。一个后端工程师去跟专业做电商投放的人抢AI绘画的订单,本质上是用自己的短板去拼别人的长板。
那工程师真正的优势在哪里?在代码。更准确地说,在用AI来写代码、改代码、理解代码这件事上。这就是我为什么一直跟周围人说:别跟风去做AI副业,工程师最该学的是AI Coding。
AI Coding 这个词,直译过来就是“用AI辅助编程”。但它涵盖的范围比大多数人想象的要宽得多。它不只是“让AI帮你补全一行代码”,而是包括:用AI Agent自主完成模块级开发任务、用AI做代码审查和重构、用AI把自然语言需求转成可运行的项目骨架、用AI辅助排查线上问题、用AI生成测试用例和测试数据。这些能力,直接对应的是工程师日常工作中最高频、最耗时的环节。
你不需要额外去找客户,你的“客户”就是你自己的项目。你不需要学投放、学话术、学剪辑,你只需要把现有的开发流程重新梳理一遍,把AI嵌入进去。投入产出比完全不一样。
这篇文章我会从实际操作的层面,把AI Coding的完整落地路径拆开讲。包括工具选型、提示词设计、Agent协作模式、常见坑和排查方法。适合有一定编程基础、想真正把AI用起来的工程师,也适合刚入行不久、想建立正确AI编程认知的新人。
2. AI Coding的核心思路与工具选型逻辑
2.1 先搞清楚:AI Coding到底在解决什么问题
很多工程师对AI编程的理解停留在“代码补全”层面,觉得就是个高级版的IDE自动提示。这个认知偏差会导致你完全低估它的价值。
我自己的体会是,AI Coding真正解决的是三类问题:
第一类是“重复性编码劳动”。比如写CRUD接口、写数据转换函数、写单元测试模板、写配置文件。这些代码逻辑简单但量大,手写浪费时间,AI生成准确率很高。
第二类是“跨领域知识缺口”。比如你是个后端工程师,突然需要写一段前端动画;或者你写Python很熟,但项目需要你改一段Rust代码。AI可以在你不熟悉的领域快速给你一个可用的起点。
第三类是“代码理解与维护成本”。接手一个老项目,几万行代码没有文档,这时候用AI去分析调用链、生成架构说明、定位某个bug的可能位置,效率比人工翻代码高一个数量级。
这三类问题覆盖了工程师日常工作中相当大比例的时间消耗。把这三块用AI优化掉,你的有效产出至少能提升百分之三十到五十。这个数字不是拍脑袋来的,是我自己记录了两周工作日志后对比出来的。
2.2 工具选型:不要追新,要追“顺手”
市面上AI编程工具多到眼花缭乱。我按使用场景把它们分成几类,你对照自己的需求选就行。
| 工具类型 | 代表工具 | 适合场景 | 我的使用频率 |
|---|---|---|---|
| IDE内置补全 | 各类主流IDE的AI插件 | 日常编码、行级/函数级补全 | 每天 |
| 对话式编程助手 | 网页版或桌面版AI对话工具 | 方案讨论、代码解释、调试思路 | 每天 |
| 命令行Agent | 终端中运行的AI编程代理 | 批量文件操作、项目级任务 | 每周数次 |
| 代码审查工具 | 集成到Git流程的AI审查 | PR审查、代码规范检查 | 每周数次 |
| 测试生成工具 | 专门的AI测试用例生成 | 单元测试、边界用例 | 每周数次 |
选工具的核心原则就一条:它能不能嵌入你现有的工作流,而不是让你去适应它。我试过一些功能很炫但需要单独打开一个复杂界面的工具,用了两天就放弃了。反而是那些直接在终端里、在IDE侧边栏里、在Git提交时自动触发的工具,我一直在用。
具体到工具名称,我不做硬性推荐,因为这类工具迭代太快,今天好用的明天可能就变了。但选型逻辑是稳定的:优先选支持你主力编程语言的、优先选能读取你整个项目上下文的、优先选响应速度快的。响应速度这一点很多人忽略,但实际上如果每次补全要等三秒以上,你的编码节奏就被打断了,用几天你就会关掉它。
2.3 一个容易被忽略的选型维度:上下文窗口
这是我想重点讲的一个点。AI编程工具的能力上限,很大程度上取决于它能“看到”多少上下文。
举个例子:你让AI帮你改一个函数,如果它只能看到这个函数本身,它改出来的代码可能跟项目其他部分的风格不一致,或者调用了不存在的工具函数。但如果它能读取整个文件、甚至整个项目的目录结构和关键模块,它给出的修改建议就靠谱得多。
所以你在选工具的时候,要关注它支持多大的上下文窗口,以及它是怎么获取上下文的——是只读当前文件,还是能索引整个项目。后者明显更强,但通常也更贵或者更慢。我的建议是:日常补全用轻量级的,项目级重构用重量级的,分开使用,不要指望一个工具解决所有问题。
3. 提示词设计:AI Coding中最被低估的技能
3.1 为什么你的AI编程效果不好
我见过太多工程师用AI编程的方式是这样的:打开对话框,输入“帮我写一个登录功能”,然后抱怨AI生成的代码不能用。
问题出在提示词上。AI编程的提示词质量,直接决定了输出代码的可用性。你给的信息越模糊,AI就越只能靠猜,猜出来的东西自然跟你的实际需求有偏差。
一个好的AI编程提示词,应该包含以下几个要素:
- 技术栈约束:用什么语言、什么框架、什么版本
- 输入输出定义:函数的参数类型、返回值结构
- 业务逻辑描述:这个功能具体要做什么,边界条件是什么
- 代码风格要求:命名规范、注释语言、错误处理方式
- 参考示例:如果有类似的已有代码,贴给AI看
我实测下来,加上这些约束之后,AI生成代码的一次通过率能从大概三成提升到七成以上。这个提升幅度非常可观。
3.2 一个实际案例:从模糊需求到可运行代码
假设你需要一个“从订单列表里筛选出最近七天未发货订单”的函数。
差的提示词:
帮我写一个筛选未发货订单的函数。
AI可能会给你一个不知道用什么数据结构、不知道订单对象长什么样、不知道“未发货”怎么判断的函数。
好的提示词:
用Python写一个函数,输入是一个订单字典的列表,每个订单包含字段:order_id(字符串)、status(字符串,可能的值有pending、shipped、delivered、cancelled)、created_at(ISO格式日期字符串)。函数返回最近七天内创建且status为pending的订单列表。使用datetime模块处理日期,不要用第三方库。函数名用filter_recent_pending_orders,加上类型注解和简要docstring。
这个提示词给出去,AI生成的代码基本可以直接用。差别就在于你有没有花那两分钟把需求写清楚。
3.3 进阶技巧:用“角色设定”提升代码质量
还有一个我常用的技巧,是在提示词开头给AI设定一个角色。比如:
你是一个有十年经验的Python后端工程师,注重代码可读性和边界条件处理。请帮我实现以下功能……
这个角色设定不是玄学。它实际上是在引导AI调用训练数据中更高质量的代码模式。我对比过,加了角色设定的输出,在错误处理、类型注解、注释质量上确实更好。
但要注意,角色设定要具体,不要说“你是一个编程专家”这种空话。说清楚领域、年限、关注点,效果才明显。
4. Agent协作模式:从“补全”到“自主完成”
4.1 什么是AI Coding Agent
普通的AI编程助手是你问一句它答一句,你让它改一行它改一行。而Agent模式下的AI编程,是你给它一个任务目标,它自己规划步骤、自己读取文件、自己执行修改、自己验证结果。
举个例子:你告诉Agent“把项目里所有用requests库发HTTP请求的地方改成用httpx,并确保异步接口正确使用await”。Agent会自己去搜索项目里所有相关文件,逐个修改,然后跑一遍测试看有没有问题。
这个能力在2024年下半年开始变得真正可用。我实际用下来,对于范围明确、验证方式清晰的任务,Agent的完成度已经相当高了。
4.2 Agent协作的三种模式
根据我的使用经验,Agent协作可以分为三种模式,复杂度递增:
模式一:单Agent单任务。一个Agent负责一个明确的小任务,比如“给这个模块的所有公开函数加上类型注解”。适合刚上手的时候练习。
模式二:单Agent多轮迭代。一个Agent负责一个较大的任务,但需要你分多轮给它反馈。比如“实现一个用户认证模块”,第一轮它生成骨架,你看完说“密码加密用bcrypt而不是md5”,第二轮它修改,你再提意见,直到满意。
模式三:多Agent分工协作。一个Agent负责写代码,一个Agent负责写测试,一个Agent负责审查。这种模式我目前还在探索阶段,效果不稳定,但方向是对的。
对于大多数工程师来说,我建议从模式一开始,熟练之后再尝试模式二。模式三目前更适合作为实验,不要直接用在生产项目上。
4.3 Agent使用的关键:验证闭环
Agent最大的风险是它可能“自信地做错事”。它改了一堆文件,跑了一下没报错,就告诉你完成了。但实际上可能逻辑改错了,只是恰好没触发测试用例。
所以使用Agent的时候,你必须给它一个明确的验证方式。比如:
- 改完之后必须跑通指定的测试命令
- 改完之后必须通过类型检查
- 改完之后必须满足某个lint规则
没有验证闭环的Agent任务,你后续的审查成本可能比你自己写还高。
5. 实操流程:把AI Coding嵌入日常开发
5.1 日常编码环节的AI介入点
我把一天的工作拆成几个阶段,分别说明AI怎么介入:
阶段一:需求理解与方案设计。拿到一个需求,先跟AI对话,让它帮你列出实现方案、可能的技术选型、潜在的风险点。这一步AI的角色是“技术顾问”,帮你拓宽思路。
阶段二:代码骨架生成。方案确定后,让AI生成项目结构、主要模块的接口定义、数据模型。这一步AI的角色是“脚手架工人”,帮你省去大量样板代码的时间。
阶段三:具体函数实现。在IDE里写代码时,用AI补全和对话式助手交替进行。简单的逻辑用补全,复杂的逻辑用对话描述清楚再生成。
阶段四:测试用例生成。函数写完后,让AI根据函数签名和逻辑生成单元测试,包括正常用例和边界用例。这一步能帮你发现不少自己没想到的情况。
阶段五:代码审查。提交PR之前,用AI审查工具过一遍,检查命名规范、潜在bug、性能问题。AI审查不能替代人工审查,但能帮你过滤掉大量低级问题。
5.2 一个完整的实操记录
我拿一个真实的小任务来演示:给一个已有的Flask项目添加“用户头像上传”功能。
第一步,方案讨论。我跟AI说:项目是Flask加SQLAlchemy,现在要加头像上传,图片存本地磁盘,数据库只存路径。问它有什么建议。AI给出了几个注意点:文件类型校验、文件大小限制、文件名防冲突、旧头像清理。这些点我自己想可能也会想到,但AI帮我确认了一遍,省了查资料的时间。
第二步,生成代码。我把现有的User模型代码贴给AI,让它生成对应的字段修改、上传接口、文件校验函数。提示词里明确了用Pillow做图片格式校验、用uuid做文件名、限制2MB大小。AI生成的代码我改了大概两成,主要是错误处理的细节。
第三步,生成测试。让AI根据上传接口生成测试用例,包括:正常上传、超大文件、非图片文件、未登录上传。四个用例里有一个AI写错了mock方式,我手动修正。
第四步,审查。用AI审查工具过了一遍,它指出文件删除逻辑没有处理文件不存在的情况。这个确实是我漏掉的,补上了。
整个任务从开始到完成大概四十分钟,其中AI承担了大概六成的工作量。如果纯手写,我估计要一个半小时左右。
5.3 参数选择与配置要点
在配置AI编程工具的时候,有几个参数值得注意:
温度参数:代码生成建议用较低的温度(0.1到0.3),保证输出的确定性。温度太高,AI会“发挥创意”,生成的代码可能偏离你的要求。
最大输出长度:根据任务复杂度调整。生成单个函数,512到1024个token通常够用。生成整个模块,需要调到4096以上。
上下文包含范围:如果工具支持,尽量让它包含当前文件、相关文件、项目配置文件。上下文越完整,生成质量越高。
自动执行权限:Agent类工具通常有“自动执行”选项。我的建议是,在非生产项目上可以开启,生产项目上一定要关闭,每一步修改都要你确认。
6. 常见问题与排查技巧实录
6.1 AI生成的代码跑不通怎么办
这是最高频的问题。排查思路按以下顺序来:
第一步,看错误信息。把完整的报错信息贴回给AI,让它自己分析。大部分情况下它能给出修正方案。
第二步,检查依赖和版本。AI的训练数据有截止日期,它可能用了旧版本的API。确认你项目里的库版本,如果版本不匹配,在提示词里明确版本号让它重新生成。
第三步,缩小范围。如果AI改了好几处代码导致跑不通,让它只改一处,跑通了再改下一处。不要一次性接受大范围修改。
第四步,自己读一遍代码。有时候AI会犯一些很基础的错误,比如变量名拼错、缩进不对、漏了import。这些肉眼扫一遍就能发现。
6.2 AI总是生成过时的写法
这个问题很常见。比如你用的是Python 3.12,但AI给你生成了Python 3.6风格的代码。
解决办法是在提示词里明确指定版本,并且贴一段你项目里已有的、风格正确的代码作为参考。AI会模仿你给的示例风格。
另外,如果你用的工具支持项目级上下文索引,确保它索引了你项目里最新的代码。有些工具默认只读当前打开的文件,你需要手动开启项目索引。
6.3 Agent改坏了代码怎么回滚
这是使用Agent时最需要防范的风险。我的做法是:
- 在执行Agent任务之前,确保所有代码已经提交到Git
- Agent执行过程中,每完成一个步骤就提交一次
- 如果Agent改坏了,直接回滚到上一个提交
有些Agent工具自带“撤销”功能,但不要完全依赖它。Git是你最可靠的保险。
6.4 常见问题速查表
| 问题现象 | 可能原因 | 解决方向 |
|---|---|---|
| 生成的代码缺少import | 上下文不完整 | 贴出文件头部或开启项目索引 |
| 用了不存在的库函数 | 训练数据过时或幻觉 | 指定库版本,要求只用标准库 |
| 代码风格与项目不一致 | 缺少风格参考 | 贴一段项目已有代码作为示例 |
| Agent修改后测试失败 | 修改范围过大 | 缩小任务粒度,分步执行 |
| 补全响应慢 | 上下文太大或网络问题 | 减小上下文范围,检查网络 |
| 生成的测试用例覆盖不全 | 提示词未说明边界条件 | 明确列出需要覆盖的场景 |
6.5 几个我踩过的坑
坑一:过度信任AI的SQL语句。AI生成的SQL有时候会有性能问题,比如在循环里查数据库、缺少索引提示。生产环境的SQL一定要自己审查执行计划。
坑二:让AI处理敏感数据。不要把包含真实用户数据、密钥、内部地址的代码贴给AI。用脱敏后的示例代替。
坑三:忽略AI的“自信错误”。AI有时候会用非常肯定的语气给出错误答案。对于关键逻辑,永远自己验证一遍。
坑四:在AI生成代码上直接叠加修改。AI生成的代码如果结构不合理,不要在上面修修补补,让它重新生成一个干净版本可能更快。
7. 从AI Coding到AI测试开发:能力延伸
7.1 测试环节的AI介入
写测试是很多工程师不喜欢但又必须做的事。AI在这个环节的帮助非常直接。
我现在的习惯是:每写完一个函数,立刻让AI生成对应的单元测试。提示词里会说明用哪个测试框架、需要覆盖哪些边界条件、mock哪些外部依赖。生成的测试我再补充一些业务特定的用例。
对于集成测试和端到端测试,AI也能帮上忙,但需要更详细的场景描述。比如“模拟用户从登录到下单的完整流程,包括库存不足时的回滚”,这种描述越具体,AI生成的测试脚本越可用。
7.2 AI辅助排查线上问题
线上出问题时,时间压力很大。AI可以帮你快速分析日志、定位可能的代码位置。
我的做法是:把报错堆栈和相关代码片段贴给AI,问它“最可能的原因是什么,按可能性排序”。AI给出的排序不一定准,但通常能帮你排除掉一些明显不可能的方向,缩小排查范围。
另外,对于不熟悉的错误码或异常类型,直接问AI比搜索引擎快得多。它会给你解释这个错误的含义、常见触发场景、以及修复方向。
7.3 建立自己的AI编程工作流
工具会变,但工作流是稳定的。我建议你花点时间梳理自己的AI编程工作流,把它固化下来。比如:
- 什么任务用补全,什么任务用对话,什么任务用Agent
- 每个环节的提示词模板是什么
- 验证和审查的检查点在哪里
- 出问题时的回滚流程是什么
把这个工作流写下来,形成自己的操作手册。这样不管工具怎么换,你的效率提升是持续的。
8. 关于AI Coding学习路径的个人建议
如果你刚开始接触AI Coding,不要一上来就追求“全自动”。先从最简单的代码补全用起,感受一下AI能帮你省多少时间。然后逐步尝试对话式编程,学会写清晰的提示词。再往后尝试Agent模式,从低风险的任务开始。
学习过程中,最重要的不是记住某个工具怎么用,而是培养一种“跟AI协作”的思维习惯。你要学会把任务拆解成AI能理解的粒度,学会判断AI的输出质量,学会在AI出错时快速修正。
我自己的经验是,前两周会有些不适应,总觉得AI不如自己写得快。但坚持用下来,大概一个月后,你会发现自己已经回不去了。不是因为你变懒了,而是因为你的时间被释放出来,可以花在更有价值的事情上——架构设计、性能优化、业务理解,这些AI暂时还替代不了的部分。
最后分享一个我一直在用的方法:每周花半小时回顾一下这周用AI编程的情况,哪些任务AI帮了大忙,哪些任务AI反而添乱了,然后调整下周的使用策略。这个习惯让我对AI编程的理解一直在加深,而不是停留在“会用某个工具”的层面。