雅各布·杰克逊 (Jacob Jackson) 在大学毕业之前于 2018 年创立了 AI 编码助手 TabNine。 Jackson,一名计算机科学专业的学生,希望减少程序员可能遇到的重复性、有时无聊的任务。
“我们只是想减少人们的击键次数。没有谈论人工智能设计或编写完整的算法,”他说。
他的初创公司最终筹集了约 6000 万美元,并于 2019 年被以色列公司 Codota 收购。杰克逊继续与人工智能合作,继续在 OpenAI 实习和工作,该公司创建了 ChatGPT.
近两年,AI编码助手兴起。OpenAI 的竞争对手已经推出了广泛使用的生成式 AI 开发者工具,例如 GitHub Copilot 和 Anthropic 的 Claude。ChatGPT 使用率和人工智能编码助手的激增改变了软件开发人员的工作方式。使用人工智能编写代码还可以缩小更多入门级初级开发人员和高级开发人员之间的经验差距,因为通常需要几年的工作甚至个人项目才能升级。
“没有这样的事情。在加拿大从事开发工作 20 多年的 Nikolas Gauvreau 表示,“不再是初级开发人员了,因为人工智能基本上让每个人都超越了这一点。”
美国 2,000 名受访者中超过 97%根据 GitHub 8 月份发布的一项调查显示,巴西、德国和印度表示,他们在工作中使用了人工智能编码工具。一项对微软、埃森哲和一家匿名财富 100 强电子制造公司的数据进行分析的研究显示,生成式人工智能代码建议工具还可以将软件开发人员的生产力提高 26%。
开发人员表示,采用人工智能编码助手将加速软件工程领域的发展,而不是消除就业机会,就像计算器如何加速数学计算,尽管教师最初抗议其采用。
虽然这些工具可以提高生产力,但它们也可能会带来安全问题,从而产生更多的问题。为开发人员工作。根据斯坦福大学密码学教授 Dan Boneh 领导的 2022 年研究,使用人工智能助手的人编写的代码安全性明显低于那些无法使用这些工具的人。虽然人工智能助手可以加速编码过程,但它们可能会产生更多错误,需要人类监督者进行干预。
大多数生成式人工智能编码助手专注于自动生成完成,意味着该工具会在程序员键入时建议代码。其他语言学习模型 (LLM) 需要快速工程,然后用户可以应用人工智能建议的代码作为他们想法的起点,具体取决于他们想要解决的问题的复杂性。
在开始之前编码助手出现后,DeepAI 创始人凯文·巴拉戈纳 (Kevin Baragona) 总是会打开谷歌搜索引擎窗口,以防他需要帮助解决问题。程序员经常通过 Stack Overflow 等资源进行研究,这是一个在线社区论坛,程序员可以在其中分享他们的解决方案。自编码助手兴起以来,Stack Overflow 的流量一直在下降。
“当你编程时,每隔几分钟,这有点像当时的作弊代码,而这只是变得正常化,就像你在编程时所做的那样巴拉戈纳说:“你在编码:你经常在 Google 上搜索。”
了解不止一种编码语言,例如 JavaScript、Python 或 Ruby,可以让程序员在公司转移其业务时在就业市场上获得更大的灵活性。优先事项。然而,学习一门全新的语言需要大量的时间和学习。
现在,深度学习模型已经允许将更多的编程功能从一种语言翻译成另一种语言,使开发人员更容易切换无需快速学习编程语言。巴拉戈纳表示,这些工具让他感觉自己了解“每种编程语言,尽管我并不了解,因为人工智能将帮助我很快克服困难。”
Gauvreau 表示,人工智能编码助手赋予了他力量因为即使他可能还不知道解决方案,他也不再害怕接受更多客户。他说,去年他学习的语言数量增加了一倍,超过了他整个职业生涯的数量。
一些人不会回避编码助手,大学开发了自己的版本,帮助引导学生以另一种方式提出正确的问题,人工智能工具可以缩小技能差距。
David Malan,哈佛大学流行的 CS50 计算机科学入门课程的教授。并在 edX 上在线,帮助带头创建了该课程的 cs50.ai 聊天机器人。马兰说,人工智能程序“非常愿意回答你的任何和所有问题,但方式可能与好老师或导师希望你做的方式不一致。”
”我们的目标是真正教会学生如何思考以及如何使用我们目前拥有的和最终将在现实世界和软件应用中拥有的工具解决问题。”Malan 告诉《商业内幕》。
马兰说,人工智能编码助手尤其可以帮助课堂上的在线学生,他们可能不一定拥有教师助理的奢侈,而是拥有“身边的虚拟导师”。
虽然巴拉戈纳表示人工智能编码将成为下一代编码员的日常现实,但他认为这正在训练程序员变得更加懒惰,这可能会产生他们不知道如何解决的问题。
“你很快就会发现人工智能完成了所有工作,但它仍然存在错误,而且你根本不理解代码,因为它不是你写的,”他说。
一旦代码达到一定的复杂程度,他就会发现人工智能已经挖了一个足够深的洞,无法逃脱。
“到那时,你就实际上真的很糟糕,因为你无法理解代码,无法修复它,人工智能也无法,”他说。
微软旗下工作室的程序员被鼓励采用 Microsoft Copilot 作为一位动视暴雪承包商表示,他是一名编码助理,BI 已确认该承包商的身份,但他要求保持匿名,因为他无权接受媒体采访。尽管如此,他表示在与 Copilot 合作时需要非常具体。
“人工智能对你想要构建的东西没有愿景,因为编码实际上就像建造一座建筑物。人工智能可以建造你只是一小部分,”他告诉BI。“我们在试验中积极尝试使用 Copilot,但效果并不好。”
虽然许多开发人员选择将特定的编码任务委托给人工智能以减少工作量,但他们表示,在计算机方面建立了坚实的基础科学和软件工程将继续发挥重要作用。
软件工程师不只是编码;他们还负责编程。他们还解决问题并设计系统。在这种情况下,人类仍然有一些优势。
“当今的人工智能工具,他们不会像人类那样创建深思熟虑的架构。他们用短期思维来编码,”巴拉戈纳说。