AI Didn’t Make Programming Easier. It Just Made It Differently Difficult
AI Didn’t Make Programming Easier. It Just Made It Differently Difficult
📅 发布时间:2026/8/21 7:30:26👁 浏览次数:
本文是ACM美国计算机协会文章 “AI Didn’t Make Programming Easier. It Just Made It Differently Difficult” 的翻译其中 以开头的部分是我个人的理解和补充说明。人工智能并没有让编程更容易它只是让编程以另一种方式变得困难软件开发的未来将属于这样一类人他们能够在大规模复杂度下保持清晰思考在快速变化中维持稳定的系统心智模型并把机器生成的成果融入人类主导的设计意图之中。数十年来实证研究表明编程是一项高认知负荷的活动。开发者依靠工作记忆、长期记忆调取以及复杂的心智模型来处理各类相互交织的抽象概念例如控制流、数据结构以及软件的架构设计。这套传统认知模型一贯认为记忆与回忆既是软件开发得以开展的核心基础同时也是主要瓶颈。如今由 AI 驱动的编程助手正在改变这一局面。这类工具充当外部记忆系统把语法记忆、样板代码生成、API 使用查询等负担从人脑转移到机器。随着对人类记忆能力的要求降低逻辑推理、架构理解、判断力、代码结构把控能力的相对重要性正在不断提升。 逻辑推理、架构理解、判断力从来就是程序员的核心能力并非 AI 出现之后才变得重要AI 只是消灭了 “记忆语法、样板代码” 这个门槛为开发者腾出更多时间用于这些核心能力并让这些高层能力成为区分开发者水平的决定性因素。因此“懂得如何编程” 正在被重新定义但这种改变并没有让编程这件事变得更简单也没有贬低程序员的价值。本文阐述编程工作正在发生的四大主要转变该领域向更多新从业者敞开大门。编程工作的难点发生了转移困难的形式已然不同。编程教育正在发生变革。程序员的角色正从知识容器演变为调度统筹的主导者。综合来看这些转变表明AI并没有消解编程的认知内核**只是将其发生了转移**。旧的障碍虽然消失但另一部分技能变得更为重要同时也催生了新形式的难题。 此处认知内核的原文是cognitive substance指编程工作中需要深度思考的那部分核心内容。作为高记忆负荷工作的编程在软件开发发展的绝大部分时期研究人员发现编程需要结合逻辑推理能力、工作记忆容量与长期记忆调取能力。布鲁克斯将编程描述为一种认知过程该过程要求开发者维护多个相互作用的抽象概念。彭宁顿后续证实程序员要依靠控制流与数据流的复杂心智模型完成代码的设计、理解与修改。多项研究表明这些心智模型以抽象形式存在于人脑中维持它们需要高昂的认知开销并且本身相当脆弱。一旦发生上下文切换心智模型就很容易崩塌倘若没有文档记录重新构建这套心智模型会耗费巨大脑力。然而如今AI 编程助手正在重塑这份原本负担沉重的认知图景。开发者拥有了外部记忆系统可以生成代码、检索语法、还原上下文还能记忆并复现过往心智构想的各类变体。这并不代表不再需要思考只是改变了对程序员而言最为关键的那部分认知技能。心智构想的原文为mental constructs指人脑中构建出来对系统的理解、概念。 这一段想表达的是思考本身不能被消除只是需要的能力发生转移转移到了推理、判断、架构理解。工作记忆与长期记忆调取巴德利与希奇将工作记忆定义为一种容量有限的认知系统负责对离散信息单元做临时存储与加工处理。与之相对长期记忆是固化知识的存储库既包含语法、架构概念这类陈述性知识也涵盖代码惯用写法、问题求解图式这类程序性知传统意义上编程高度依赖上述两种记忆工作记忆、长期记忆。索洛维、博纳与埃利希的研究发现程序员会依靠内在的认知偏好来组织循环迭代的实现思路这类认知偏好源于过往经验从长期记忆中调取而来。例如当循环语法结构契合程序员的天然思考范式时代码正确率会大幅提升。这表明过去编程活动的指导依据不只有语法知识还包括从记忆中调取、在设计决策中以心智模型形式体现的内在认知偏好的构建与执行。齐格蒙德等人利用功能性磁共振成像fMRI实验证实理解代码会激活大脑中负责工作记忆、注意力与语言处理的神经网络。这从生理层面证明理解复杂编程任务在神经机制上属于一项消耗大量认知资源的脑力活动。作为外部记忆资源的 AI 相关理论AI 编程助手充当外部记忆与认知载体改变了原有的认知格局。这与哈钦斯提出的分布式认知理论相契合。该理论认为认知系统并不局限于人个体本身还可以延伸至外部环境外部环境能够拓展并增强人的个体认知能力。若干补充理论完善了分布式认知理论。认知负荷理论CLT认为AI 工具能够降低外在认知负荷—— 也就是回想语法、记忆样板代码带来的内存开销由此释放工作记忆使其可以投入到任务固有的高层逻辑推理当中。延展心智假说EMH进一步把视角聚焦到个体开发者身上倘若 AI 助手稳定可用、被开发者习惯性使用并且获得信任它就不再仅仅是外部工具而会成为程序员认知架构中一个一体化组成部分。按照这一观点AI 本身会融入思考过程对推理方式、决策以及脑力付出带来的结果产生塑造作用。巴克、詹姆斯与波利卡尔波娃的研究表明开发者通常借助 GitHub Copilot 来承接底层琐碎工作例如编写样板代码、调取 API 细节、查询陌生语法而开发者自身的精力则转移到验证与整合 AI 生成代码之上。这些研究结果共同支撑这样一种观点AI 并不仅仅是速度更快的搜索引擎至少在一定程度上它是人类认知架构的一体化延伸。AI并非速度更快的搜索引擎是因为搜索引擎只是检索已有信息而 AI 可以生成代码参与人的认知流程AI 所能消除与无法消除的事物因此AI 从根本上改变了记忆不完整带来的代价切实降低了记忆调取出错所要付出的成本。开发者无需在脑中精准回忆就可以向 AI 获取常用 API 使用范式也不必依靠消耗大量工作记忆去推导重构就能拿到复杂语法。这种能力直接降低了对从长期记忆中快速调取具体底层知识的依赖缓解了前文所述的认知瓶颈。然而尽管 AI 辅助编程工具能够加快常规开发任务的进度却无法免除人为监督审查的必要性尤其当工作需要概念层面的逻辑推理而非表层代码修改操作时人为审查就更为关键。所有程序员都清楚AI 生成的代码可以做到语法完全正确但在语义逻辑与设计取舍上依然存在缺陷。这意味着开发者仍必须充分理解程序结构以此识别错误、批判性地评估 AI 给出的代码建议并针对代码的因果行为提出必要的 “为什么这么做” 与 “为什么不这么做” 的追问。希哈布等人研究发现使用 GitHub Copilot 的学生完成存量代码场景任务时速度大幅提升解题推进进度也更高。但在结题访谈中许多学生表达了顾虑自己并不能完全理解 Copilot 给出的方案是如何运作、为何要如此实现。因此作者呼吁采用对应的教学方法既要发挥 Copilot 带来的优势同时也要培养学生对代码的理解能力。阿拉纳齐等人针对 ChatGPT、Copilot 这类工具在编程教育中的多项对照实验开展元分析。研究表明尽管 AI 辅助能够提升任务完成度与工作效率但在学习成效与理解深度方面AI 带来的提升幅度很小并且统计结果并不稳定。这标志着一次重大的认知重构记忆成为跨越人与机器的共享资源。编程不再那么取决于开发者能够在脑海中容纳、处理多少信息而更多取决于在构建与组织一套复杂逻辑系统时开发者能否在多个抽象层级下保持清晰思考。多项研究证实针对代码库的稳固心智模型是代码浏览理解与逻辑推理的必要基础。因此倘若开发者把过多思考工作外包给 AI自身内在的心智模型就会弱化。由此可见AI 只是转移认知负荷而非消除认知负荷它加快了编写代码的速度却增加了校验与验证代码的时间开销。换言之难点从记忆调取“这段代码该怎么写”转移到了判断评估“这样做真的合理吗”。这场从 “依赖记忆调取” 到 “依赖判断评估” 的编程范式转变正是 AI 辅助开发最核心的认知变革。传统编程要求开发者在脑中储备庞大的知识库囊括语法、设计模式与代码惯用范式而 AI 赋能下的编程则转而要求开发者建立一套完备的评估框架用以评判代码的正确性、一致性与方案适配性。认知负担并未消失它只是从信息调取转移到了逻辑推理。 AI 可以编译通过但解决不了语义错误、设计缺陷。开发者的核心工作变为读懂结构、找问题、质疑 AI 方案追问因果逻辑。brownfield tasks存量代码任务棕地任务指在已有现存代码库之上做修改、迭代、修复区别于从零写全新代码的 greenfield绿地任务。 这里提到了存量代码任务强调的是使用者理解缺失。不要混淆的是相对于存量代码任务AI工具用于全新代码任务的效果更好因为无需理解存量代码、评估改动风险。简单来说就是没有历史包袱。作为混合认知系统工作的编程正在显现的现实并非 AI 取代程序员而是 AI 成为并行运行的第二套认知引擎。机器挖掘呈现模式、拼接调用 API、调取被遗忘的语法快速生成初步方案这消解了底层记忆调取的瓶颈但同时也会加重评估校验的负担。相应地人的角色不再主要是敲击代码的执行者而更多成为意图塑造者对 AI 输出进行检查、解读、整合、综合、验证、重构、舍弃、修改并最终为工具产出的内容赋予架构与业务目标。这一变化与医疗领域已经发生的变革十分相似诊断工具减轻了记忆晦涩临床细节的负担但同时提高了解读、判断与错误识别的风险权重。专业能力的重心也从记忆调取转向逻辑推理。理解这种人机混合协作模式有助于解释为什么 AI 只是改变了编程困难的形式而非单纯让编程变得简单。困难并没有被消除只是在这套跨越人与机器的全新认知架构中被重新分配。旧的难题虽得以消解但这套重新分配也催生了新的挑战。在 AI 仍主要充当外部记忆载体与代码转换处理层的当下四大主要转变已然显现编程领域门槛将放开过去不少人会因为记忆各类库、语法变体、错误处理范式带来的巨大认知负担而望而却步如今他们找到了可行的入门路径。记忆调取这一瓶颈被削弱让那些曾经在语法、库细节、陌生代码范式上举步维艰的人更容易接触编程。但与此同时问题拆解、系统推理以及评估生成代码的能力变得更加重要。然而这种低门槛伴随一个悖论产出代码的门槛降低了但写出高质量代码的门槛反而可能抬升。因为判断评估能力变得至关重要而它远比记忆调取能力更难培养。开发工作并未变得更简单只是困难发生了转移。概念梳理、问题拆解、调试排错与架构预判依旧需要投入脑力甚至需要付出更多。挑战上升到了更高的层级。过去新手程序员主要受困于语法错误与 API 使用如今他们的难点变成评判 AI 生成方案是否适配场景、是否具备可维护性以及是否契合更宏观的系统约束。这是一种层次更高的困难它要求开发者深度理解软件工程原理而非仅仅掌握表层的语言语法特性。编程教育将会转型。教学会减少对语法记忆的要求转而更多培养面向复杂系统的思维能力。课程重心向架构、接口设计、状态管理、失效模式、约束权衡、测试构建、安全以及长期可维护性倾斜。代码仅仅成为思想的众多表达载体之一。开发者依旧必须具备分析、适配、修改 AI 产出代码的能力甚至相比以往要求更高。也是最重要的一点程序员依旧不可或缺。程序员不再充当知识的容器而是作为统筹主导者理解各个组件以及组件之间如何配合维护系统的完整性并判断什么才是至关重要的。这一转变对于我们如何理解编程专业能力有着深远意义。新时代能力最强的开发者不再是打字速度最快、记忆知识最多的人而是能够维持完备深层心智模型同时把一切会干扰心智模型构建的事务交给 AI 处理的人。他们将强大的系统推理能力与 AI 增强的记忆调取能力相结合并把大模型视作一种认知义肢工具高效好用但无法最终判定方案在语义逻辑与设计取舍层面是否正确、是否具备一致性。结论综合以上四大转变可以看出AI 并没有消解编程内在的认知内核而只是对认知负荷进行了重新安置。随着外部记忆资源变得充裕、代码生成成本大幅降低程序员的价值重心转向解读分析、结构化推理与判断评估。软件开发的未来将属于这样一类人他们能够在多尺度下保持清晰思考在快速迭代变化中维持稳固的心智模型并能够把机器生成的产物融入由人主导的业务意图之中。因此AI 并没有削弱软件开发这门技艺它拓展了技艺的边界深化了其内涵让更多工作显露出纯粹的智力属性。开发工作的困难形式发生改变是因为它要求层次更高的专业能力判断评估优先于记忆调取架构统筹优先于语法细节全局协调优先于具体实现。这些能力并非更容易习得、更容易展现它们只是不一样的能力并且从长远看要求或许会更高。参考Alanazi, M., Soh, B., Samra, H., and Li, A. The influence of artificial intelligence tools on learning outcomes in computer programming: A systematic review and meta-analysis. Computers 14, 5 (2025), 185.Baddeley, A.D. and Hitch, G. Working memory. In The Psychology of Learning and Motivation 8, Academic Press. G.H. Bower (Ed.) (1974), 47–89.Barke, S., James, M.B., and Polikarpova, N. Grounded Copilot: How programmers interact with code-generating models. In Proceedings of the ACM on Programming Languages 7, Article 78 (2023), 85–111.Brooks, R.E. Towards a theory of the cognitive processes in computer programming. Intern. J. Man-Machine Studies 9, 6 (1977), 737-751.Hutchins, E. Cognition in the Wild. MIT Press (1995).Pennington, N. Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology 19, 3 (1987), 295–341.Shihab, M.I.H. et al. The effects of GitHub Copilot on computing students’ programming effectiveness, efficiency, and processes in brownfield programming tasks. In Proceedings of the ACM Conf. Inter. Computing Education Research (2025), 407–420.Siegmund, J. et al. Understanding source code with functional magnetic resonance imaging. In Proceedings of the 36th Annual Intern. Conf. Software Engineering, ACM (2014), 378–389.Soloway, E., Bonar, J., and Ehrlich, K. Cognitive strategies and looping constructs: An empirical study. Commun. ACM 26, 11 (1983), 853–860.关于作者Jeremy Osbornjeremy.osborngmail.com是一位技术领袖他的工作涵盖了软件、治理、可持续发展和战略。