当我不再手写代码后,才真正发现编程的价值
去年这个时候,我还跟人拍桌子说“AI写代码就是个玩具”
你听我说句掏心窝子的话——
我真以为自己挺聪明的。
去年这时候,我还堵上职业尊严跟人吵:“AI?写个Hello World还行,正经系统它能碰?”那语气,那自信,简直要把“手写代码才是真功夫”刻脑门上。
后来呢?
后来我自己手贱,试了试Claude Code和Codex。
你猜怎么着?
坐在电脑前,我愣了半天,然后骂了自己一句:“你个傻逼。”
不是因为我错了。是因为我明明有机会提前半年知道真相,却偏偏花了六个月跟自己较劲。
十年老程序员,到现在快一年没手写过一行代码
说到这儿,我得先交代一下自己的底子。
正经写了十年Java,后来又跑去捣鼓Scala做数据工程,什么Python、Go、C++都碰过。搁以前,我绝对算个“手活”不错的人。
但你知道我现在每天怎么干活吗?
早上打开电脑,对着Claude Code说:“帮我看一眼昨晚那个线上BUG,日志在xxx目录。”它自己翻代码、跑测试、定位问题。我就端着咖啡等结论。
上周有个老项目要加UTF-8支持,我顺口说了一句项目里缺个测试框架。
以前这种活怎么说?两天打底。找组件、配环境、写测试用例、跑CI,一环接一环。
那天我用了两个小时。两个小时啊,其中大部分时间还是在跟AI解释“我要什么”和“不要什么”。
你说,AI写的代码质量怎么样?
这么说吧——几十万行的项目,几百行功能正确的代码还带注释,半分钟搞定。
我真的好几个月没手写过一行正经代码了。
不觉得丢人。甚至有点爽。
飘了三个月,然后被现实抽了一耳光
最开始那段时间,说实话,我飘了。
“十分钟一个网站?小事儿!”
“重构整个模块?来,给我一个下午。”
吹过的牛基本都实现了。一度觉得自己就是个躺着也能产出的大神。
但真正用它去构建、去维护一个生产级业务系统的时候,问题才像韭菜一样,一茬接一茬地冒出来。
第一,AI会偷偷地、悄无声息地骗你。
改了A模块,它悄悄搞坏了B模块的状态。完事儿还装得跟没事儿人一样,不仔细审查,它给你埋一堆暗雷。你以为它懂系统的全局逻辑?别天真了。
第二,它特别爱自己造轮子。
系统里明明有个现成的工具类,它偏要自己再搓一套。为了加一个简单功能,它能写出一大段冗余代码,跟现有系统格格不入。项目越往后越改不动,修一个BUG引出三个新BUG,最后陷入死循环。
很多人跟我说:这是模型不够聪明,上下文窗口不够大。
我不认这个账。
AI的本质不是许愿机,是超级执行引擎
花了快一年,我搞明白了一件事——
AI编程不是魔法。它就是个超级执行工具,能写漂亮的语法,推演局部逻辑。但别指望它理解整个系统——什么宏观理解、领域边界、状态一致性,它几乎不懂。
你想一想:一个实习生,让他独立负责整个微服务架构,你敢吗?
AI就干着类似的事。只是它写得快而已。
这就带来了一个极其反常识的现实——
代码生成的边际成本越趋近于零,系统的复杂度越是指数级膨胀。功能变得极度廉价,而维持秩序却贵得离谱。
你看,那些以前看起来“虚”的东西——架构设计、技术选型、边界约束——在这个时代反而被放大了十倍,甚至百倍。
Redis之父那句话,说得挺到位:有意思的不再是写代码本身,而是想清楚要做什么,以及怎么做。在这件事上,AI确实是个顶尖拍档。
克制AI造轮子的冲动,是我踩过最大的坑
你问我这一年最大的教训是什么?
就是让AI自由发挥。
你跟AI说“实现一个支持拖拽排序的树形列表”,不加约束的话——你看着——它大概率会从零开始手搓。原生DOM API、坐标计算、状态管理、物理动画算法……
从局部看,这段代码可能跑得挺完美。
但在生产环境里呢?灾难。
手搓的复杂逻辑不可避免地有边缘用例的缺陷,而且跟现有代码风格格格不入。
后来我学乖了。每次都给AI明确边界:“用项目里已有的xx组件库,复用xx工具类,别自己造轮子。”
就这么一句话,代码质量翻了三倍不止。
那“古法编程”还有没有价值?
现在网上两派打得很凶。
一派说:“手写代码毫无意义,AI都替你写了。”
另一派说:“不懂底层原理,你就是在阅读黑盒。”
我的看法?都有道理,但都不全面。
你用AI写代码,能不能快速接管、修改、扩展?这取决于你对这门语言的理解深度。
我用Java,AI生成的代码我随手就能改。让我用Go或者Rust,AI写得再漂亮,我接手也费劲。
差别不在于写不写代码,而在于你能不能掌控。
这引出一个很直接的结论——
没有古法编程能力,你永远无法真正掌控AI生成的代码。
AI能帮你写,但不能替你理解。
Claude Code之父Boris Cherny打了个比方,我觉得很妙:
印刷术发明前,欧洲只有10%的精英识字,誊写员掌握着知识的权柄。印刷术出现后,这些人没失业,反而因为从繁重的誊写工作中解放出来而乐在其中。
现在程序员就处在这个状态。
Vibe Coding多快乐,享受一天是一天。
给你四条实在建议,不装不空
踩过那么多坑,总得有点能说的。
第一,用最强的模型。
Boris说得对:省token不如省时间。能力弱的模型会带来更多错误,修复起来更费精力。
说出来你可能不信——我现在每个月token消耗已经超过工资了。但效率提升,完全值这个价。
第二,建立规范体系。
我搞了一套三层rule:全局通用规范、项目级约束、当前任务上下文。AI写代码前先把这些规则喂给它。
效果?天差地别。
第三,该手写的时候别偷懒。
核心架构设计、关键业务逻辑的判定、系统边界划分——这些地方,我还是会手写一版,再让AI去实现细节。
纯粹让AI决定的系统,最后会变成一团乱麻。
第四,学会审查,而不是崇拜。
AI生成的代码,你要带着审视的目光去看。
不理解它的逻辑就放过去?迟早吃瘪。
说句实话收尾
十年前我写Java,五年前我学Scala,现在我每天跟AI吵架式地沟通代码。
变化很大。
但有件事没变:最终决定系统好不好的,不是写了多少行代码,而是设计得对不对。
以前我们跟机器沟通靠编程语言,现在直接跟AI说人话,再让AI去跟机器说。门槛确实低了,但真正的难度从“怎么实现”转到了“要实现什么,怎么确保实现得对”。
我不在乎AI公司能不能挣大钱。
但我知道,那些觉得AI能完全替代程序员的人,跟当年觉得Excel能替代会计的人一样天真。
工具解放了双手,但从没解放过脑子。
你看,说到底,最难的那部分——想清楚、做对、不出事——还是得靠你自己。
读者评论 2