共计 2922 个字符,预计需要花费 8 分钟才能阅读完成。
编程作为职业已经走到了尽头?只需每月支付 20 美元,使用 AI 编程服务,让 AI 完成所有工作?事实并非如此。尽管像微软这样的科技公司正在大规模裁员,但 AI 并不能、也不会成为代码的唯一生产者。实际上,有许多编程任务是 AI 无法胜任的。
本文将重点介绍九种不应使用 AI 的编程任务,并在最后展示第十个不应总是使用 AI 进行编程的额外原因。
1. 复杂系统和高层设计
生成式 AI 系统本质上是超级智能的自动完成工具。它们可以建议语法、编写代码,并且表现得好像理解概念。但所有这些都基于概率算法和从网络上抓取的大量信息。上下文智能并不是它们的强项。
如果需要生成的内容需要对系统交互有深刻理解、需要经验来做出权衡决策、了解什么适合独特需求,并考虑如何与目标和约束条件相匹配,那么不要依赖 AI。
2. 专有代码库和迁移
大型语言模型是在公共代码库和(令人不寒而栗的)Stack Overflow 上训练的。是的,一些最令人惊叹的代码库在公共代码库中,但它们不是你的代码。你和你的团队了解你的代码。AI 只能根据它对其他人代码的了解来推断你的代码。
如果让 AI 处理专有代码并要求它完成重大任务,很可能会嵌入许多看似合理但无法工作的代码。使用 AI 编写较小的代码片段可以节省大量时间,但不要将独特价值交给一台聪明的油印机。
3. 创新性新事物
如果要创建以前从未做过的算法——也许是为了给组织带来巨大的竞争优势——雇佣一位计算机科学家。不要试图让 AI 成为创新者。AI 可以让样板文件看起来很有创新性,但如果需要真正的跳出框框的思维,不要使用一个带大脑的盒子。
这不仅适用于功能性编码,也适用于设计。公平地说,AI 可以做一些出色的设计。但如果正在构建一个新游戏,可能希望自己完成大部分创意设计,然后使用 AI 来辅助繁忙的工作。
当然,许多人在生活中重复从其他人或某个古怪的播客中听到的东西。但有些人是真正有创造力的。这种创造力可以成为战略优势。虽然 AI 可以处理大量工作,但它真的无法在未知的道路上实现智力飞跃。
4. 关键安全编程和审计
不要让狐狸看守鸡舍。从根本上说,我们真的不知道 AI 会做什么或何时会失控。虽然使用 AI 扫描恶意活动是有意义的,但 AI 生成的代码仍然相当不可靠。
乔治城大学的安全与新兴技术中心 (CSET) 去年年底发布了一项基于正式测试的研究。他们发现,近一半由 AI 生成的代码片段“包含通常有影响且可能导致恶意利用的错误”。
这与我的测试结果一致。我经常测试 AI 的编码效果,就在上个月,14 个顶级 LLM 中只有 5 个通过了所有非常基本的测试。
说真的,让 AI 帮忙。但不要相信 AI 处理任何真正重要的事情。如果正在查看加密例程、管理身份验证、修补零日漏洞或类似的编码任务,让真正的人类来完成工作。
5. 需要法律或法规合规的代码
有很多法律——特别是在医疗保健和金融领域。不是律师,所以不能具体告诉你它们是什么。但如果处于受监管或诉讼频繁的行业,可能已经知道。
还有一种观点认为,不能确定基于云的 LLM 是否安全。当然,供应商可能会说你的数据没有用于训练,但真的吗?如果受 HIPAA 或 DoD 安全许可要求的约束,可能不允许与健谈的聊天机器人共享代码。
真的想把业务押在《飞出个未来》中的 Bender 写的代码上吗?是的,可能有人类会双重检查代码。但人类是会犯错的,会遗漏一些东西。
想想人性。如果认为对手会因为人为错误而对你下手,可能是对的。但如果懒得自己编写代码,把它交给已知会“幻觉”的 AI,哦——你的竞争对手会在未来大显身手。
6. 特定领域的业务逻辑
当新员工加入公司时,需要一段时间才能掌握你们的工作内容和方式,这种情况很常见吧?或者更糟的是,当两家公司合并时,双方的员工都难以理解对方的文化和业务实践?
是的,让 AI 编写关于独特业务操作的代码是失败的秘诀。请记住,AI 是在大量公共知识上训练的。让我们定义一下:公共知识是公众可能知道的任何知识。AI 是在它们可以从互联网上抓取的所有东西上训练的,无论是否获得许可。
但 AI 没有在内部业务知识、商业秘密、实践、民间传说、长期使用的变通方法等方面进行训练。使用 AI 做它擅长的事情,但不要试图说服它做它不知道如何做的事情。AI 非常讨好人,它们会尝试去做——也许永远不会告诉你刚刚部署的是捏造的垃圾。
7. 低级系统工作和性能优化
虽然 AI 可以识别需要优化的代码区域,但存在限制。AI 没有在微架构约束的非常精细的细节上进行训练,也没有经验从每一行代码中挤出一点点性能。
嵌入式系统编程、内核开发以及性能关键的 C 和 C++ 优化中的许多编码工作存在于少数专家程序员的大脑中。此外,请记住,AI 会编造。因此,它们坚持的性能改进很可能是隐藏的周期消耗,它们根本不会承认。
如果需要精细的工艺,就需要一位精细的工匠——在这种情况下,是一位非常有经验的程序员。
8. 学习练习和教育作业
如果使用 AI,是在作弊吗?是的。不是。取决于。是的,因为可能违反学术标准,并剥夺了自己关键的动手学习,这些学习使知识得以巩固。不是,因为 AI 已被证明是一个很好的帮助增强工具,特别是在助教不可用时。也许,因为这是一个仍然相当未知的领域。
哈佛大学在其精彩的 CS50 计算机科学导论课程中采取了中间立场。它提供了 CS50 鸭子(这是一个很长的故事),这是一个专门在其课程材料上训练的 AI,系统指令限制了向学生提供的信息量。因此,AI 可以帮助回答学生的合法问题,但不会为他们完成工作。
如果是学生或教育工作者,AI 是一个福音。但要小心。不要作弊,不要用它来缩短真正应该做的工作,以使教育发生。但考虑它如何帮助增强学习或帮助你跟上学生的需求。
9. 协作和人际交往
如果像对待 Slack 对话另一端的人类程序员一样对待 AI 聊天机器人,可以从这种“协作”中获得很多好处。很多,但不是全部。
在长时间无成果的对话中,人类和 AI 都会变得固执、愚蠢和令人沮丧。人类通常可以摆脱这种情况,并变得乐于助人,至少在专业环境中是这样。但一旦达到 AI 会话容量或知识的极限,它就会变成浪费时间。
最佳的人类协作是神奇的。当一个团队充满激情——一起工作,互相交流想法,解决问题,分担工作量——可以发生惊人的事情。
AI 公司声称由代理组成的劳动力可以复制这种协同作用,但与一个全速运转的团队中的其他人一起工作是无与伦比的。不仅是为了生产力(这是你得到的),也是为了工作生活质量、长期有效性,以及,是的,乐趣。
不要误会。我的一些最好的朋友是机器人。但我其他一些最好的朋友是与我有着长期、深厚和充实关系的人。此外,我从未见过一个 AI 能做出 Amontis 先生的 moussaka 或 Paula 阿姨的苹果派。
额外提示:不要将 AI 用于任何你想拥有的东西
不要将 AI 用于任何你无可争议地想要拥有的东西。如果编写代码并将其作为开源发布,这可能不是一个太大的问题。但如果编写想要拥有的专有代码,可能不想使用 AI。
在生成式 AI 的早期,我们问了一些律师,总体共识是版权取决于人类的创作。如果确保永远不会在法庭上试图保护自己对代码的权利,不要用 AI 编写代码。更多背景信息,这里是我发表的关于代码和版权的系列文章:
- 如果 ChatGPT 为你的应用生成 AI 代码,它真的属于谁?
- 如果 AI 生成的代码出现故障,谁面临最大的责任风险?