AI浪潮下,程序员会被替代吗?

昨天Google发布了了其最新大模型Gemini,感兴趣的可以直接去搜索Gemini演示视频,很强大。根据宣传其各项数据都比GPT-4全面领先,而ChatGPT给我们带来的震撼这里就不再赘述。

今天我们不讨论AI怎么用,聊一聊AI时代还需要程序员吗?

一个业务实验

让我们做一个思想实验:如果互联网是一个新事物。想象一下,您可以在互联网上找到您想要的任何内容,但这样做很复杂,并且需要专业知识和编程能力。因此,您组建了搜索团队( Search teams),他们是互联网搜索方面的专家。

他们收到公司其他人的搜索请求,我们称他们为请求者(Requestor)。每次搜索有时需要几天甚至几周的时间,团队花时间与请求者讨论并了解需要哪些信息以及原因,然后他们需要找出要查阅的来源,编写精心设计的查询,处理错误,组织、验证和过滤结果,然后将其呈现结果。对于更复杂的搜索,在团队得出最终搜索结果之前,需要对搜索结果进行多次迭代的反馈循环。每个这样的循环可能需要几天的时间,因此最终结果可能需要几周的时间。

在此模型中,搜索团队本质上是请求者和互联网(Internet)之间的手动翻译层(Manual Translation Layer)。简而言之,请求者讲的是人类语言,而互联网讲的是技术语言,因此需要有人进行翻译------即讲两种语言的高薪专家。

现在想象一下,如果搜索变得越来越容易,逐渐接近我们今天的情况------任何人都可以通过Google或百度等搜索引擎搜索互联网并在几秒钟内获得有用的结果,而无需任何专业知识。当然,查询可能并不完美,最初的答案可能并不完全是您想要的。但反馈循环只有几秒钟长,因此您可以不断调整查询并重试,直到找到所需的内容。听起来很熟悉吧?这就是我们现在都生活的世界。

那个假设的搜索团队( Search teams)去了哪里?他们走了!他们所做的所有工作都已由软件自动化,不需要他们了。简而言之,如果互联网讲人类语言,那么就不再需要手动翻译层。从技术上讲,翻译层仍然在幕后,但它是完全自动化的并且速度快如闪电,因此从请求者的角度来看,他不存在。

什么是程序员?

现在将"搜索团队"一词替换为"开发团队(或者说程序员)",并将"互联网"替换为"代码"。

这与搜索团队的示例非常相似。

再次,我使用"请求者(Requestor)"作为一个抽象术语,指的是那些想要从团队中产出需求的人,例如客户、用户、产品经理/所有者和其他利益相关者。您还可以将"请求者"视为雇用团队并支付其工资的人,因此可以决定团队应该做什么。

现在想一想。开发团队与人类(我们称之为请求者)交谈,以了解需要开发什么以及为什么。然后他们转身编写代码来实现这一目标。理想情况下,团队会迭代地执行此操作,因此当团队迭代代码并寻求反馈时,会出现一些来回的情况。

程序员是希望解决问题的人(需求方)和解决问题的代码(实现方)之间的手动翻译层。

我们刚经历过一次的互联网革命,面向Google的编程

当互联网出现时,软件开发发生了根本性的变化。借助 Google、YouTube、Reddit、Github、云服务等产品或工具,开发者实质上获得了超能力。

要解决技术问题,您不再需要在该特定领域拥有多年的专业经验 - 您可以通过谷歌搜索您的问题,并立即找到无数的专家级知识、代码示例、有用的视频等。几乎可以解决您想要解决的任何问题,将会有一个框架,其中包含免费的开源代码库,您只需下载即可。需要一个日志框架吗?一个网络框架?身份验证框架?自动生成图像?文本格式设置?总是有它的框架,或者一个库,或者至少是可复制粘贴的代码示例。

我认为现在对于程序员来说最重要的技能之一是能够搜索信息,查找和使用现有的工具和框架,并弄清楚它们如何适应大局来解决实际的业务需求。现在开发更多的是沟通和集成,而不是实际编写代码,因为所有基本问题(例如密码认证、文件解析等)已经大部分解决,不需要重新发明轮子。

如果我们回到 90 年代初,当互联网开始流行时,您可能会(有充分的理由)推测开发人员将变得大部分多余。如果这样的工具可以使开发人员的工作效率提高 10 倍甚至100倍,那么您需要的开发人员就会减少,对吗?

事实证明,情况恰恰相反。软件行业呈现爆炸式增长。截至 2022 年,全球约有 2800 万软件开发人员,并且这一数字一直在持续增长。

不要说"我们的开发人员的生产力提高了 10 倍,我们可以解雇其中的 90%!",您可以说"我们的开发人员的生产力提高了 10 倍,因此我们可以用相同数量的人员生产 10 倍多的产品和功能!"。随着每个开发人员效率的提高,越来越多的公司发现构建软件在经济上是可行的,从而增加了对软件开发人员的需求。这似乎就是发生的事情。但这种情况会一直发生吗? 在AI时代会持续发生吗?

AI会取代程序员吗?

人工智能时代的开发团队会发生什么?是否会像假设的搜索团队一样,整个职业变得多余,因为搜索引擎可以自动完成这项工作?还是会像互联网和开源的兴起一样,让开发者的生产力更高,实际上也增加了对开发者的需求?

我不知道,其他人也不知道。但我会根据我作为软件开发人员的经验以及迄今为止使用 GPT 的经验做出有根据的猜测。说起来感觉很奇怪,但我认为不太可能需要人类来编写代码,除非在一些非常小众的情况下。

这分为几个阶段,但是这个阶段的发生可能比预期的要快得多,或许前两三个阶段可能会在几年内完成。

第1阶段---AI辅助开发团队

当前我们正处在该阶段的早期。这是蜜月期。

开发团队越来越多地使用 GPT 和类似工具作为助手。类似于他们使用谷歌搜索答案和示例的方式。人工智能本身不会接触代码,但会在被询问时提供建议。

Github Copilot 就是一个很好的例子,它利用了这样一个事实:开发人员编写的大部分代码只是其他人编写了数十万次的代码的微小变化,几乎完全相同。Copilot 为开发人员腾出了时间来专注于有趣、独特的部分。

这是 Copilot 昨天为我编写的一些代码的示例。我正在使用 Node js 编写一个 Discord 机器人。我从未使用过 Discord API,而且我的 JavaScript 技能有点生疏。但这并不重要。我开始输入第一行,Github Copilot明白我的意思并提出完成它。然后我开始写第二行,它完成了整个功能 - 包括我可能会错过的"不要回应自己"部分。我估计我用了大约一半的时间就完成了Discord 的机器人,并且大部分代码是由 Copilot 编写的。代码并不完美,需要进行一些小的清理,但生产力的提高是非常明显的。

随着时间的推移,开发人员将学习人工智能的特点,并开始赋予它更高级别的任务,例如"让 UI 不再混乱"或"查找并修复该系统中的所有安全漏洞和弱点"。人工智能将越来越多地了解团队的背景和产品,因此能够解决更高级别的问题。

然而,要求人工智能写代码,然后将该代码手动复制到 IDE 中并测试它是否有效。一段时间后,这开始感觉效率很低。反之亦然,将代码从 IDE 复制到聊天窗口并要求 AI 修复/改进它,然后将其复制回来。感觉有点像用细吸管喝浓浓的奶昔。为什么不让人工智能直接在生产代码中工作并采取主动?

这将迎来第二阶段。我认为这会很快发生。

第 2 阶段 - AI 作为开发团队成员

AI 现在是团队的成员。它可能有一个名字。我们就叫她Jenny吧。Jenny 拥有对代码库的完全访问权限、进行提交和 PR 以及审查 PR。不是说"嘿 Jenny,这里有一些代码,如果你发现任何错误请告诉我",而是与其他开发人员一起参加每日站会。她可以说话(用任何语言!)。有人说"嘿,Jenny,整个登录流程似乎有很多错误并且不稳定,你能看一下吗?"。"当然,"她说。8秒后有一个PR等待审核。

有人说"Jenny,如果我们选择 B 选项,那会怎么样?"。6 秒后,Jenny 在分支上实现了选项 B,完成了单元测试和干净、可读的代码。几秒钟后,它就在测试环境中启动并运行了。当她说"这是第一个版本,你觉得怎么样?它不会比选项 A 更糟糕吧?"时,她听起来有点沾沾自喜。

第 3 阶段 - AI作为主要团队

随着时间的推移,人工智能将变得更加先进。它将更多地了解您的产品和环境,因此它将能够做出更好的决策并编写更好的代码,并且使用人工智能的人们将学会越来越信任它。

配备此类人工智能的团队可能非常小,因为人工智能可以完成大部分工作。事实上,在许多情况下,单人与人工智能配对可能就足够了。就像现在工厂里一个人看守10台自动机器一样。

其他人都被解雇了吗?不必要。也许经历这一转变的公司将扩大业务并生产更多产品。您可能拥有一群较小的团队或团队,每个团队都开发不同的产品,而不是由一个大型开发团队开发一种产品。

这消除了拥有一个大团队所涉及的大部分协调成本。基本上没有会议。每当您需要与人工智能交谈时,只需与它交谈即可。当然,仍然需要与需求方和其他利益相关者举行会议,例如迭代计划或待办事项细化或设计研讨会。但团队内部会议基本上完全消失,取而代之的是按需沟通。

我认为这个阶段会比前两个阶段长一点,而且会因公司、国家、行业而异。有些团队会很快采用人类+人工智能配对模式,而另一些团队则需要更长的时间,可能是因为他们犹豫不决,也可能是因为他们没有面临太多竞争,可以承受降低效率的后果。劳动法也可能会减缓这一阶段(这可能是一件好事!)。

第 4 阶段 - 没有开发团队?

现在我们进入更具推测性的部分。这是一个假设。第四阶段的一个相当大的跳跃,它可能会由少数早期采用者公司开创。一路上可能会出现一些意外。但一旦这些公司证明它可以发挥作用,无开发团队的方法可能会很快传播。

为什么第三阶段需要人类开发人员?因为人工智能有时需要一些监督。有时它会提出没有意义的愚蠢解决方案,因此人类开发人员需要检查代码(至少是最重要的部分),有时还要进行更正。AI可以做什么类型的工作?你应该如何表达或提示,让人工智能做你想做的事?如何训练人工智能?你如何应对偏见?这些是人类开发人员应该知道的事情。

然而,随着时间的推移,人工智能需要的监督将越来越少,渐渐地,情况会开始看起来像这样:

与人类开发人员一样,人工智能很少会在第一次尝试时就提出最佳解决方案。但每次迭代只需要几秒钟,而不是几天、几周或几个月。因此,反馈循环的绝对速度将使请求者能够在更短的时间内获得更好的产品,而无需任何人类开发人员。

阶段 5 - 没有源代码?

在第四阶段,人工智能正在编写所有代码。它将与请求者和其他利益相关者讨论设计,但实际编码完全由人工智能完成。

可是,人工智能到底在写什么?什么是源代码?源代码也是一种人类语言,尤其是像 C# 或 Java 这样的高级语言。你本质上是用更结构化的英语输入句子来告诉计算机要做什么。

但是当计算机运行该程序时,它不使用源代码。源代码被编译为紧凑且高效的机器代码,本质上是 1 和 0,机器可以直接运行。代码只是一个中间步骤,本身就是一个翻译层,人类可以在其中表达他们希望计算机执行的操作。

第五阶段听起来可能是一个冒险的举动,特别是对于早期采用者来说,因为你将自己完全置于人工智能的摆布之下。例如,它需要一种非常严格的安全方法。如果有人黑了你的人工智能,或者它决定不再为你工作怎么办?你现在没有源代码,你的系统将很难维护。

这些是未来的一个推测,但是似乎是可行的。

人类程序员去哪了?

这是多年前机械化的一个可能的例子。延续这一趋势,我们可以想象下一步挖掘机将实现无人驾驶,因此我们不再是每台挖掘机配备一名驾驶员,而是由一名主管负责监视 10 多台自动挖掘机。稍后某个时候,也许就不再需要主管了。

每当出现一些新技术,例如印刷机、电力或蒸汽机时,一些工作就会消失,而新的工作就会被创造出来。新的工作可能更合格、薪水更高,但在短期内,一些人会看到他们的工作消失,这会受到伤害,直到他们找到新的工作或职业。

看上面的漫画。如果你能消灭挖掘机,并说"从现在开始挖掘机是非法的,一切都必须用铲子挖"......这会让世界变得更美好吗?

我们曾经有一个职业叫"计算机"。

是的,一个真正的职业。

维基百科描述:

"计算机"一词从 17 世纪初开始使用(第一个已知的书面参考文献可以追溯到 1613 年)

像不像《三体》中的人形计算机?

那份工作当然早已不复存在了。你的洗衣机的计算能力可能比 1000 台 24/7 工作的人类计算机还要强大。如果我们要求所有计算都手动完成,世界会变得更好吗?我对此表示怀疑。

所以,我认为从长远来看,大多数软件开发人员将需要做出某种职业转变。最先受到影响的将是那些花费大部分时间编写代码的人。最后受影响的将是那些与用户密切合作的人,例如用户研究人员,因为大多数用户和利益相关者可能更喜欢人际接触和建立关系方面。一些领域仍然需要人类开发人员,但这个圈子将不断缩小。

作为程序员的建议

事情发展得如此之快,以至于无法预测未来。

但如果您是一名开发人员,我至少有一个具体的建议:学习AI技术。

保持好奇心和开放的心态。玩玩它。这可以很有趣!

让我想起前几天在 YouTube 上看到的一条有趣的评论:

没有人确切知道会发生什么,如果整个人工智能会导致乌托邦或反乌托邦,或者两者的混合。但软件开发人员的工作肯定会以这样或那样的方式发生变化,而且变化的速度可能比您预期的要快,因此我希望本文能够激励您掌握这一点,而不是感到惊讶。

AI或许不会取代程序员,但是可见的未来会AI的程序员肯定是能够取代不会AI的程序员的!

由KodeLab整理分享,内容有部分删减修改,原文链接Are developers needed in the age of AI?

相关推荐
春末的南方城市9 小时前
FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!
人工智能·计算机视觉·stable diffusion·aigc·图像生成
我算是程序猿13 小时前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
哪 吒14 小时前
吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
人工智能·ai·自然语言处理·chatgpt·aigc
AI绘画君17 小时前
Stable Diffusion绘画 | AI 图片智能扩充,超越PS扩图的AI扩图功能(附安装包)
人工智能·ai作画·stable diffusion·aigc·ai绘画·ai扩图
我是陈泽17 小时前
一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码
开发语言·python·程序员·编程·python教程·python学习·python教学
乔代码嘚20 小时前
AI2.0时代,普通小白如何通过AI月入30万
人工智能·stable diffusion·aigc
XiaoLiuLB21 小时前
ChatGPT Canvas:交互式对话编辑器
人工智能·自然语言处理·chatgpt·编辑器·aigc
肖哥弹架构2 天前
Spring 全家桶使用教程
java·后端·程序员
学习前端的小z2 天前
【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
人工智能·chatgpt·aigc
wgggfiy3 天前
chatgpt学术科研prompt模板有哪些?chatgpt的学术prompt有哪些?学术gpt,学术科研
论文阅读·人工智能·gpt·chatgpt·prompt·aigc