上周三凌晨一点,我盯着屏幕上一个跑了三遍都没通过的单元测试,突然有点恍惚。
不是因为这个bug有多难——恰恰相反,它太简单了。简单到我把报错信息贴给Claude,它两秒钟就给出了修复方案,还顺手帮我补了三个边界情况的测试用例。我复制粘贴,跑通,提交。整个过程不到五分钟。
然后我坐在椅子上,心里空落落的。
那种感觉很难形容。就像你小时候花了整个下午搭了一个歪歪扭扭的乐高城堡,正得意呢,旁边有人走过来,三下五除二给你搭了个更漂亮的,还问你「要不要我帮你把说明书也写了」。
我知道很多人有同感。Hacker News上隔三差五就有类似的帖子冒出来,标题大同小异——「How to keep enjoying programming in a world of LLMs」。底下评论区吵成一锅粥,有人说「工具而已,别矫情」,有人说「你不懂,那种亲手创造的快乐正在被剥夺」。
我今天不想站队。我想聊聊我自己是怎么从那种「被掏空」的状态里爬出来的,以及我踩过的那些坑。
为什么「让AI全干」反而让我更累?
让AI全干,你会比以前更累——累在「决策」,不在「写」。
我一开始以为,LLM能帮我写代码,我应该更轻松才对。但实际情况是,有大概两个月的时间,我比以前更累了。
以前写一个函数,我脑子里大概有数:用什么数据结构,怎么处理边界,性能瓶颈可能在哪。现在呢?我让AI生成一版,它给我三种写法,每种都「看起来挺合理」。我得去读它的代码,理解它的思路,判断它有没有埋坑,然后决定用哪个、改哪个。
据GitHub 2023年的一项开发者调查,使用Copilot的开发者中,有46%的人表示他们花在「审查AI生成代码」上的时间,比预想的要多。这个数字我当时看到就笑了——太真实了。
更麻烦的是,这种「审查」和「自己写」用的是完全不同的脑回路。自己写是「从零构建」,审查是「逆向拆解」。后者其实更耗神,因为你得时刻保持警惕,不能放过任何一个「看起来对但实际有问题」的地方。
我有个做后端的朋友,上个月跟我吐槽,说他让AI帮他重构一个老模块,AI改完之后他review了整整一个下午,最后发现AI把两个原本独立的错误处理逻辑合并了,导致一个边缘case下会吞掉异常。他说:「我自己写可能就花一个小时,但review它我花了三个小时,还差点漏了。」
这就是问题所在。LLM把「写」的成本降下来了,但它把「判断」的成本推高了。而「判断」这件事,恰恰是编程里最累、但也最有价值的部分。
那怎么办?我的答案是:别让AI碰你最享受的那部分。
我是怎么重新找回「手感」的?
核心逻辑我自己写,外围代码随便AI造——这个分工让我重新找到了编程的乐趣。
我后来给自己定了一个规矩,很简单:核心逻辑我自己写,外围代码随便AI造。
什么叫核心逻辑?就是那个让我觉得「这事儿有意思」的部分。比如我最近在写一个小工具,用来分析网站日志里的爬虫行为。这个工具最核心的算法——怎么从一堆User-Agent和访问频率里识别出异常爬虫——我自己写。哪怕写得慢,哪怕要查文档,我也自己写。
外围代码呢?读文件、解析JSON、格式化输出、写单元测试、生成文档注释——这些我全扔给AI。
这个分工带来的变化很微妙。我不再是「AI的审查员」,而是「AI的搭档」。我负责那个让我兴奋的部分,AI负责那些让我犯困的部分。
据普林斯顿大学2024年的一项研究,当开发者把LLM用于「辅助性任务」而非「核心创造性任务」时,他们的工作满意度和代码质量都有明显提升。这个结论跟我自己的体感完全吻合。
还有一个更重要的变化:我开始把AI当成「结对编程的伙伴」,而不是「代码生成器」。
区别在哪?代码生成器是你告诉它要什么,它给你什么。结对伙伴是你可以跟它讨论、争论、甚至让它挑战你的想法。我现在写核心逻辑的时候,会先把我的思路用自然语言写出来,扔给AI,问它:「你觉得这个思路有什么问题?」
它有时候会指出我没想到的边界情况,有时候会提出一个我完全没考虑过的角度。这种「被挑战」的感觉,反而让我重新找到了编程的乐趣——那种「有人在跟你一起琢磨一件事」的乐趣。
那些「不用AI」的时刻,反而更珍贵了
每周留出半天完全不用AI写代码,是我一周里最放松的编程时间。
我还有一个可能有点「反潮流」的习惯:每周至少留出半天,完全不用AI写代码。
这半天里,我关掉Copilot,关掉Cursor的AI补全,就用手敲。遇到问题就查文档、翻Stack Overflow、自己debug。
你可能会觉得我疯了。但我跟你说,这半天是我一周里最放松的编程时间。
为什么?因为不用AI的时候,我对代码的「掌控感」是完整的。每一行都是我写的,每一个决策都是我做的,每一个bug都是我找到的。这种「从头到尾都是我的」的感觉,在AI时代反而变成了一种稀缺体验。
据Stack Overflow 2024年开发者调查,有62%的开发者表示他们「担心AI生成的代码会让自己逐渐丧失基础编程能力」。这个担心不是没有道理的。但我觉得,与其担心,不如主动留出「不用AI」的时间,把它当成一种刻意练习。
而且我发现一个很有意思的事:那些我不用AI写出来的代码,我对它们的理解深度,远远超过AI帮我写的代码。因为我在写的过程中,被迫去思考每一个细节。这种思考,才是真正让我「享受编程」的东西。
常见问题
Q: 让AI写代码,我的编程能力会不会退化?
会,如果你把所有事都交给AI的话。据Stack Overflow 2024年调查,62%的开发者有这种担心。我的建议是:把AI当「副驾驶」而不是「代驾」。核心逻辑自己写,外围代码让AI干。每周留出固定时间完全不用AI,保持手感。
Q: 怎么判断哪些代码该自己写,哪些该让AI写?
一个简单的标准:如果这段代码让你觉得「有意思」「有挑战」「能学到东西」,就自己写。如果它让你觉得「无聊」「重复」「浪费时间」,就扔给AI。核心逻辑、关键算法、架构决策——自己来。CRUD、测试、文档、格式转换——AI来。
Q: AI写的代码质量到底靠不靠谱?
看场景。据GitHub 2023年调查,46%的开发者花在审查AI代码上的时间比预想的多。AI生成的代码在「常见模式」下质量不错,但在「边缘情况」和「业务特定逻辑」上经常出问题。所以审查是必须的,而且审查的成本往往被低估了。
Q: 在LLM时代,继续享受编程的关键是什么?
我的答案是:重新定义你和代码的关系。别再追求「写得快」,而是追求「写得有感觉」。把AI当成工具,但别让它夺走你亲手创造的快乐。核心逻辑自己写,外围代码让AI干,每周留半天完全不用AI。
Q: 如果我的工作就是写CRUD,怎么享受编程?
说实话,纯CRUD确实很难有乐趣。但你可以换个角度:把CRUD当成「设计问题」而不是「实现问题」。想想怎么让代码更易读、更易维护、更优雅。或者用AI帮你处理重复部分,省下来的时间去优化架构、写更好的测试、研究性能瓶颈。乐趣往往藏在「怎么做得更好」里,而不是「怎么做完」里。
参考来源
> 本文类型:趋势型
关于云丝路:云丝路(yunsilu.net)是一个关注技术人真实成长与实战经验的小站。我们聊代码,也聊代码背后的人。不追热点,只写有体感的东西。
常见问题
Q1: 为什么用LLM写代码反而比以前更累了?
让AI全干,你会比以前更累——累在“决策”,不在“写”。作者描述自己有两个月时间比以前更累,因为以前写函数时脑子里大概有数:用什么数据结构、怎么处理边界、性能瓶颈在哪,而让AI生成后,自己反而要花大量精力去判断和选择AI给出的多个方案。这种“决策疲劳”是让AI全干后反而更累的核心原因。
Q2: Hacker News上关于LLM时代编程快乐的讨论是什么样的?
Hacker News上隔三差五就有类似帖子冒出来,标题大同小异——「How to keep enjoying programming in a world of LLMs」。底下评论区吵成一锅粥,有人说「工具而已,别矫情」,有人说「你不懂,那种亲手创造的快乐正在被剥夺」。作者引用这些讨论来说明这种“被掏空”的感受并非个例。
Q3: 作者用Claude修bug的具体经历是什么?
作者上周三凌晨一点盯着一个跑了三遍都没通过的单元测试,bug本身很简单。他把报错信息贴给Claude,Claude两秒钟就给出了修复方案,还顺手补了三个边界情况的测试用例。作者复制粘贴、跑通、提交,整个过程不到五分钟,但之后坐在椅子上心里空落落的。