ARTICLE DETAIL

资讯详情

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

AI接管键盘后,程序员的核心能力该建在哪里?

AI接管键盘后,程序员的核心能力该建在哪里? 当 AI 接管了键盘程序员该把能力建在哪里这两年AI编程工具的发展速度说实话有点超出我的预期。从最早的代码补全到现在的AI Agent能独立完成一个完整功能模块变化快得让人觉得不真实。我身边有不少朋友开始焦虑既然AI都能写代码了程序员这个职业是不是在走向黄昏这个问题我也认真想过而且在实际工作中大量使用了AI辅助编程工具之后我反而有了一个更清晰的判断AI确实接管了键盘但它接管的只是键盘不是编程这件事本身。这篇文章我想从一个一线开发者的角度聊聊我对这个问题的完整思考。内容包括AI编程目前真实的能力边界、程序员真正需要建立的核心能力、以及一条具体可行的能力建设路线。不管你是刚入行的新人还是有几年经验的开发者应该都能从中找到一些参考价值。1. AI写代码的真实水平它能做什么不能做什么要讨论程序员的能力应该建在哪里首先得搞清楚AI编程到底处在什么水平。我过去一年多时间重度使用了多款AI编程工具包括GitHub Copilot、Cursor、通义灵码以及一些基于大模型的Agent类工具这里说一些真实的使用感受。1.1 AI真正擅长的事情语义明确的代码生成AI最擅长的场景是那些需求描述清晰、边界明确、模式固定的代码生成任务。举几个我日常工作中几乎每天都在用的例子模板代码与样板代码创建DTO类、实体类、Maven/Gradle配置、Dockerfile、CI/CD流水线配置这些工作AI基本是一做一个准。单元测试生成给它一个类或方法让它生成覆盖正常路径和异常路径的测试用例通常能覆盖到我想测的80%以上场景。CRUD接口实现给定表结构、接口文档让AI生成Controller、Service、Mapper层的代码正确率已经相当高。正则表达式这类需要精确语法的东西对AI来说反而简单我基本已经不再自己写了。小型工具脚本比如Python批量处理文件、Shell脚本编写AI的效率远超手写。在座写过大量业务代码的朋友应该能感觉到这类工作大概占日常开发量的40%到60%。AI把这些活接过去之后确实释放了大量时间。我自己的体感是在启用AI辅助后一些纯粹编码的时间至少省掉了三分之一。1.2 AI暴露出来的短板需要业务判断力的任务但AI的短板同样明显至少在当前阶段有几个场景它表现得很吃力需求理解与场景判断。有一次我让AI为一个支付系统的状态流转写逻辑它写出了完整的代码但状态机的设计跟产品需求的实质完全不符——不是代码错了而是理解偏了。AI看到退款状态就套用常见的订单状态机规范但我们的业务场景里退款还涉及部分退款多次退款与库存回滚的关联这些隐含业务规则在产品文档里没有明说但程序员和业务方对齐过。架构决策与方案权衡。问AI这个模块该用消息队列还是RPC同步调用它能给出一个听起来头头是道的分析但最终的决策必须结合团队维护成本、未来三到六个月的迭代预期、以及现有基础设施情况综合判断。这些东西不在AI的训练数据里因为你的系统上下文从来没有被它真正理解过。跨系统联调与数据流转。AI生成单个函数的代码没问题但面对多个微服务之间的数据流转、事务一致性、幂等设计这类问题它只能给通用建议很难直接产出可用的落地方案。代码审查中的逻辑漏洞。AI能发现一些语法级、规范级的问题但业务逻辑上的隐蔽漏洞——比如并发情况下库存超卖、权限校验被绕过、状态并发更新丢失等——它往往看不出来。这些恰恰是生产事故的主要来源。1.3 一个更接近真相的结论用一句话概括我的观察AI把从方案到代码的成本几乎降到了零但从业务到方案这一步它做得还很粗糙。前一步是体力活后一步才是编程真正的智力核心。程序员这个职业在过去几十年里有一大块时间花在了编码这个动作上。AI起来之后这个动作本身的价值在快速衰减。三年前熟练使用Spring Boot是一个有竞争力的技能现在新入行的同学用AI辅助两周就能上手。如果你把职业竞争力建立在我代码写得好、写的快上那确实会焦虑——因为这个壁垒正在以肉眼可见的速度塌掉。但如果把能力建立在更上游的需求分析、架构设计、质量保障上AI反而成了工具。2. 键盘之外真正值钱的能力我总结的四核模型围绕AI接管键盘后程序员该把能力建在哪里这个问题我给自己梳理了一个框架就叫四核能力模型吧抽象能力、判断能力、协作能力、业务理解能力。这四个能力有一个共同点——它们都不在键盘上。2.1 抽象能力把问题边界画清楚抽象能力是程序员最核心的底层能力也是AI最难替代的部分。什么是抽象通俗地说就是把一团乱麻似的、非结构化的现实问题提炼成清晰的、可计算的逻辑模型的能力。举一个真实案例。之前我参与过一个供应链项目需求是从多个供应商系统同步订单数据然后做对账。业务方提需求的时候说的是把各家的订单拉下来对一下差异。这句话看着简单但落到系统设计上你需要逼自己回答一系列问题不同系统的订单号规则不一致怎么建立统一标识订单状态在不同系统里含义不同怎么映射对账的基准时间是什么——下单时间、支付时间还是发货时间差异如何分级——哪些影响结算哪些不影响数据量级有多大同步频率应该怎么设这些问题的答案构成了系统的技术边界和数据模型。AI可以帮你把已经定义清楚的对账逻辑写成代码但把模糊的需求变成明确的逻辑结构这件事它是做不了的——因为需求模糊的信息缺失部分存在于业务方和产品经理的脑子里甚至存在于他们尚未意识到的角落。如何刻意练习抽象能力我给的建议是拿到一个需求先不要急着写代码或让AI帮你写代码用纸笔画清楚数据流转图写清楚输入输出和异常分支。当你发现自己能一口气把一个需求的逻辑边界讲给别人听、对方不用追问就能懂的时候你的抽象能力就到位了。2.2 判断能力在海量选择中定边界AI能给你十个方案但你只能选一个上线。这个选择能力就是判断力。前几天我在排序一个设计方案的时遇到一个典型的场景一个队友让AI生成了Redis缓存更新策略的三种方案——Cache Aside、Read Through、Write Behind——以及各自的优缺点说明。方案列得很整齐看起来都说得通。但真正落地的判断必须结合我们的实际场景这个服务的写并发高不高、容忍多大的数据不一致窗口、缓存重建的成本是不是可接受。我们需要根据业务容忍度来定而不是根据技术潮流来定。判断力的另一个体现是不做什么。任何系统多一个环节就多一个故障点。AI倾向于把所有看似相关的东西都纳入方案因为它没有维护成本这个概念。一个有判断力的工程师会在方案评审时说这块上消息队列确实更保险但也引入了消息丢失、重复消费、顺序问题三个新复杂度。以目前的业务量定时任务就足够了。判断能力怎么练没有捷径只能靠见识足够多的真实案例、踩过足够多的坑。但有一条可以加速每次做完技术决策不管对错都记录下决策依据和最终结果形成自己的决策复盘笔记。半年之后你回头看会发现自己对很多问题的判断都有了质的提升。2.3 协作能力代码之外的人与人连接AI接管的只是人机交互式的编码过程而真实的软件开发中大部分时间花在了人与人之间的协作上——对齐需求、评审方案、沟通进度、推进跨团队项目。这些AI完全替代不了。我见过很多技术很强的程序员在协作上是短板。需求理解偏差了不好意思问闷头做结果交付的东西完全不是业务方想要的。设计方案被质疑第一反应是防御而不是倾听导致好方案被情绪埋葬。代码被review打回觉得被冒犯而不是把review视为学习机会。AI时代协作能力的价值反而会被放大。因为当编码效率趋同人人都有AI工具、方案获取趋同AI能给所有人提供高水平的参考方案之后最大的差异化反而在推进事情的效率上。谁能更快地和业务方对齐真实需求谁能更好地协调跨团队资源谁能在设计评审中说服别人、吸收别人的合理意见谁的交付结果就更好。2.4 业务理解能力从写代码的人变为用技术解决问题的人这一条可能是我最近最有感触的。AI真正给程序员带来的机会是把我们从编码的琐碎里解放出来让我们有精力从写代码的人进化成用技术解决业务问题的人。业务理解能力指的是你能不能比业务方更早地发现他们描述的需求背后的真实问题你能不能提出这个功能根本不需要做改用另一个流程可以拿到同样的结果的建议你能不能理解成本、效率、风险的权衡而不是只盯着技术我在一个物流项目上遇到过一件事。业务方提需求要做一套复杂的路径规划功能预估开发量三周。但我们团队里一个比较资深的同事深入了解之后发现业务方的真实诉求是降低单票运输成本。路径规划只是一个可能的解决手段但不是唯一手段。后来议讨论后用了一个调整计费规则加改进揽收时间窗口的方案开发量只要三天效果甚至更好。这种能力就是业务理解能力。AI能做到的是帮你把路径规划算法的代码写好但它永远不会告诉你这个问题有更轻量的解法。程序员如果不接触业务、不关心业务方的真实指标就会被自己的工作量绑架。3. 把能力建起来一套现实可落地的成长路线说了半天能力应该建在哪里那具体该怎么建这里给出一套我认为在当前AI背景下更具可操作性的路线按优先级和成长顺序排列。3.1 阶段一利用AI完成重复劳动把省出来的时间用于深度工作这是最基础、也最容易忽视的一步。很多人的问题是AI工具也在用但省下来的时间又被填满了低级任务甚至花更多时间刷手机。因为AI效率高所以同样的时间完成的任务更多但成长没有发生。正确的操作是省下来的时间必须定向投入到深度学习和深度实践上。这段时间专门用来做这些事情读优秀开源项目的源码不是以跑通为目的而是逐行理解设计意图自己手写一个小的框架或工具不用AI纯手工完整走一遍从设计到落地的过程深入理解计算机核心知识数据结构与算法、操作系统原理、网络协议、数据库内核机制。这套操作的本质是用AI的产能换来对底层原理的投入。AI写出的一百个接口不如你纯手工写出的一个接口让你学得多。3.2 阶段二从让AI帮我写升级到审查AI写的东西当你的代码量积累到一定程度能力的较量就从能否实现变成了能否评判。AI写出来的代码不一定错但一定有妥协、有潜在的坑。能否准确评判考验的正是你在阶段一积累的功底。我现在的日常开发模式大概是这样用AI快速生成初版代码然后我会从头到尾做一次Review重点关注几个点边界情况AI生成的代码对正常路径覆盖得很好但null值、空集合、超时、并发冲突这些边界情况经常被忽视资源管理与异常处理连接有没有关、异常有没有吞、事务有没有失效这类问题在AI代码里出现频率很高耦合度AI倾向于在现有代码风格里随大流如果现有代码本身就是一堆耦合AI生成的代码往往会延续这种风格不会帮你做架构上的改进。我的经验是AI写的代码至少要经过与review同事代码同等力度的审查才能进主干。这不意味着AI写的质量差而是因为你没办法在生成的瞬间建立对代码的完整上下文审查过程本身就是在建立上下文。3.3 阶段三走出代码本身建立代码外的能力圈当你在编码本身的能力已经够用之后就应该主动探索代码之外的能力圈。这里的外不是说不写代码而是指能力半径的扩展往上游延伸学习产品知识、用户研究方法、数据分析思维让自己能从技术执行者变成方案设计者。产品怎么定义优先级、用户的数据行为揭示了什么、遗漏什么功能会导致大量客诉——这些感知是代码之外的。往下游延伸掌握线上监控、日志分析、故障排查、性能调优。代码上线之后才是真正考验的开始。运行系统这个能力AI目前是帮不了太多忙的。往广度延伸补全DevOps、安全、网络架构等领域的知识。很多程序员对于自己写的代码块的理解相当深入但一旦问及这个服务的网络拓扑是什么样的有哪些访问限制挂掉了怎么快速恢复常常茫然。这些知识的价值在AI时代不会衰减反而会因为基础设施复杂性提升而变得更加重要。3.4 一个更符合AI时代的项目复盘方法我给自己的项目复盘做了新规定不只是回顾迭代过程中完成的任务而是回顾四类清单——我的判断哪些被验证是对的哪些是错的为什么会有错判这个项目中AI工具解决了什么问题卡在了哪里下次可以怎么优化人机分工这个项目的核心业务指标是什么我的工作对提升指标做了什么实际贡献如果只做一件事来改进下次项目我会改变什么这套复盘框架帮我逐步把成长焦点从代码产出量转移到了决策质量和业务贡献上。长期执行下来对职业发展的推动力度远比多写几万行代码要大。4. AI时代程序员的新角色从执行者到编辑者、教练和架构师我最近越来越觉得程序员这个称呼未来会变得不够准确。不是职位消失而是角色发生了变化。AI接管键盘后开发者会分化成几种新的角色每个人都需要找到自己的位置。4.1 代码编辑者给AI指引方向的人这类角色日常工作重点不再是逐行手写代码而是给AI提供高质量的提示词、维护工程上下文、校准AI的输出方向。就像一个导演而不是演员。要做好这个角色一个关键能力是提示词工程在代码领域的落地——这跟简单的给AI发命令完全是两回事。一个好的代码提示词要包含需求描述、约束条件、参考代码风格、输入输出示例、禁忌项。例如请在module_a中新增一个接口从其他两个服务并行拉取数据按规则合并后返回。 要求 1. 使用WebClient进行异步调用不要用RestTemplate 2. 数据量不超过500条不引入缓存框架 3. 异常时返回友好错误信息并在日志中记录调用链id 4. 参考现有controller的返回值格式不要脱离当前工程规范这样结构的提示词生成的代码与帮我写一个接口生成的结果质量差距是很大的。编辑者的价值在于让AI的输出从能跑升级为符合工程规范、贴合当前系统上下文。4.2 系统架构师与质量守门人技术方向的掌舵者当代码产出速度趋同之后系统能不能稳、能不能扩展、能不能低成本维护就成为区分一个团队和另一个团队的关键。而这背后依赖的是架构设计能力和工程质量体系的建设能力。架构能力的核心在于识别影响系统的核心变量。比如一个系统未来三年的数据量会增长到什么程度团队规模会扩大还是收缩业务的哪些部分是最可能变化的把这些变量识别出来并据此做技术选型和模块拆分才能保证系统的长期健康。质量守门人角色的关键工具是代码审查和自动化测试体系。我的建议是在AI辅助成为常态之后代码审查的权重应该更高而不是更低。团队里必须有人对什么代码可以进主干这件事有最终判断权和高度责任感。自动化测试的覆盖面和语义准确性也需要人来把握——AI生成的测试经常出现断言无效、覆盖度虚假的情况。4.3 AI Agent的驾驭者从工具使用者到工作流设计者当前AI编程正在从对话生成代码走向Agent自主执行多步骤任务。这类Agent可以读取仓库代码、执行命令、运行测试、根据结果自主调整策略。我体验了一些以Agent为核心的开发工具在完成跨多文件的修改任务时它们已经开始展现较高的连续任务执行能力。应对这个变化程序员需要掌握的是工作流拆解的能力。Agent再聪明也需要你把大目标拆成清晰的子任务序列并为每个子任务定义明确的验收标准。就像一个项目经理管理一个执行力超强的虚拟团队——目标拆解越清晰最终产出质量越高。我目前在实践的一个工作流是这样的先让Agent分析需求文档并生成设计方案我审查方案→ 让Agent基于已确认方案分步骤实现代码每步审查→ 让Agent自写测试并跑通本地测试套件 → 我再做一轮完整的Code Review用于最终把关。这套流程可以把跨三个模块的功能开发时间压缩40%以上同时保证质量不下滑。5. 摆脱焦虑心态重新定义程序员的职业锚点最后聊聊心态。因为AI技术的迭代速度太快很多程序员处于一种持续焦虑的状态担心三年后被替代。我完全理解这种焦虑但它可能源于一个前提错误——认为程序员的职业价值就建立在写代码上。我想借这次机会把这个锚点重新定义一下。程序员真正的职业锚点应该是用计算思维解决实际业务问题的能力。这句话的重心不在计算思维也不在业务问题而在于解决两个字。只要你具备这个能力具体用什么语言、用什么框架、是不是自己手写代码、甚至代码是AI写的还是人写的都不重要。你会一直有用因为如何用可行的技术手段达成业务目标这件事永远存在。从另一个角度看AI时代反而是程序员——尤其是那些有丰富实战经验的程序员——历史性的机遇。为什么因为AI大幅降低了实现的门槛一个能把自己的业务洞察力和架构能力释放出来的人可以做的事比过去多得多。过去你可能受制于人手有限、开发周期长很多想法只能在文档里躺尸现在你可以用AI快速验证、快速上线。一个人就是一支队伍的年代可能真的要来了。在我自己的团队里我观察到了一种分化趋势有些同学已经把AI用得很6一个人能承担过去两到三人的工作量而且伴随着对业务更深入的了解开始主动提出产品层面的改进建议。有些同学还在观望甚至抵触。我不认为这是能力差距更多是认知和心态的差距。看到这里的朋友如果你属于后者我真诚地建议你从现在开始每天都花一点时间尝试用AI去完成一个小任务然后再花一点时间去反思——这30分钟里如果不用AI我会做什么用AI之后我多出来的时间我拿去做了什么 这两个问题的答案基本就勾勒出了你未来三年的成长曲线。我们这一代程序员正处在一个范式切换的窗口期主动适应的人会拿到一个很大的红利观望的人则可能错过一轮职业发展的最佳窗口。无论如何保持学习保持思考保持动手你自己这个系统始终值得持续迭代。
返回列表