从8岁敲代码到被AI接管,微软工程师“破防”:
栏目:媒体新闻 发布时间:2025-10-23 11:32
【CSDN编者按】这是一位拥有30年编程经验的老开发者的“自我清算”。本文作者:保罗·帕...
【CSDN编者按】这是一位拥有30年编程经验的老开发者的“自我清算”。本文作者 Paul Payn 目前是微软 CTO 领导下的首席研究工程师。从Commodore 64到大型语言模型,从敲代码到与AI共同创造,他亲眼目睹了软件行业从“书面逻辑”到“机器自动生成”的惊人飞跃。当他意识到依赖一生的技能正在以指数级的速度被工具取代时,我相信每个程序员都能体会到这种震惊和失落。原文链接:https://payne.io/posts/historical-artifact/author |保罗·佩恩翻译 |郑丽媛制作| CSDN(ID:CSDNNEWS)好吧,我不得不承认——我整个30年的编程生涯就是一个“历史神器”。 AI时代的浪潮来得比我想象的要快。也许在不久的将来,当人们回顾现在时,会觉得那是实际上,当时是“人”为机器编写代码,这并不可笑。 我曾经相信,编程离不开人。我8岁时开始学习编程。当时,我拿着一台Commodore 64,仔细地阅读着厚厚的用户手册,并从杂志上的示例代码中逐行复制。接下来的40年里,我从未停止过学习:编程不是一种可以“学而做”的技能,而是一种永无止境的自我保护。每一代开发者都必须学会在浪潮中重塑自我。当我们招聘程序员时,我们所看重的东西,包括灵活性、独立学习和批判性思维,都是这种生存的体现。本质上,编程需要一种“机械同理心”。你必须了解机器的底层逻辑:存储、内存、处理器、接口……除此之外,你还必须了解语言和工具链的语法:什么字符组合可以e系统实际执行。此外,还有一个抽象的世界:首先处理大型程序,然后处理程序集群,最后处理计算机网络系统。程序员的主要工作之一就是“管理复杂性”,因此了解和掌握相关技术很重要。有经验的开发人员会熟练使用各种抽象工具:数据结构和算法、配置和状态管理、封装思想、函数和面向对象的组合、实体和数据的差异、事件和快照模式、循环和递归选择……这些知识是无穷无尽的。更不用说每周都会发布新的工具和产品,并且您的技术堆栈也在不断修复。然后就是权衡。与所有工程领域一样,编程的本质就是做出权衡。您必须在处理性能和内存之间、在开发时间和开发完成之间、在可靠性和成本。经过反复权衡,一个“合格”的方案可能最终诞生。但程序并不是孤立存在的,它们旨在解决人们的问题——成为真正的产品和服务。因此,程序员不仅要写代码,还要了解用户、了解需求、了解业务,以确保系统可行、可操作、可上市。而且,由于程序员编写的是与用户交互的程序,因此我们必须始终关注心理学、社会学以及这些领域与技术的交叉点。几十年后,我意识到编程教会我的不是语法或算法,而是如何思考问题。如果你想分解一个复杂的问题,将不同的模块组合在一起,或者预测一个系统随着时间的推移的演变——这种工作,在过去,程序员必须在场。这也是近半个世纪以来编程几乎渗透到所有科学领域的原因:程序员是“设计师、建筑师和工程师”。加速解决所有问题的“d工作者”。他们可以解决所有领域的问题。 那么……编程真的离不开人吗?三年前,我面试了几位高级工程师候选人。在面试中,我们经常会遇到一种情况:有些人,无论出于什么原因,根本就没有掌握编程工作所必需的基本技能。如果他们的批判性思维或解决问题的能力较强,我们可以根据职位的需要适当放宽要求,但这种“基本达不到标准”的情况着实令人惊讶。在连续面试几位候选人失败后,我瘫坐在办公椅上抱怨:“为什么他们没有写出解决重大问题的方案?”同事觉得好笑,问我:什么问题?我向他描述了一下,他说“好吧”,然后我发现他不是在帮我研究面试题——他是在GPT -3达芬奇游乐场里输入问题由 Openai 提供(我们当时只获得了早期访问权限)。经过几次击键提交后,一段完美的Python代码出现在屏幕上。当我看到这个答案时,答案不仅正确,而且很棒。我很惊讶,并让他用编程语言再试一次,结果成功了;我要求他改变一种编程范式,但它仍然有效。更重要的是人工智能可以自动输出许多其他语言,甚至不需要等待我们继续询问。从那天起,微软内部的一个小团队开始攻克这个LLM(大语言模型)驱动的系统。一开始,我和大多数业内人士一样认为:这项技术充其量只是一个提高效率的工具,并不能取代程序员。 AI 需要很长时间才能解决“非玩具级”的复杂问题——毕竟程序员每天使用的技能对于“文本补全模型”来说太难了。但最终,我们一一解决了AI的缺点: ● 内存窗口是吗?w太短了?我们发明了外部上下文管理方法。 ● 只能输出文本吗?我们让它调用工具并运行命令。 ● 动作链太短?我们教它如何规划长期的任务序列。 ● 不知道如何分解复杂的问题?我们让它弄清楚任务分解和执行反馈。 ● 输出不受控制?我们建立了可衡量且行之有效的机制。 ● 缺乏内省?我们在这个模块中添加了“自我反思”,以便它可以根据结果自我调整策略。在这个过程中,模型的能力不断提升,生态系统也不断扩大……人工智能一步一步地从我们程序员身上分担了越来越多的工作。今年春天,Anthropic 发布了克劳德代码。它的两个特点使我们的系统变得高效:(1)它可以通过命令行直接与计算机交互,而不是像ChATGPT那样被困在网页或API中; 。从那时起,我们就一直在 byear 中使用 Claude Code 等工具不断提高人工智能系统的能力:它们可以处理更大的任务,更可靠,并且持续时间更长。但即便如此,我仍然不觉得“编程会成为历史遗迹”。 事实证明,编程不再需要人了。上周,我们团队整合了之前在Claude Code(将其作为快速实验平台)中积累的各种技术和实验,快速集成了许多来之不易的成果。我们已经在 GitHub (https://github.com/microsoft/amplifier) 上发布了早期原型放大器,新版本将在未来一两周内发布。当然,这个工具本身并不会取代我,但它也让我确信一件事:AI取代程序员还剩“几个月”,而不是“几年”——因为它解决了编程的“难点”。使用放大器时,你只需要描述你想要的东西,它就会完全按照你的编程理念,从设计到创造出产品。、后端、前端进行测试。更烦人的是,它还会自我完善,也就是说,你用得越多,它就越聪明:它会积累可用的工具;记录有用的技术方法;它将从您的使用情况中学习并主动建议如何优化自身。这是一种“效率提升”——你所做的将帮助你更快地做新事情。在过去的一周里,我使用amplifier做了两件事:(1)分析两个不同的代码库,从其中一个代码库中提取出我开发的功能模块,然后提出三个选项以将该模块的aof包含在其他代码库中;然后它并行实施这三个选项,最后提供“什么有效、什么无效”的摘要。 。当然,快速编写单词需要时间并且需要程序员的知识,但每个任务只需向放大器提供三个信号即可。每次都会运行30到120分钟,最后返回到可以直接使用的软件——文档也是包括。同时,我们团队的其他人也用它做了很多事情:开发了新版本的放大器、构建了完整的分析框架、构建了两个不同的桌面图形实验。让我惊讶的是一位设计师:他几乎没有编程经验,但他依靠放大器实现了“从设计风格到完整轮廓”的新文案——结合figma、storybook等工具的想法和工作流程,创造了一个全新的“AI辅助设计应用”。我估计这个工具会让他变得更好10倍。另外,我们还要求放大器连接到一个“管理大型相关任务列表”的项目,它直接将该项目集成到自己的系统中。我的同事让它运行了一整夜,自主完成了数十项任务,并准备了一份“晨报”,其中包含多个组件的执行计划,供我的同事确定下一步该做什么。这不是最终产品。我们还有很多of 工作要做。例如,硬件和软件制造商必须在后台发布可以被AI使用的产品信息,我们还需要弯曲并发布新系统的集成标准。但说实话,那是我第一次感觉到:“最难的部分已经过去了”。 - 从现在开始,人工智能可以直接根据人类的需求做事,而不需要程序员来弥补这个差距。 那么,编程的未来是什么?正如我刚才提到的,“将 bash 脚本转换为 Web 应用程序”项目实际上是在 Raspberry Pi 微型计算机上运行的。我只是在上面放了一个放大器,安装了旧的代码库,然后告诉它要做什么——没有触及任何一行代码。它产生的结果比我独自花费几周的时间要好。你可以想象未来:我们不再需要下载和安装软件,我们只需告诉人工智能“我想要什么”,它就会为你做。想要更改功能吗?添加新功能?创建一个n新的应用程序?没问题,直接说就可以了。我过去几十年积累的编程技能,包括算法、抽象和架构设计,现在只需在放大器中输入正确的单词即可完成。现在只剩下最后一步了:封装所有这些“专家知识”并将其交给人工智能。之后,即使是没有编程经验的人也可以根据自己的需求随时使用AI来开发软件。 当不再需要人“编程”时我们该怎么办?我不得不承认,这对我个人来说是一场“生存危机”。外界对我身份的理解很大一部分是“程序员”。以前,我总觉得编程就像“魔法”:只要写出正确的“咒语”(代码),我就能召唤机器完成奇迹——这也是我的“职业超能力”。但现在,人人都能使用“魔法”,我的“超能力”一下子就变成了“日常技能”。我可以吗难以在行业立足?同时,我的专业技能也给人一种即将成为“遗产”的感觉。我们都希望我们所做的事情能够持续一生,但现在很明显,我职业生涯的遗产将是一种愿景——就像铁匠、抄写员、宫廷小丑一样。但科技这次做出的“移除”或许比以往更加特别。过去,被技术取代的人们能够将自己的领域知识和解决问题的能力转移到新的领域进行升级:铁匠建造了钢铁厂,抄写员成为了印刷工,小丑成为了喜剧演员。他们仍然解决问题,只是改变工具。但这一次,当“解决问题”本身可以自动化时,我们能走向何方?我的同事布莱恩·克拉巴赫(Brian Krabach)六个月前也有类似的想法,但当时我并不相信。我认为人工智能会取代一些编程工作,而且我们在很长一段时间内仍然需要程序员来指导人工智能。但放大器每天都在证明:我的时机错了。布莱恩·克拉巴赫 (Brian Krabach) 则更为乐观。他说,“更换程序员”让他能够做他一直想做的事情——更快地解决更大的问题。但我并不像他那么乐观。对我来说,“认识问题并提出解决方案”并不困难。我在许多创新实验室的经验告诉我,这些技能也是“自动过程”。有人可能会说:“机器不知道人面临什么问题!”是的,但也许我们会允许机器编写“知道要解决什么问题”的软件。想到这里,我真松了口气——也许,真正的大问题是可以解决的:能源、医疗、教育、社会管理……但从现在开始,我的贡献将不再来自于我双手敲击键盘;而是来自于我的双手。我几十年来磨练出来的技能不再属于某个特定的专业群体,而是属于所有能够使用计算能力的人。 特别声明:本文由t上传发表网易自媒体平台“网易号”作者,仅代表作者观点。网易仅提供信息发布平台。 注:以上内容(包括图片和视频,如有)由网易HAO用户上传发布,网易HAO为社交媒体平台,仅提供信息存储服务。
下一篇:没有了