当Karpathy展示一个完全由LLM生成,无需一行传统代码的应用时,我们面对的不仅是效率提升,而是整个软件工程范式的地层断裂。

核心观点:LLM正在从“辅助编程工具”演变为“直接解决问题的主体”,迫使程序员从实现者转型为问题定义者,但这一转型并非线性进化,而是伴随着不确定性和认知断层。

上周,Andrej Karpathy在Sequoia Ascent 2026炉边谈话中抛出了一个让很多开发者后背发凉的观点:我们已经能看到一些完全由LLM吞噬的应用——输入一张图片,输出一张图片,整个流程不需要一行传统代码。这不是一个渐进式的改进,而是对“编程”这一概念本身的一次釜底抽薪。长期以来,我们习惯于把LLM看作是一个更好的代码补全工具,一个能加速现有流程的协作者。但Karpathy提到的menugen应用示范了一种完全不同的可能性:在某些场景下,LLM本身就是应用,传统的指令式代码反而成了多余的外壳。

这绝非夸大其词。让我们仔细审视这个变化意味着什么。传统软件工程的核心技能一直围绕着将人类意图转化为精确的、机器可执行的指令序列。我们学习算法、数据结构、设计模式,本质上是在学习如何与机器对话的语法和修辞。当LLM能够直接理解自然语言描述的目标,并自行推导出达成目标的步骤时,整个“翻译”环节就变得不再必要。这就像在印刷术普及后,抄写员的角色迅速式微一样,不是因为他们不够熟练,而是因为技术绕过了他们的核心功能。

但这里有一个关键的反直觉之处:LLM的“理解”和我们人类的“理解”存在本质差异。Karpathy自己也不得不承认这一点,他一直在努力解释LLM能力的“锯齿状模式”——同一个模型既能完美重构一个10万行的代码库,又会建议你“走路去洗车场洗车”。这种能力分布的不均匀性揭示了一个残酷的事实:我们并没有创造出一个全能的智能体,而是创造了一个在特定数据分布上极其强大的模式匹配引擎。这个引擎在“轨道上”时表现惊艳,但一旦脱离训练数据覆盖的领域,它就会变得笨拙甚至荒谬。

所以,程序员的新价值不在于和LLM竞赛写出更优雅的算法,而在于判断哪些问题是“在轨道上”的,哪些是需要人类引导的“丛林越野”。这要求的能力不再是纯粹的技术实现,而是对问题本质的深刻理解、对业务逻辑的精准建模、以及对不确定性边界的敏锐感知。未来的程序员更像是一个产品策略师和系统架构师的结合体,他需要知道什么时候信任LLM的输出,什么时候需要人工介入,以及如何将复杂问题分解为LLM能够可靠处理的小块。

然而,这种转型并非一帆风顺。最大的不确定性在于,我们尚未建立一个足够好的模型来预测LLM的能力边界。Karpathy的“数据分布/RL电路”理论是一个有希望的起点,但他自己也承认“仍然不100%满意”。这意味着,即使是最前沿的研究者,也在摸索中。对于一线开发者而言,这意味着每一次使用LLM都是一次赌博——你可能会得到完美的代码,也可能得到一个看似完美但潜伏着灾难性逻辑错误的结果。这种不确定性催生了一整套新的工程实践和工具链,例如最近出现的大量用于调试LLM内部过程的DevTools,它们试图将LLM的“黑箱”决策过程变得可见、可审计。

更深远的影响在于,这种转型正在重塑整个软件产业的经济结构。当实现成本趋近于零时,价值的重心必然向上游移动。过去,一个优秀的程序员之所以值钱,是因为他能高效地写出高质量的代码。未来,一个优秀的程序员之所以值钱,是因为他能清晰地定义什么样的代码值得写。这才是真正稀缺的能力——对问题的洞察力和对解决方案的决策力。Karpathy提到的“install .md skills”而非“install .sh scripts”的类比非常精妙:如果安装软件只需要告诉LLM你的环境和需求,那么那些复杂的shell脚本就失去了存在的意义,但前提是你必须准确地描述你的环境和需求。

与此同时,我们也要警惕另一种风险:过度信任可能导致技能的全面退化。当程序员习惯了让LLM处理所有实现细节,他们自己构建心智模型和理解系统深度连接的能力可能会萎缩。这并非杞人忧天,历史已经给了我们足够的教训——从汇编语言到高级语言,从手动内存管理到垃圾回收,每一次抽象层次的提升都伴随着对底层控制感的丧失。但这次的不同在于,LLM带来的不是结构性的抽象,而是行为性的替代。你不再仅仅是把一个循环优化成一个map函数,你是把整个功能的实现外包给了一个你无法完全理解的实体。

那么,回到最初的问题:当LLM吃掉代码后,程序员的价值何在?我的答案可能会让一些人失望:程序员的价值不在于固守那些即将被自动化取代的技能,而在于拥抱和驾驭这种不确定性。未来的开发者将是那些能够与不确定性共舞的人——他们理解LLM的局限和长处,知道如何设计提示词和流程来放大其优势、规避其弱点,并最终将技术选择权牢牢掌握在自己手中。这种能力不是天生的,它来自于对问题域的深入钻研、对系统思维的持续训练、以及对技术本质的不懈追问。

软件工程的范式正在经历一场深刻的地层断裂。新的岩层正在形成,而旧的化石则逐渐沉没。对于身处这场变革中的每一位开发者而言,选择其实只有一个:要么成为地质学家,理解并利用这种断裂;要么成为化石,被新的地层永远掩埋。

如果把这个判断再往前推一步,真正重要的不是 Fireside chat at Se…、[Workflow] Enhance…、Mitchell's post her… 本身,而是它们共同暴露出的分配逻辑。 x、reddit 在同一轮里把注意力推向同一问题,通常意味着这个主题正在从圈层内部经验,转向更可共享的公共议题。 这也是为什么这种内容值得写成长文:短帖只负责提醒你“这里有事发生”,但只有长文才能把背景、代价、误判空间和后续影响放到同一张桌面上。 换句话说,LLM正在从“辅助编程工具”演变为“直接解决问题的主体”,迫使程序员从实现者转型为问题定义者,但这一转型并非线性进化,而是伴随着不确定性和认知断层。 之所以重要,不是因为它看上去新,而是因为它会重新定义用户接下来应该如何理解这一类内容。