人工智能并没有夺走你的工作,但它确实值得你关注!点击这里了解为什么以及如何让开发者使用人工智能。
译自 AI for Developers: How Can Programmers Use Artificial Intelligence? 。
不,人工智能不会抢走你的工作。
人工智能(AI)、机器学习(ML)和自然语言处理(NLP)正在改变我们做每一件事的格局。问题就在这里:人工智能会对你的工作产生负面影响吗?如果头条新闻预示着未来的趋势,作为一名软件开发人员的你,可能会感到紧张。但是,让我们暂停一下,因为这个话题并非非黑即白。在适当的环境下,开发者可以利用人工智能,这可能是一个好事,不,是一个伟大的事情。
在本文中,我们将讨论:
- 为什么机器学习算法不会完全接管软件开发生命周期。
- 为什么以及如何使用人工智能辅助代码。
- 如何利用人工智能驱动的工具来获得优势。
- 一些你可能感兴趣的人工智能代码编写工具和其他工具的例子。
让我们开始吧!
这是阻止我们进入下一个章节的最大担忧之一。多年来,已经有关于机器人夺走我们工作的故事和恐惧。拉斯维加斯有机器人调配和服务饮料。在德克萨斯州,我们看到了第一个由机器人提供服务的麦当劳。在亚马逊 Go 商店,你可以购物而不需要扫描任何东西,甚至不需要和其他人交谈。
这对我们技术人员意味着什么?人工智能难道不会使开发者过时吗?我的意思是...看看谷歌的自动完成。
天啊。但是等等。
首先,让我们看看可能不可避免的真相:人工智能可能不会消失。自然语言处理和大型语言模型只会变得更加精明。普华永道(PwC)的一项最新研究表明,到 2030 年,人工智能市场可以为全球经济增加 15.7 万亿美元,到 2030 年,人工智能可能使本地经济 GDP 增长高达 26%。
不要误会:你的雇主很有可能正在研究生成式人工智能,如果他们还没有要求你开始工作的话!事实上,64% 的企业认为人工智能会提高他们的生产力。 60% 期望人工智能能促进销售。他们也希望它能帮助他们避免更多错误(48%),节省金钱(59%)和精简流程(42%)。
看看谷歌搜索词“人工智能工具(AI tools)”的趋势:
所有这些都是在说,如果你还没有作为开发者使用人工智能,那么你很快就会使用它,或者你应该使用它。
也就是说,要知道人工智能不是替代品。它是补充。它完成或增强整体。的确,人工智能有其局限性。(我们马上会讨论这个!)
因此,人工智能根本无法取代开发者。相反,人工智能允许开发者专注于他们擅长的事情——构建和交付——而不是陷入重复的任务中。
我们可以听到你说:“我很好,我不需要人工智能。”保留这个想法,让我们来谈谈这个问题。潮流正在转变,你可能希望与之一起前进,而不是与之抗争。这是理由。
开发人员负责大量痛苦重复和单调的工作,如测试和调试。首先编写代码本身也可能非常乏味。
根据来源的不同,开发人员可能将近一半的开发时间花在调试上。拿你年收入的一半,乘以你团队中开发人员的数量,你就会开始了解你的公司仅用于解决错误所花费的时间和金钱。
现在,想象一下人工智能可以为你完成大部分这些工作。是的,我们正在谈论自动代码审查、单元测试、代码生成以及可能成为巨大时间杀手的其他重复任务的自动实现。
这项技术可以潜在地完成大量与代码完成相关的繁重工作。想象一下,如果可以专注于通常没有时间完成的项目,会是什么样子。就像 Simon Willison —— Datasette 的创建者和 Django 的联合创建者 —— 所说的那样,这项技术允许你更具雄心。
这就是在软件开发中使用人工智能工具的力量。
人类在某些方面优于技术,这是毋庸置疑的,在其他情况下,情况也确实如此。
如果你完全手动编写代码片段,它就容易出错。如果你手动审核现有代码,它也容易出错。软件开发过程中发生的许多事情在手动完成时都容易出错。
不,开发者的人工智能工具并非完全无懈可击。然而,可靠的人工智能工具可以帮助你避免诸如错误编写代码和代码错误之类的问题,从而最终帮助你提高代码质量。
虽然您不会完全依赖人工智能工具进行整个编码过程,但更频繁地利用人工智能编码助手工具将减少人为错误的可能性,并使您的生活轻松许多。人工智能驱动的代码是现在和未来。
不仅仅是使用人工智能工具来编写代码、建议代码和帮助其他潜在乏味的任务。您还可以使用人工智能工具来解释、剖析和审核您已经拥有的代码。这可以帮助您做出更明智、更数据驱动的决策。
举例来说,让我们看看 Ambee,这是一家正在迅速发展的气候技术初创公司。从一开始,MongoDB Atlas 就处于 Ambee 数据库体系结构的核心,帮助支持他们的人工智能和机器学习模型。
通过 MongoDB Atlas,Ambee 能够运行为自己的客户提供数据即服务并提供智能建议的人工智能模型。没有 MongoDB,Ambee 将极难在一个位置存放所有数据并使其针对不同用例运行。
例如,Ambee 使用人工智能预测美国和加拿大的森林火灾及其结果。这也意味着向组织发送关键警告,以便他们可以保护人们和财产。
来源:https://www.mongodb.com/blog/post/ambees-ai-environmental-data-revolution-powered-atlas
出于上文探讨的所有原因,关于人工智能和机器学习的讨论远非简单的“这会夺走我的工作吗?”。相反,我们需要扩大视野,思考感谢这项改变生活的技术的无限潜力。想想人工智能将如何帮助你创造出比现在更好的作品。
谈论人工智能工具在软件开发中的益处是一回事,亲身体验则更好。让我们来谈谈如何开始使用人工智能来改进代码质量、代码生成以及整个软件开发过程。
我们已经说过了,但值得重复的是。人工智能工具是补充,而不是替代品。您不能(至少现在还不能)完全摆脱开发过程。
仍有无数您能做而人工智能不能做的事情。
因为人工智能工具不能做所有的事情,所以您必须意识到技术的出口和您的入口。
例如,虽然您绝对可以使用人工智能工具进行调试,但在将您的软件更新提供给公众之前,您仍应该让人类进行彻底的测试和质量保证。否则,您可能会陷入困境。 (继续阅读一些相当令人担忧的例子。)
一些品牌非常关注人工智能工具,希望立即投入使用,如果不是昨天的话。其他人则可以理解地有点更谨慎。
你的雇主感觉舒适吗?有什么禁忌?他们希望您使用人工智能工具生成代码,但希望您坚持手动测试和调试吗?
除了界限之外,期望和目标是什么?虽然使用人工智能进行实验很有趣,但你仍然应该采取战略性地使用它。
最后,您如何确保正在以安全的方式使用人工智能?您需要避免将什么特定数据和信息输入人工智能工具中吗?
人工智能不是 100% 无懈可击的,你可能已经看过标题:“人们正在使用人工智能创建虚假的历史事件记录”;“律师在法庭上使用 ChatGPT ——并引用了假案例。法官正在考虑制裁”;“人工智能面部识别导致 8 个月的孕妇在孩子面前被错误指控盗车:诉讼”。
这就是人们将人工智能发挥到极致且不设任何警戒的后果。
作为开发人员,你自己的编码能力和技能对整个过程仍然绝对至关重要。尽管软件开发人员可能非常喜欢完全依靠人工智能编码助手完成旅程,但技术还没有达到那个阶段。如果你的代码文档出了问题,你当然不能告诉你的雇主或观众:“对不起!我们的代码助手出错了。”
所以,根本的责任仍然是必须的。人工智能可以帮助开发者创建更安全的代码,并节省时间。但归根结底,这取决于大脑背后的天才,而不是技术。
你说:“让我们为所有事情使用人工智能!”保留这个想法。
必须先爬行然后行走,再行走然后奔跑。代码助手正在帮助开发人员更快、更准确地构建高质量代码。但这并不意味着软件开发人员应该从“起步”就全力以赴。
来源: Pexels
小规模测试会是什么样子?嗯,你可以从使用人工智能驱动工具编写单个代码片段开始。或者,您可以利用人工智能驱动的助手提出代码建议。
如果进展顺利,你可以继续使用人工智能驱动的工具来管理整个功能、完整的代码并自动执行你一直手动执行的重复任务。
好的,你已经准备好采取下一步措施了 - 很棒!这可能会是什么样子?有很多开发者正在享受的工具、平台和软件。
GitHub Copilot 是一个采用的人工智能开发者工具。” 创造者通过各种编程语言上的数十亿行代码对其进行了训练。同样值得注意的是,GitHub Copilot 可以与最流行的代码编辑器之一集成:Visual Studio Code!
来源:https://github.com/features/copilot
使用像 Amazon CodeGuru Security 这样的东西来保护自己免受安全漏洞的侵害。它使用机器学习和自动推理来查找代码中的问题,提出如何修复它们的建议,并随着时间的推移跟踪它们的状态。作为其关键功能的一部分,它还将根据您的工作负载进行扩容和缩容。
来源:https://aws.amazon.com/codeguru/
Sourcegraph 是一个代码人工智能平台,可帮助您构建软件。其代码图支持 Cody - 一个强大的人工智能编码助手,用于编写、修复和维护代码 - 以及代码搜索,帮助开发人员探索整个代码库并进行大规模迁移和安全修复。根据代码上下文,编写功能代码并获取建议。
最后,将 Amazon CodeWhisperer 添加到您的列表中!它为生成的代码提供来源,以帮助开发人员决定软件许可是否存在任何问题。
无论你在使用多少种编程语言,无论你是处理小的代码片段还是整个应用程序,无论你是软件开发世界的新手还是经验丰富的老手,人工智能、机器学习和自然语言处理都将是你最强大的盟友之一。
利用人工智能驱动的代码为善之力,你的下一个基于代码的项目将会取得成功。