AI要取代软件开发人员?这么大的瓜我咋不知道

125 阅读4分钟

随着 ChatGPT、Sora 等 AI 产品的问世,各行各业掀起了有关 AI 挑战的热烈讨论。在软件界,这也引发了软件工程领域对职业未来的深刻思考。AI 驱动的编程工具出现,使许多软件开发人员开始担忧自己的职业前景。这些工具能够自动生成代码、优化开发流程,甚至在某些情况下可替代人类完成编程任务。但目前来看,AI 只是工具,并非替代者,其角色和影响会因开发者所处阶段不同而异。

非开发者

对于非开发者来说,AI 工具如 ChatGPT 提供了全新的编程体验。通过对话式编程,即使是编程小白也能快速获得应用程序代码。然而,这种美好体验背后存在问题。AI 工具的训练数据来自众多项目,代码质量参差不齐。虽然代码通常能运行并完成任务,但其可靠性、可维护性、安全性和准确性难以保证。

研究表明,ChatGPT、GitHub Copilot 和 Amazon CodeWhisperer 等工具提供的代码,在约 90%的情况下能“有效”运行,但只有 30%至 65%的代码能通过单元测试,“安全”运行的概率约为 60%。AI 能输出简单代码片段,但目前尚无证据表明它能编写与普通传统应用程序一样复杂的系统。就像 ChatGPT 无法创作出连贯小说一样,AI 在软件系统编程上的局限性也很明显。

那么,AI 对于不会编码的人有何用途呢?

在许多情况下,不需要软件,但需要代码。比如有些专业人士已使用 AI 进行一次性 SQL 查询和 VBA 宏,或编写用于创建用户宣传演讲的应用程序原型以及一次性数据分析机器人等。在这些只需处理代码片段的任务中,AI 工具能出色完成工作。

初级工程师

AI 工具对新晋程序员既是福音也是挑战。ChatGPT 可为初级开发人员减轻负担,但过度依赖可能会阻碍其成长。如果开发人员习惯使用代码生成器并依赖外部反馈来发现问题,他们将难以深入理解自己的代码。在生产环境中,只有真正理解代码的人才能有效解决问题。

对于初级开发人员来说,最稳妥的做法是谨慎使用 AI 工具。可使用 AI 获取另一个视角以增进理解,例如完成一个函数后,请 AI 也编写类似函数,然后对比两者代码。目的不是获得最佳代码,而是获得不同思路。AI 就像陪伴成长的小伙伴。

高级工程师

作为高级工程师,AI 的基本技能对其已无太多价值。要回答 AI 对高级工程师的作用这个问题,需明确与 AI 的界限。在最佳情况下,AI 编写的代码只有约 50%的机会能正确执行预期功能,AI 不擅长编写代码,其优势在于速度。

AI 擅长节省时间,而你擅长设计和构建出色的应用程序。可基于已设计好的程序框架命令 AI 快速生成初版代码,在此基础上进行编辑和重构,确保代码质量和可维护性。

另外,当需涉足不熟悉的编程领域时,AI 也能提供帮助。不熟悉的语言通常需几天时间熟悉,而 AI 可快速生成代码片段,为你提供起点。在此基础上完善,可节省整体开发时间。

目前, AI 仍处于初级阶段,随着时间推移将取得显著进步,有潜力成为研发团队的得力助手。在这个由机器和人类共同塑造的时代,我们需保持开放和积极的心态,学习与 AI 合作,利用其能力增强工作效率和创新能力,共同创造更美好的未来。