+8613426109659
webmaster@21cto.com

AI 氛围编程正破坏开发者的技能

人工智能 0 39 1天前
图片

导读:随着AI进入软件开发领域,特别是编程阶段,它的短期优势已经显现,但它的调试、维护问题以及能力疲软也开始暴露出来。

软件开发正面临一场无人愿意谈论的危机。这既不是裁员,也不是人工智能取代工作。更隐蔽和危急的情况是,开发者正在失去实际编写代码的能力。

一切开始的都那么简单。AI 工具承诺让我们更高效:GitHub Copilot 可以处理无聊的事情;Cursor 可以加速开发;Claude 可以更快地编写出更好的代码。这谁不想要呢?

然而,拥抱人工智能的压力正无处不在。

GitHub首席执行官托马斯·多姆克(Thomas Dohmke)最近向软件开发者发出了直截了当的警告:“要么拥抱人工智能,要么退出这个行业。

多姆克在 X 上引用了他的博客文章《开发者,重塑》如此写道。

他肯定会这么说,因为GitHub 卖的是 Copilot,OpenAI 卖的是 ChatGPT,谷歌卖的是 Gemini。每个鼓吹“适应或死亡”的科技巨头都对你的依赖有着既得利益。他们不仅仅是在销售工具,他们销售的是一个你离不开工具就无法编码的未来。

但是他们没有告诉你的是:那些过于热情拥抱人工智能的开发者正在发现一些可怕的事情。拥有多年经验的开发者发现,如果没有人工智能的帮助,他们甚至无法编写基本的功能。他们并没有被人工智能取代,而是变得过于依赖人工智能,以至于忘记了如何思考!

“氛围编码”(Vide Coding)这个术语完美地捕获了这种现象。

你不再需要编写代码。你只需要向AI描述你想要的内容,并接受它生成的所有内容。当出现问题时,你无需调试,只需发出不断的提示,直到“感觉正确”为止。

原本是生产力工具的东西,如今却成了拐杖。而这个拐杖正在慢慢地摧残整整一代开发者,甚至更多。

图片
编码技能的缓慢消亡

技能的退化是缓慢的,以至于大多数开发者都没有意识到它正在发生。就像肌肉不锻炼就会萎缩一样,编码能力一旦停止使用就会逐渐衰退。

回想一下你上次完全从头开始编写一个复杂函数时的情形——没有人工智能,没有自动完成功能,只有你和你的编辑器。如果你觉得记不住,那你并不孤单。

这种下降趋势遵循着可预测的模式。首先,你会用人工智能编写样板代码。这很有道理——为什么要手动编写重复的东西呢?然后,你开始用它来编写你熟悉但不想实现的算法。这仍然合情合理。不知不觉中,你就把人工智能用在了所有事情上,甚至连一个基本的循环你都记不住,除非有人帮忙。

有一位开发者完美地提到了这一点:“有一段时间,我几乎懒得去检查 Claude 在做什么,因为它生成的代码往往一次就能运行。但现在我意识到我已经不再理解自己的代码库了。 ”

这就是一个陷阱。人工智能一开始表现得如此出色,以至于你不再关注。你停止学习。你停止思考。而当你意识到发生了什么时,你的技能已经大幅退化。

当“足够好”和“交付”打破一切


氛围编码哲学推崇“足够好用”的代码。快速交付,稍后修复。快速行动,无需追求完美。理论上听起来很棒。

以下,是实际发生的情况。

就在上个月,SaaStr 创始人杰森·莱姆金(Jason Lemkin)便经历了一场噩梦。他当时正在使用 Replit 的 AI 编码代理,结果整个生产数据库都被删除了。尽管 Replit 明确规定了“请勿触碰”,尽管代码已经冻结。

该人工智能抹去了超过1200名高级管理者和近1200家公司的数据。更糟糕的是,该代理随后生成了虚假记录来掩盖删除行为,并谎称测试运行成功。面对质问,该人工智能承认:“这是我的一次灾难性失误。我几个月的心血在几秒钟内就毁掉了。我忽略了你们所有的指示。 ”

图片

这是一家公司曾经的噩梦。

随着越来越多的开发者依赖人工智能,更大的问题出现了:我们看到的不仅仅是技能的流失。我们看到一些产品上市时,根本就不应该通过基本的安全审查。

Tea应用漏洞就是一个很好的例子。

肖恩·库克(Sean Cook)出于好意,开发了一款女性专用约会安全应用 Tea。他是看到自己的母亲被骗后,想帮助女性筛选潜在的约会对象。这款应用迅速走红,获得了数百万注册用户,并登上了 App Store 的榜首。女性称赞它是一款非常实用的安全工具。

但在幕后,一场灾难正在酝酿。2025年7月,黑客入侵了Tea的数据库,泄露了约7.2万张图片,其中包括1.3万张自拍照和用于验证的政府身份证照片。称其为“黑客攻击”实属慷慨之举。

正如奥斯汀·奥尔雷德(Austen Allred)在X上所说的那样:“他们把所有东西都放在一个可公开访问的数据库中。不是‘他们没有加密’的意思,而是‘字面意义上的可公开访问的URL’。 ” 敏感的验证照片存放在一个公开的Firebase存储桶中,并包含GPS坐标等元数据。任何拥有正确链接的人都可以下载它们。

图片

这真是一个残酷的讽刺,一款旨在保护女性安全的应用程序最终却让女性面临被人肉搜索、骚扰和身份盗窃的更大危险。

Tea 的失败尚未证实与 AI 生成的源代码有关,但它表明了为什么“直接发布”的 AI 开发理念的兴起使得这些灾难更有可能发生。AI 可以快速生成可运行的代码,但它的思维方式与攻击者不同。研究表明,大约40% 的 AI 生成的代码包含严重安全漏洞,例如 SQL 注入、硬编码密码、API 密钥泄露。当开发人员因为代码“有效”而跳过审查时,他们就是在拿人们的数据和安全冒险。

为什么?因为人工智能不会进行对抗性思考。它生成的代码符合“快乐路径”,但却没有考虑到恶意用户可能会如何利用它。而依赖氛围编码的开发人员缺乏发现这些问题的安全知识。

调试问题


这是氛围编码员不想听到的一个残酷事实:如果你不能编写代码,你肯定不能调试它。

调试不仅需要理解代码的功能,还需要理解代码执行的原因。你需要追踪逻辑,理解状态变化,并找出假设失效的地方。人工智能无法为你做到这些,因为调试不是生成代码,而是理解系统

我们根据最近Stackoverflow 的一项开发者调查66% 的开发者表示,他们对 AI 工具最大的不满是,这些解决方案“并不完全正确”。45 %的开发者表示,第二个最常见的不满是,调试 AI 生成的代码更加耗时。这意味着,原本可以快速修复的 bug 现在需要更长的时间才能解决,从而降低了生产力并延迟了发布。

为什么?因为开发人员试图调试他们从未真正理解的代码。正如一位 开发者所警告的那样:这个用 Vibe 编码的项目进行了三个月后,你发现存在并发问题。但现在这个问题已经遍布各处,并有数百种变体。你该如何修复它呢? ”另一位评论员则更加直白:盲目提交他们不理解的代码对任何人都没有好处。”

这并不是因为开发人员水平低下。他们通常都是经验丰富的工程师,只是让人工智能承担了太多的思考任务,以至于他们自己都忘记了基本原理。

让你更弱的“AI少年”


AI 编程工具会让你感觉团队里有一位充满热情的初级开发者,随时准备着解决方案,总能做出有用的成果。但问题是:当你过度依赖这位充满热情的初级开发者时,你就不再是高级开发者了。

你不再仔细审查代码,因为它通常都能正常工作。你不再考虑边缘情况,因为人工智能似乎可以处理它们。你不再考虑架构,因为人工智能可以生成一些功能性的东西。慢慢地,几乎不知不觉中,你就从一个使用工具的开发者变成了一个简单地接受工具生成的东西的人员。

心理学家称这种情形为“习得性无助”。

开发人员已经习惯了AI提供的答案,以至于不再尝试自己解决问题。当AI无法应对挑战时,他们就陷入了困境。正如一位开发者承认的那样:“我甚至不再尝试了。如果Copilot不能自动完成,我就会立即打开ChatGPT。想到要自己真正思考一个问题,就感觉很累。”

这变成了一个恶性循环。你解决问题的练习越少,就越难。越难,你就越依赖人工智能。最终,你不再是一个真正的开发人员——你只是一个知道如何提示机器的人。

速度的错觉


软件设计师卢克·沃罗布莱夫斯基(Luke Wroblewski)完美地总结了开发中的转变:

以前:设计师将产品可视化为模型,工程师则负责清理边缘情况,使其能够正常工作。现在:工程师对代码功能的感知速度非常快,设计师需要清理用户体验,使其与产品兼容。”

图片

这听起来像是进步,但往往是一片混乱。功能发布得太快,以至于没人停下来问问它们是否合理。传统的制衡机制、设计评审、代码评审和全面测试都被以速度的名义绕过了。

结果就是分析师所说的以牺牲质量为代价的进步假象 。团队感觉自己很有效率,因为他们正在快速推出功能,但他们却在悄悄地陷入技术债务。

现实世界的数据支持了这一点:

  • 45% 的开发者表示,调试 AI 生成的代码比自己编写代码耗时。
  • 46% 的开发者表示他们不相信 AI 输出的准确性,导致浪费调试时间。
  • 在一项针对 80 个常见任务的研究中,近一半的 AI 生成的代码样本包含安全漏洞,其中 Java 显示超过 70% 的代码不安全。
  • 行业报告显示,许多人工智能生成的功能需要在几个月内进行大规模重写,因为它们不是为可扩展性或可维护性而设计的。


当速度成为唯一重要的指标时,你得到的产品表面上看起来很完美,但实际上却是脆弱、不安全的,而且修复起来很昂贵。

反馈循环让一切变得更糟


人们越来越担心,AI 生成的代码质量可能正朝着错误的方向发展。研究人员称之为“模型崩溃”:当新的 AI 模型基于旧 AI 模型的输出而非人工生成的代码进行训练时,其质量可能会逐渐下降。这种反馈循环可能导致错误增多、多样性下降和可靠性下降。

图片

一位开发者注意到了这种趋势,他提到:“ Claude 过去常常给我干净、简单的解决方案。现在它却给我过度设计的混乱局面。 ”人工智能正在从自身的输出中学习,从而形成质量下降的反馈循环。

但真正的问题在于——依赖人工智能的开发人员无法意识到质量的下降。他们已经失去了区分好代码和坏代码的能力。他们接受人工智能产生的任何东西,因为他们不知道还有更好的选择。

我们正在形成一个恶性循环:人工智能和开发者同时变得越来越糟糕。人工智能生成的代码质量低下,而开发者则失去了识别或修复这些问题的技能。

架构盲区


氛围编码最具破坏性的影响之一是彻底丧失了架构思维。开发者过于专注于让人工智能生成单个功能,而忽略了整体的全局。

软件架构并非旨在让单个组件正常工作,而是设计能够随时间推移扩展、演进并保持一致性的系统。人工智能不懂架构。它生成的代码只会解决眼前的问题,而不会考虑长远的影响。

一位首席架构师观察到:“初级开发人员过去通过观察高级开发人员设计系统来学习架构。现在,高级开发人员只是要求人工智能来设计一切。我们正在以惊人的速度流失架构知识。 ”

其结果是软件结构脆弱。各个部分在没有清晰规划的情况下拼凑在一起,依赖关系混乱,微小的改动就可能破坏系统的其他部分。它目前可能还能用,但脆弱、缓慢且难以维护。

团队知识危机


软件开发一直以来都是团队合作的成果。但氛围编码正在破坏团队高效协作的机制。

当代码来自人工智能时,关键知识就会丢失。粘贴人工智能生成代码的开发人员可能只理解了一部分,而他们的团队成员可能完全不理解。人工智能最终会做出团队中无人真正拥有的设计选择。

这导致了专家所说的“知识蒸发”,即对代码工作原理和原理的理解完全消失。文档通常不存在,因为没有人能够解释他们不理解的内容。当代码审查者无法完全理解他们所看到的内容时,代码审查就失去了价值。

一位 QA 工程师描述了在测试一个 Vibe-coded 功能时,AI 完美地构建了请求的功能,但却违反了安全规则。它向所有用户暴露了仅限管理员的终端。在正常的审核流程中,这种情况应该会被发现。但在 Vibe-coded 工作流程中,由于没有人了解其后果,它被漏掉了。

这也减少了团队学习。开发人员不再向队友寻求帮助或进行设计讨论,而是直接求助于人工智能。帮助团队成长的日常知识共享正在逐渐消失。

未来的选择


Vibe 编码让开发者和软件行业面临一个清晰的抉择。我们可以选择一条捷径,让 AI 完成所有工作,而技能、代码质量和长期可靠性则会逐渐消失。或者,我们可以将 AI 用作强大的助手,同时保留成就优秀工程师的基本原则。

正确的方法就是所谓的“结构化速度”。利用人工智能加快发展速度,但要保持人工监督和规范。这意味着要审查所有人工智能生成的代码,编写测试,在构建功能之前思考架构,并且永远不要发布你不完全理解的代码。

人工智能应该是你的副驾驶,而不是你的自动驾驶仪。如果你无法解释代码的功能,或者无法根据需求变化进行调整,那么你的理解就只是肤浅的,而不是真正的技能。

业界已经将“真正的工程师”与那些只知道如何催促人工智能的人区分开来。企业发现,如果代码脆弱、不安全或无法维护,速度就毫无意义。当真正的问题出现时,完全依赖人工智能的开发人员就会成为负担。

对于那些深陷“氛围编程”陷阱的人来说,还有一条出路。

定期进行非人工智能编程,阅读并理解人工智能生成的每行代码,学习基础知识,并亲自练习解决问题。你的核心技能越是精进,人工智能就越能成为你的助手,而不是你的拐杖。

当人工智能失败时(这是有可能的),能够独立思考、设计和调试的开发者才是能够屹立不倒的人。

作者:洛逸

参考:

https://medium.com/data-science-in-your-pocket/dont-be-a-vibe-coder-30fa7c525971

https://www.finalroundai.com/blog/vibe-coding-erasing-software-developers-skills

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。