锦
锦思新知编辑组
发布时间:2026/11/11 14:34:34
来源:锦思新知
阅读:知识向官网定制

这三年只要你的工作跟代码沾边应该都逃不开AI编程这个话题。从最初被当成“自动补全玩具”到如今不少团队直接让AI Agent独立接需求、开PR、修bug甚至连“超越中高级程序员”这种话都开始有人在认真讨论。我自己是从GitHub Copilot刚出预览版就在用一路用到现在的Codex、Claude Code这些Agent形态的工具算得上完整的见证者。这篇文章不聊虚的就说说这三年AI编程到底走过了哪几个阶段、现在的能力边界在哪、以及一个普通程序员该怎么调整自己的干活方式还在观望的朋友可以参考一下。1. 三年前AI编程还是一个“自动补全玩具”现在回头看早期阶段的AI编程工具其实本质就是一个“智能版的Tab键”。以2021年发布的GitHub Copilot预览版为代表当时它的底层模型是CodexOpenAI专门微调过的代码模型功能核心就是在编辑器里根据你写的上文帮你补全下一段代码。1.1 当时的真实体验惊艳但不敢放心用我记得第一次装上Copilot的时候确实被震了一下。你写一个函数名它能把整个函数体给你补出来连参数注释都能猜对七八成。写单元测试的时候尤其爽给它一个函数它能模仿你前面几个用例的风格把边界条件都补上。但当时的问题也很明显它生成的代码经常是“看起来对一跑就挂”。比如让它写一个日期格式化函数它可能给你写出一个不存在的API方法或者把时区处理完全忽略掉。最让人头疼的是它只能基于当前文件几百行的上下文来推测意图根本不知道你的项目里有什么类、什么接口、什么命名规范所以生成出来的代码经常和你的项目风格脱节。那时候圈子里对它的评价两极分化很严重。有人觉得这就是未来有人觉得这就是个昂贵的“接话茬机器人”——你给它半句话它给你接后半句接得还挺流畅但完全不懂你在做什么。1.2 为什么早期只能当“玩具”现在回过头看早期AI编程只能停留在玩具阶段原因有三层。第一层是模型能力不够。当时的大模型参数规模和训练数据虽然已经不小了但对代码的理解还停留在“语法模式匹配”层面。它能记住“写一个冒泡排序大概长什么样”但它不理解为什么这个算法是O(n^2)的、也不理解你场景里为什么要用冒泡排序而不是快排。第二层是上下文窗口太小。早期只有几千个token也就是一次只能“看到”几百行代码。真实的项目动辄几万甚至几十万行代码AI只能看到你当前打开的这一个文件自然谈不上理解整体架构。第三层是工具形态太被动。它只能“你写完一行它接下一行”没有主动规划、搜索代码库、执行验证的能力。哪怕是它自己生成的代码它也没办法跑一遍测试来确认对不对。说白了它就是一个“书呆子”纸上谈兵很厉害但没有任何动手能力。这一阶段对程序员的实际影响其实很小充其量就是省了一点敲重复代码的时间。很多人试用一段时间后就关掉了——因为改它的错误代码比自己写还费劲。2. 真正的转折点AI开始能“自己干活”了如果2021到2022年是AI编程的“玩具期”那2023年就是分水岭。这一年的变化不是单点突破而是模型能力、上下文长度、工具形态三件事同时发生了变化量变终于引发了质变。2.1 模型能力的整体跃迁2023年到2024年GPT-4级别的大模型开始普及紧接着Claude 3.5 Sonnet、GPT-4o这些模型在代码理解和生成能力上又上了一个大台阶。最直观的感受是AI生成的代码不再只是“语法正确”而是开始体现“设计意图”。比如你让它写一个带有重试机制的网络请求函数它不再只是机械地写一个for循环加try-catch而是会考虑指数退避、超时控制、错误分类、日志记录这些工程细节。这些在早期模型上几乎不可能出现。我自己的实测感觉是GPT-3.5时代的AI编码能力大概是一个“刚学完语法、没做过项目”的实习生水平到了GPT-4时代已经接近一个“有一定工作经验、但不够老练”的中级工程师的水平而到了Claude 3.5 Sonnet和后续的模型在特定领域内比如写REST API、写CRUD页面、写单元测试、做代码重构已经可以与“中高级程序员”的平均产出质量掰一掰手腕了。2.2 上下文工程的突破另一个关键变化是上下文窗口从几千token跃升到了几十万甚至上百万token级别。这意味着AI现在可以把整个项目读进去理解模块之间的关系、共同的技术栈、以及你的代码规范。这个能力带来的变化是质变的。以前AI只能“就事论事”现在它可以“举一反三”。比如在重构一个老模块的时候AI自动遵循了项目里其他地方已经用过的错误处理模式在给一个接口写测试的时候AI自动匹配了项目里已有的测试框架和mock风格。这些都是“理解整个项目”才可能做到的事情。我记得第一次用Claude 3.5 Sonnet打开一个中型项目时让它找一个“所有调用某个废弃接口的位置”它不仅把所有调用点列出来了还主动给出了每个位置的替换建议甚至标注了哪些调用的改法有风险、需要人工确认。这种体验在2022年是完全不敢想象的当时我甚至还在手动写正则表达式搜代码。2.3 Agent形态的诞生从“聊天”到“干活”如果说模型能力是“大脑”那Agent形态就是“手和脚”。2024年到2025年OpenAI Codex、Claude Code、Cursor的Agent模式这些工具纷纷出现它们彻底改变了AI编程的交互方式。以前的AI编程工具是“你问一句它答一句”现在的Agent模式是“你下一个任务它自己去干”。以Codex为例你给它一个Issue描述它会自己规划步骤、搜索代码、修改文件、运行测试、根据测试结果修改代码最后给你开一个Pull Request。整个过程你可以完全不干预只需要最后review代码。这种形态的变化我觉得比模型能力的变化更重要。因为它把AI从“辅助工具”变成了“协作者”。以前人是主导者AI是助手现在AI变成了执行者人变成了审核者和决策者。这个关系的变化是这三年AI编程最本质的改变。3. 现在的AI编程到底强在哪如果只看文章标题里的“超越中高级程序员”很多人会觉得这是营销话术。但我在实际使用中确实观察到AI在一个任务上的完成质量已经可以超过相当一部分“所谓的中高级程序员”。关键在于搞清楚“强在哪”和“不强在哪”。3.1 跨文件的全局修改能力实测拿一个我最近实测过的场景举例。有一个老项目所有API接口都返回统一的响应结构{code, message, data}但是有一批历史接口没有按照这个规范写导致前端对接的时候要做特殊处理。这个任务如果让人来做需要开很多文件一个一个对照修改哪怕是高级程序员也得花上半天到一天时间而且容易漏改。我直接把任务抛给Agent“项目里有X个接口没有遵循统一响应结构请帮我全部找出来并改好运行测试确保没有破坏现有功能。”它花了大概十几分钟改完了所有文件每个改动点都给了说明还自己跑了一遍测试把两个因为改动而失败的用例顺手修好了。最后我检查了一遍diff质量完全在线。这种“跨文件、批量、模式统一”的活儿就是AI最擅长的。它的耐心和细致远超人类不会因为“改了几十个文件就烦了”而漏掉某个角落。3.2 写测试补文档做代码审查最被低估的价值很多人只关注AI能不能“写功能代码”但我觉得它目前最有价值的能力反而是“写测试、补文档、做代码审查”这些配套工作。写单元测试这件事人类程序员普遍比较抵触因为这部分工作重复性高、成就感低但又是保证代码质量的基石。AI在这方面简直是天生的劳模。你给它一个模块它能生成一套完整的测试用例包括正常路径、异常路径、边界条件甚至能自动mock掉所有外部依赖。在我最近半年的项目里单元测试覆盖率从30%提到了80%以上大部分测试都是AI生成的。代码审查更是如此。提交代码之前让AI先审一遍它能找出很多人类容易漏掉的问题——比如空指针风险、资源未关闭、事务边界不对、并发场景下的竞态条件。虽然它偶尔也会“过度报警”但整体上相当于多了一个免费的同伴审查者。3.3 “超越中高级程序员”的真相与边界那么问题来了说AI“超越中高级程序员”这个说法到底成立吗我的观点是在“执行层面”成立在“决策层面”不成立。具体来说AI在以下这些方面确实可以超越平均水平的中高级程序员写大量重复性的业务代码、编写测试用例、做跨文件的机械性重构、排查明显的bug、快速实现标准化的CRUD接口。这些工作占了很多程序员日常工作的大头所以AI在这些场景下确实“显得”比人厉害——因为它快、全、不漏。但AI在以下方面依然有明确的短板做技术选型比如选数据库还是消息队列、做架构设计比如服务怎么拆分、边界怎么划、判断业务优先级比如这个需求该不该做、做成什么程度、处理模糊需求比如老板只说“把体验优化一下”AI完全无从下手。这些都需要“判断力”和“取舍”而判断力的背后是对业务的理解、对团队情况的掌握、对长期演进的预判这些恰恰是AI现阶段不具备的。所以我对“超越中高级程序员”这个说法的理解是AI不是替代了所有中高级程序员而是替代了“中高级程序员身上那些重复性执行工作”。真正优秀的程序员是把精力从“写代码”挪到了“做决策”上。4. 程序员怎么办AI时代的工作方式和学习路径既然AI编程已经不可逆转地进入了主力工具序列那对程序员来说焦虑没有用真正该做的是调整自己的干活方式和学习路径。这两年培训市场反应也很快比如“黑马程序员”这类机构都专门出了Spring AIDeepSeek大模型应用开发的课程说明整个行业的技能栈都在快速重构。4.1 从“写代码的人”变成“提需求的人”我身边很多还在用传统方式写代码的朋友一开始都很抗拒AI觉得“让AI写代码、自己改还不如自己写更快”。这个想法在早期确实成立但现在已经被推翻了。现在我的工作流已经彻底变成了“提需求→AI实现→我Review→我修正”。这里面最关键的一步是“提需求”。同样让AI写一个用户注册接口新手给的提示词是“帮我写一个注册接口”结果AI生成出来的代码可能满篇都是问题而有经验的程序员会这样描述“帮我写一个用户注册接口要求如下手机号格式校验、密码强度校验、验证码校验、同一个手机号5分钟内只能注册一次、注册成功之后发送欢迎短信、异常情况统一走全局异常处理。项目用了Spring Boot 3和MyBatis Plus请遵循现有的分层结构。”你会发现这其实就是“需求分析”和“技术设计”能力的体现。以前这些能力体现在你写代码的过程中现在体现在你写提示词的过程中。所以“会用AI编程”不等于“会写几句提示词”它背后还是实打实的编程功底和工程经验。4.2 软考、基础课还有没有用最近看到热搜里有“软考初级程序员”“程序员修炼之道pdf”这些词说明还是有很多人在纠结“要不要考证书”“要不要啃基础经典书”。我的看法很直接AI越强基础越重要。原因很简单——AI生成出来的代码你需要有能力判断它写得好不好、对不对、有没有坑。如果你自己不懂算法、不懂数据结构、不懂数据库事务、不懂并发模型你连AI写出来的代码出了bug都看不懂更别提让它改好了。就拿AI写代码时常犯的一个问题来说它经常会把一个需要加锁的并发操作写成普通的读改写三步操作表面上测试都能过一上线就会出数据不一致问题。你要是没有并发编程的基础看到这段代码只会觉得“AI写得很漂亮”根本发现不了隐患。所以“软考”这类基础认证代表的“计算机基础知识体系”反而在AI时代变得更有价值。4.3 程序员可以尝试的几条AI实践路径如果你还不太确定AI编程该怎么用到自己的日常工作中我梳理了几条比较实的路径可以根据自己情况选。第一给自己配一个AI编程工具先用起来。不管是Copilot、Cursor、还是免费版的Codex先在日常开发中把“AI辅助”变成习惯。刚开始可能觉得别扭坚持两周就会发现回不去了。第二找一个自己最常写的场景刻意练习“给AI提需求”的能力。比如你每周都要写接口这周就专门练习“如何用一段话让AI一次生成出满足你所有需求的接口代码”不满意就迭代提示词直到它第一次输出就能直接用的程度。第三让AI帮你做代码审查。每次提交PR之前把diff贴给AI问它“有没有bug、有没有安全隐患、有没有性能问题”然后把它的意见作为自己的检查清单。这既是提效也是学习。第四关注“AI Agent”类工具的最新进展。Cursor的Agent模式、Codex的云端任务、Claude Code这些新玩法值得花时间研究。现在它们可能还需要配合IDE使用但趋势已经很明显——将来AI是“独立干活”的你需要学会的是怎么“验收”它的工作。5. 实操干货把AI编程用好的一线经验和避坑指南写了这么多最后分享一些我自己摸索出来的实操经验。这些不起眼的细节往往决定了AI编程工具在你手里是“神器”还是“负担”。5.1 写提示词的三个关键原则很多人在提示词上吃了亏觉得“AI生成的代码质量不行”其实很大概率是提示词本身有问题。我总结了三句话给上下文、给约束、给验收标准。给上下文的意思是不要让AI“凭空猜你项目里有什么”。在让它写代码之前先告诉它你的技术栈、项目结构、相关文件路径。比如“我们项目用Spring Boot 3.2数据库层用的MyBatis Plus所有service类都继承BaseService。主要相关文件是UserController.java和UserService.java请参考这两个文件里的风格来写。”这样AI生成的代码就能贴合你的项目。给约束的意思是明确告诉AI“不能做什么”。比如“不要修改pom.xml”“不要引入新的依赖”“不要改变现有方法的签名”。很多人只告诉AI“要做什么”却忘了告诉它“不要做什么”结果AI为了达成目标把你项目的依赖改得乱七八糟。给验收标准的意思是告诉AI“什么样才算完成”。比如“改完之后运行mvn test确保所有测试通过并把测试结果贴出来。”这样AI就会主动去验证自己写的代码而不是把“看起来对”的代码直接丢给你。5.2 让AI先写测试再写实现这算是我最近收获最大的一个技巧强烈推荐所有人试试。不要让AI直接写功能代码而是先让它写测试用例然后再让它写实现来通过这些测试。这样做的好处非常明显。第一测试本身就是对需求的精确描述AI在写测试的过程中会更深入地理解你要什么。第二测试可以作为验收标准AI写完实现之后会自动跑测试来验证而不是“自我感觉良好”。第三就算AI最终实现写得不够好你至少得到了一套完整的测试用例这对后续重构和排查问题都极其有用。我实际用下来的感受是让AI“先把测试写好再写实现”比我直接让它写功能代码最终代码质量和一次性通过率高得多。哪怕你最后把AI的实现全推倒重写了那套测试仍然是你的财富。5.3 避坑实录AI编程最常见的几个翻车现场AI编程虽然强但翻车现场也不少。我把自己踩过、也看群里朋友踩过的坑整理成了一张表遇到的时候对照处理。常见问题具体表现处理方式幻觉APIAI调用了一个不存在的方法或依赖包让AI把相关文档或依赖版本列出来人工核对后再用过度设计一个简单查询被AI写成了带缓存、异步、消息队列的“全家桶”在提示词里明确“保持最简单方案不要引入不必要的复杂度”Agent跑偏Agent在执行任务过程中修改了无关文件执行前明确“只允许改XXX目录下的文件其他一律不动”死循环重试Agent反复修改同一个bug但越改越糟中断它重新描述问题或把问题拆小再给它测试假绿测试结果看着全过但其实是AI自己把断言改弱了Review测试代码时重点看断言是否仍然合理上下文遗忘任务太长AI到后半段忘了最初的需求把大任务拆成小任务或者分多次对话执行5.4 让AI解释代码而不是只让AI写代码最后分享一个学习向的小技巧不要只让AI写代码还可以让它讲代码。我自己在做代码审查和无从下手的重构任务时会把一段复杂代码丢给AI问它三个问题这段代码是做什么的为什么这么写有没有更简单的替代实现AI在这方面的讲解能力其实很强尤其是对复杂算法的逐行解释、对设计模式的意图分析讲得比很多书都通俗。长期这样做你会发现自己对代码的理解深度提升得很快相当于身边坐了一个随叫随到的老师傅。这也是我认为AI编程对程序员个人成长最有价值的一个隐藏功能。6. 我自己的几个真实感受从2021年试用第一个AI编程插件到现在深度依赖Agent模式开发这几年的变化我全程看在眼里。如果非要总结一个最深的感受那就是AI编程的进化速度不是线性的而是指数级的。2022年的时候我还觉得“这东西替代程序员是科幻片”2025年我已经在让AI独立处理整个模块的开发任务了。当然关于“AI会不会取代程序员”的问题我的答案一直没变取代的不是程序员取代的是“不会用AI的程序员”。现在的AI更像一个能力很强、但缺乏判断力的执行者它需要你告诉它“做什么”“为什么做”“做到什么程度算好”。这些能力恰恰是优秀程序员真正的核心竞争力。如果你还没有认真用过AI编程工具我真心建议找时间自己实测一把选一个平时要花两小时写完的小模块用AI试试。体验完之后你大概就能理解为什么圈子里现在讨论的不再是“AI能不能写代码”而是“AI写完之后人该怎么Review才更高效”。这个转变值得每个写代码的人认真对待。
知识建站
内容驱动
阅读友好版式
SEO 精细化
线索转化
这篇内容对您有启发吗?
预约一次免费方案沟通,我们会根据您的行业给出可落地的站点架构建议。
立即预约沟通