"我现在写代码的时候,经常分不清是我在写还是在改。"
这句话是真实的职业危机,不是无病呻吟。Stack Overflow 2024调查显示,62%的开发者正在使用AI工具(去年是44%),76%在使用或计划使用。AI编程工具已经不是"是否会普及"的问题,而是"已经普及到了什么程度"的问题。
但今天不想重复"AI会不会替代程序员"的讨论。说一句更实在的:AI编程工具本质是"放大器",不是"替代者"。会用的人效率翻倍,不会用的人焦虑加倍。差距不是工具带来的,是人带来的。
真正的问题:AI擅长的是模式,不擅长的是判断
先搞清楚AI编程工具的底层逻辑。
AI生成代码靠的是模式识别——它学习了海量开源代码,知道"这类问题通常这么写"。所以boilerplate代码、测试生成、文档生成、常见模式实现,这些任务AI很擅长。Stack Overflow调查显示,AI工具明年会更深入文档(81%)、测试(80%)、写代码(76%)。
但模式识别有个致命局限:它不知道这个模式在这里合不合适。
举个例子:AI知道"用户登录后要存session",但它不知道你的业务里session应该存多久、要不要支持单点登录、session失效后的fallback是什么。这些决策需要业务理解,需要权衡多个因素,需要判断"这个解法在我这个场景里的副作用是什么"。
这就是为什么AI能生成"看起来对"的代码,但不保证"确实对"的代码。更关键的是,AI不知道自己生成的代码哪里有问题——它没有自我纠错能力,需要人类来验证。
会用AI vs 会用好AI:两种完全不同的能力
用Cursor举个例子:两个程序员都用它写代码。
程序员A只会"帮我写一个登录功能",AI给什么用什么,出来的代码能用,但可能有安全隐患。
程序员B会说"帮我写一个支持OAuth2的登录功能,但要考虑session管理和token刷新,还要处理并发登录的场景",AI出来的代码质量完全不一样。
差距不在AI,在程序员B知道什么是"对"的解法。
这引出一个关键结论:"会用AI"和"会用好AI"是两种完全不同的能力。前者是术,后者是道。
会写prompt的人能让AI干活,但会判断AI输出的人能让AI干正确的活。76%使用AI,但100%需要人类把关——"会用好AI"的人必须知道什么是"对"的代码,否则就是在沙滩上盖楼。
还有一个被忽视的能力:整合能力。AI能生成函数,能生成类,但它不知道怎么把这些碎片组合成完整的系统。AI生成的是零件,装配成能跑的系统是人。这就是为什么我见过太多"AI写了一堆模块,但没人能串起来"的案例。
未来三年,程序员的核心竞争力
系统思考能力。AI能写函数,但不知道怎么设计函数之间的关系。系统级别的问题——模块边界怎么划、数据流怎么走、依赖关系怎么管理——这些AI理解不了。"为什么要这样拆分"这个问题,AI给不出有意义的答案。
业务理解能力。AI不懂业务context,不理解为什么这个功能在这个阶段要做,不理解这个需求背后的商业逻辑。我做过一个电商系统,AI能写商品查询的代码,但它不知道"为什么促销期间要临时关闭某些商品的下单"——这需要领域知识加商业判断。
人机协作能力。这是最被低估的能力。不是"指挥AI干活",也不是"AI说什么就信什么",而是"判断AI说得对不对"、"知道什么时候该信AI什么时候该信自己"。具体说:AI生成了一段代码,你知道去哪里验证它对不对;AI给了一个方案,你能问出"那如果并发量上来会怎样";AI跑出一个结果,你能判断这个结果符不符合业务预期。这是元能力——关于能力的能力。
结论
AI不会替代程序员,但会重新定义什么是"程序员"。
从"写代码的"变成"设计系统加验证AI输出加做出决策的"。这个转变已经发生,你感受不到只是因为它是渐变的。
与其担心被替代,不如思考怎么利用AI放大自己的价值。会用AI的人不会被AI替代,但会被会用AI的人替代。这句话可能有点残酷,但这就是现实。
留个问题
你现在用AI编程工具最多干什么?是写代码、测试、还是文档?你的工作流里,哪些环节还没用到AI?
夜雨聆风