人工智能编码工具意味着不再有初级软件开发人员
2024-11-06 18:50

人工智能编码工具意味着不再有初级软件开发人员

  

  

  像GitHub Copilot这样的人工智能编码工具已经改变了软件开发和生产力。

  人工智能助手弥补了经验差距,尽管它们可能会导致不那么安全、容易出错的代码。

  软件工程技能,比如为代码创建智能架构,仍然是相关的。

  感谢您的报名!转到时事通讯偏好

  雅各布·杰克逊在大学毕业之前,于2018年创立了人工智能编码助手TabNine。Jackson是一名计算机科学专业的学生,他希望减少程序员可能遇到的重复的、有时是无聊的任务。

  “我们只是想节省人们的按键次数。没有关于人工智能设计或编写完整算法的讨论,”他说。

  他的创业公司最终筹集了约6000万美元,并于2019年被以色列公司Codota收购。杰克逊继续与人工智能打交道,继续在OpenAI实习和工作,这家公司开发了ChatGPT。

  在过去的两年里,人工智能编码助理出现了蓬勃发展。OpenAI的竞争对手已经推出了广泛使用的生成式AI开发工具,如GitHub Copilot和Anthropic的Claude。ChatGPT的使用和人工智能编码助手的激增改变了软件开发人员的工作方式。使用人工智能编写代码还可以缩小初级开发人员和高级开发人员之间的经验差距,因为这通常需要几年的工作甚至个人项目才能升级。

  在加拿大做了20多年开发人员的尼古拉斯·高夫罗(Nikolas Gauvreau)说:“不再有初级开发人员这种事了,因为人工智能基本上把每个人都提升到了更高的水平。”

  根据GitHub 8月份发布的一项调查,在美国、巴西、德国和印度的2000名受访者中,超过97%的人表示他们在工作中使用过人工智能编码工具。根据一项分析了微软、埃森哲和一家财富100强电子制造公司数据的研究,生成式人工智能代码建议工具还可以将软件开发人员的生产力提高26%。

  开发人员表示,采用人工智能编码助手将加速软件工程领域的发展,而不是减少工作岗位,就像计算器加速数学计算一样,尽管教师最初反对采用计算器。

  虽然这些工具可以提高生产力,但它们也可能引入安全问题,给开发人员带来更多的工作。根据斯坦福大学密码学教授Dan Boneh在2022年领导的一项研究,使用人工智能助手的人编写的代码的安全性明显低于没有使用这些工具的人。虽然人工智能助手可以加速编码过程,但它们可能会产生更多的错误,需要人类监督者进行干预。

  大多数生成式人工智能编码助手都专注于自动完成,这意味着该工具会根据程序员的类型建议代码。其他语言学习模型(llm)需要快速工程,用户可以根据他们想要解决的问题的复杂性,将人工智能建议的代码作为他们想法的起点。

  在编程助手出现之前,DeepAI的创始人凯文·巴拉戈纳(Kevin Baragona)总是打开一个谷歌搜索引擎窗口,以防需要帮助解决问题。程序员经常从Stack Overflow这样的资源上进行研究,Stack Overflow是一个在线社区论坛,程序员可以在那里分享他们的解决方案。自从编程助理兴起以来,Stack Overflow的流量有所下降。

  巴拉戈纳说:“当你在编程的时候,每隔几分钟,这就有点像作弊代码,而当你在编程的时候,这就变得常态化了:你会经常谷歌。”

  掌握一门以上的编程语言,如Javascript、Python或Ruby,当公司改变他们的优先级时,程序员在就业市场上会更灵活。然而,学习一门全新的语言需要大量的时间和学习。

  现在,深度学习模型允许将更多的编程功能从一种语言翻译成另一种语言,使开发人员更容易在编程语言之间切换,而不必快速学习它们。巴拉戈纳说,这些工具让他觉得自己知道“每一种编程语言,尽管我不懂,因为人工智能会帮助我很快克服困难。”

  高弗罗说,人工智能编码助手给了他力量,因为他不那么害怕接受更多的客户,即使他可能还不知道解决方案。他说,去年他学习的语言数量增加了一倍,比他整个职业生涯学的语言都多。

  一些大学没有回避编码助手,而是开发了自己的版本,帮助引导学生提出正确的问题——这是人工智能工具缩小技能差距的另一种方式。

  David Malan教授是哈佛大学(Harvard University)颇受欢迎的CS50计算机科学入门课程以及edX在线课程的负责人,他帮助率先创建了CS50课程。这门课的Ai聊天机器人。马兰说,人工智能程序“非常愿意回答你的任何问题,但不是以一种可能与好老师或导师希望你做的一致的方式。”

  马兰告诉《商业内幕》:“我们的目标是真正教会学生如何思考,如何用我们目前拥有的工具解决问题,当涉及到现实世界和软件应用时,我们最终会拥有这些工具。”

  马兰说,人工智能编程助手尤其可以帮助课堂上的在线学生,他们不一定能享受到老师助理的奢侈,但他们身边有一个“虚拟导师”。

  虽然巴拉戈纳表示,人工智能编程将成为下一代程序员的日常生活,但他认为,这将使程序员变得更懒,这可能会产生他们不知道如何解决的问题。

  他说:“你很快就会发现,人工智能完成了所有的工作,但它仍然存在漏洞,你根本不理解代码,因为它不是你写的。”

  一旦代码达到一定程度的复杂性,他就会发现AI挖了一个深到无法脱身的洞。

  他说:“到那个时候,你就真的完蛋了,因为你无法理解代码,无法修复它,人工智能也不行。”

  据动视暴雪的一名承包商称,微软鼓励工作室的程序员采用微软Copilot作为编码助手。该承包商的身份已被BI证实,但由于无权向媒体发表言论,他要求保持匿名。不过,他说,他在与Copilot合作时需要非常具体。

  “人工智能不知道你要做什么,因为编程就像盖房子一样。人工智能可以帮你组装一小块,”他告诉商业内幕网。“我们在试验中积极尝试使用副驾驶,但效果并不好。”

  虽然许多开发人员选择将特定的编码任务委托给人工智能来减少工作量,但他们表示,在计算机科学和软件工程方面建立坚实的基础将继续具有重要意义。

  软件工程师不只是写代码;他们还解决问题和设计系统。在这种情况下,人类仍然有一些优势。

  “今天的人工智能工具,它们不能像人类那样创造出深思熟虑的架构。他们有点以短期思维编码,”巴拉戈纳说。

本内容为作者翻译自英文材料或转自网络,不代表本站立场,未经允许不得转载
如对本稿件有异议或投诉,请联系本站
想要了解世界的人,都在 九九叭

相关推荐