AI代码生成能力进一步提高,网友:程序员饭碗保不住了?

news2024/10/7 18:23:49

文章内容来源于公众号——布博士(擎创科技资深产品专家)

自chatGPT出现以来,人工智能(AI)迅速发展成为科技行业的重要领域。人工智能已应用于医疗、金融、交通、农业等各个领域。人工智能代码生成的进步提高了软件开发的效率,本文我们将详细探讨这种技术对科技行业未来的影响,主要包括如下内容:

  • 通过一个简单示例看AI帮助写代码的能力

  • 人工智能代码生成的未来趋势

  • 对科技行业未来的影响

一、AI助写代码的能力

最近我深切地体会到了在Notion中使用AI功能所带来的写作效率提升。同时,我也经常看到关于AI生成代码能力的介绍。作为一名曾经的程序员,我一直保持着对新技术的热情,并长久地保持着天天写代码的习惯,近期尝试了使用Codieum + vsCode来编写Python代码,这真的让我感到惊艳。下面我们通过一个简单的例子来看一下AI如何帮忙写代码。

首先,我们需要对vsCode 增加Codiem插件:

  • 第一步:在扩展中查找”codeium”插件。

  • 第二步:会看到codeium enterprise 和codeium ai codeing autocomplete两个插件,选择第二个。

  • 第三步:由于我的codeium本身已经安装完成,如果未安装会是”install”按钮,进行安装即可。

  • 第四步:安装完成之后需要注册一个帐号以使用,具体注册过程不再详述。

完成注册后,我们就可以使用Codeium来编写代码了。在编写代码之前,必须非常清楚我们的需求,只有清晰地描述需求才有可能生成所需的代码。

本例中,我们需要生成一个函数,以提供输入字符串的IP地址,并通过main函数运行和测试,如下图所示:

上面的代码是通过Codeium生成的。我只花了不到一分钟的时间,写了三个需求,并未写入任何一行代码,全部都是由Codeium生成,如上图中注释的内容所示:

  • 写一个函数,可以通过正则从输入的字符串中提取出IP地址:这句话没有简单地写成“写一个函数,从输入的字符串中提取出IP地址”,而是增加了使用“正则表达式”的方法来提取。这是在告诉Codeium处理该问题的方法之一,这非常重要,如果你不告诉Codeium,它将无法取得你想要的结果。

  • 写一个main函数,调用getip函数:根据上下文需求的理解,Codeium整理出了一个函数,用于从屏幕输入并获取一个字符串,然后调用getIPb函数进行打印输出。

  • 运行main()函数:将生成运行main函数的代码。

最后,我们来看一下运行的结果:

当我输入第一个字符串时,没有输出任何一个IP地址,而第二个字符串则包含两个IP地址。代码成功地将它们取出来,没有出现任何错误。

由于Codeium能够根据对这三个需求点的理解自动生成代码,因此我在生成代码、运行和测试整个过程中都没有写入任何一行代码,甚至库的引入也不是我自己写的。这样的效率非常惊人,从输入需求到整个过程完成只用了大约3分钟。

是不是很神奇!

二、人工智能代码生成的未来趋势

从上面的示例中,我们可以总结出,想要通过人工智能生成代码,现阶段需要具备两个非常重要的核心能力:

1.能清晰准确地表达需求

就像我们最初接触计算机程序设计时一样,我们需要输入能够让计算机读懂的程序代码,才能让计算机工作。

现在我们使用人工智能来生成代码也是同样的道理,提供尽可能多的细节非常重要,以便向人工智能清晰准确地表达需求。这包括指定要解决的问题或任务、任何约束或限制以及期望的结果。提供示例和样本数据来说明所需的结果也可能会有所帮助。此外,使用清晰简洁的语言表达也很重要,避免可能导致错误结果的歧义或模糊。

2.能提供针对该需求的实现方案

为给定的需求提供具体的实现方案对于当前阶段的人工智能生成代码非常重要。否则,人工智能可能会从以前实现该需求的不同方案中选择一个呈现给你,但这可能不是你想要的正确解决问题的方法。

通过我们提供的解决方案,人工智能可以更准确、快速、有效地生成代码。根据目前人工智能发展的速度,5年内采用该方式可能是最佳的解决方案。5年之后,随着人工智能的发展,可能只需要一份能够清晰表达需求的文档就能完成所有工作。

显然,这两个核心能力分别应对了不同的人员角色:

  • 产品经理或业务需求分析师:通过对企业业务需求、流程、管理等的理解,形成清晰的需求文档,能够准确地表达业务需求。

  • 架构师或高级软件工程师:通过对需求的深入理解,形成设计文档,一般的中、低级软件工程师其实受限于经验,根本不具备这个能力。

三、我的预测(仅供参考)

  • 未来5年内,企业中的中、低级软件工程师会陆续被人工智能所替代,这个比例有可能高达80%。

  • 估计5年后,只要将需求文档写出来,可能在几个小时之内就能满足需求的产品或项目的代码就已经可以构建完成,并交由AI完成自动化测试,而且有可能比程序员所写出来的结果BUG更少,代码更规范易懂。

注意:现在的人工智能能力还不能只告诉它一个宽泛的业务目标就生成代码,必须对业务目标进行逐层拆分细化,形成最小且非常明晰的需求及设计说明,然后AI才能帮助产出高质量的代码。

例如第一部分的示例中“写一个函数,可以通过正则从输入的字符串中识别IP地址”,这个需求是非常明确的,包括如下元素:

  • 构建的是一个独立的函数

  • 输入参数是一个字符串

  • 解决的问题是从输入的字符串中提取IP地址

  • 系统设计是通过正则表达式来提取IP地址

四、AI自动生成代码对科技行业未来的影响

未来人工智能的代码生成能力将对科技行业产生非常巨大的影响,主要体现在以下几个方面:

1.对研发体系的影响(上图红色部分):具体流程我们不再赘述,只介绍差异的部分

  • 需求分析:需求分析的过程是必不可少的,但是需求分析的产出物却非常重要,这就要求产品经理或需求分析师能够简洁明了地表达需求,且前后的业务逻辑是一致的,不能有冲突。以前的研发体系中,很多企业重视代码的管理,忽视对需求的管理。未来,需求的管理将同代码管理一样重要,它将成为企业核心资产的一部分。

  • 测试用例:以前,测试工程师需要针对需求进行详细的分析,然后梳理出测试用例。未来,AI将理解需求,根据对需求的理解生成测试用例。有可能一份需求文档生成之后,对应的测试用例会在几分钟内由AI自动生成,且高质量,任何需求点都不会遗漏。后续人工对测试用例进行排查,以判断理解是否有误。

  • 系统设计文档:以前可能很多人都不重视该文档,由高级软件工程师或架构师口头对项目组内的程序员进行说明,或在文档中整理重要的部分。但未来很长一段时间,如果企业要利用AI的高效研发能力,则必须要求架构师或高级软件工程师在输出文档时保持非常高的质量。该文档的质量好坏将直接影响AI生成的代码质量。因此,该文档将成为比代码更重要的资产。

  • AI生成代码:垃圾进,垃圾出,这是至理名言。要想生成符合业务预期的代码,必须有好的系统设计文档作为输入。依托好的系统设计文档,原来需要很多程序员耗费几天甚至几个月的研发过程,利用AI能力可能会在几分钟甚至几小时的时间内生成庞大的项目代码,并提交给AI进行自动化测试,从而节省大量的人力资源。

  • AI自动化测试:由于AI的计算能力已经远远超过人类,AI可以利用对需求理解所生成的测试用例对提交的代码进行自动化集成测试,以对项目或产品进行测试。

2.人员结构及技能影响:这个影响是非常巨大的,主要表现在:

  • 产品经理和需求分析师:必须对业务非常熟悉,而且文档化表达需求的逻辑要非常清晰。

  • 架构师或高级工程师:对提出的需求,要能够进行统筹分析,并能够清晰的知道针对这样的需求适用什么样的方法来解决问题,并形成设计文档。除了拥有技术能力之外,还要非常了解业务。

  • 普通程序员:将会被AI大部分进行替代,一小部分程序员会有保留下来协助架构师或高级工程师整理一些设计文档,未来依个人能力需要向架构师或高级工程师进行转型,当然也必不可少的需要了解业务。

  • 测试工程师:大部分将会被AI进行替代,一小部分测试工程师会对AI已经测试的成果进行验收和测试,以及对AI生成的测试用例进行评审,以看哪些会有遗漏或AI理解有问题。

3.对具体角色的影响

不论是需求分析师、产品经理、架构师、程序员,其技能不再只专注于技术领域,对自己所从事行业的业务理解,将成为晋升和能力要求的关键。

AI缺少的不是技能,缺少的是像人类一样的创造能力,而人要发挥这种创造能力,必须在深入理解业务之后,才能够利用各自领域的专业能力向AI进行有效输入,这样才能够保障AI充分理解需求,进而产出高质量的产品或项目。

  • 以人力外包为主的科技公司:传统靠卖人头来赚钱的人力外包公司,将面临巨大的压力,在不久的将来业务方对低端程序设计人员的需求将会越来越少,可能会达到80%,大部分将由AI来进行替代,而一些高端的需求及设计岗位,一般甲方的人员都能够胜任,除非是高端的咨询公司在某个领域进行深耕,同时又具备超出当前大多数甲方业务的前瞻性能力。

  • 甲方客户:以往希望科技公司能够提供足够多的低端程序设计人员,在人工智能出现之后,短期来看甲方爸爸需要科技公司能够将这种技术的使用和对组织人员的改变通过咨询的方式让甲方内部进行落地,以降低人力外包的成本投入。长期来看甲方更需要科技公司能够在业务上对他们的需求进行分析、设计、规划的能力。

  • 产品经理和需求分析师:必须对业务非常熟悉,而且文档化表达需求的逻辑要非常清晰。

  • 架构师或高级工程师:对提出的需求,要能够进行统筹分析,并能够清晰的知道针对这样的需求适用什么样的方法来解决问题,并形成设计文档。除了拥有技术能力之外,还要非常了解业务。

  • 普通程序员:大部分将会被AI替代,一小部分程序员会有保留下来协助架构师或高级工程师整理一些设计文档,未来依个人能力需要向架构师或高级工程师进行转型,当然也必不可少的需要了解业务。

  • 测试工程师:大部分将会被AI进行替代,一小部分测试工程师会对AI已经测试的成果进行验收和测试对AI生成的测试用例进行评审。

五、总结

本文主要探讨了人工智能代码生成能力提速对科技行业未来的影响,主要包括以下三个方面:

1.对研发体系的影响:人工智能将取代中、低级软件工程师,这个比例可能高达80%。

2.人员结构及技能影响:人工智能的普及对各类人员的技能和能力提出了更高的要求,需要更深入地理解业务,对需求进行逐层拆分细化,形成最小且非常明晰的需求及设计说明。

3.行业转型和客户期望的变化:随着人工智能的出现,传统依靠卖人头赚钱的人力外包型科技公司将面临巨大的压力,甲方客户对科技公司的期望也将从提供足够多的低端程序设计人员转变为对业务需求进行分析、设计、规划的能力。


​擎创科技,Gartner连续推荐的AIOps领域标杆供应商。公司致力于协助企业客户提升对运维数据的洞见能力,优化运维效率,充分体现科技运维对业务运营的影响力。

行业龙头客户的共同选择

​了解更多运维干货与技术分享

可以右上角一键关注

我们是深耕智能运维领域近十年的

连续多年获Gartner推荐的AIOps标杆供应商

下期我们不见不散

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/767542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ingress:集群进出流量的总管

Service 很有用,但也只能说是“基础设施”,它对网络流量的管理方案还是太简单,离复杂的现代应用架构需求还有很大的差距,所以 Kubernetes 就在 Service 之上又提出了一个新的概念:Ingress。 Service 还有一个缺点&…

el-dialog 添加loading;avue-form 表单插槽

效果: 第一步&#xff1a;custom-class"publishDialog" 新起一个类名 <el-dialog title"发布配置" custom-class"publishDialog" :visible.sync"publishDialogVisible" width"800px" :append-to-body"true":b…

【电路效应】信号处理和通信系统模型中的模拟电路效应研究(SimulinkMatlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、Simulink仿真实现 &#x1f4a5;1 概述 在信号处理和通信系统模型中&#xff0c;模拟电路效应研究是指考虑到实际电路的特性对信号进行建模和分析的过程。模拟电路效应…

C++中main()函数和命令行参数介绍

C中main()函数和命令行参数介绍 在C中&#xff0c;main()函数是程序的入口点&#xff0c;它是一个特殊的函数&#xff0c;在程序开始执行时被首先调用&#xff0c;也是程序结束时的最后一个被执行的函数。main() 函数的类型始终为 int&#xff0c;根据C标准&#xff0c;main() …

Petalinux 无法识别PHY ADDR 显示地址为FF 或者-1

BD文件使能了GEM 但是系统启动以后ifconfig发现没有ETH0 解决办法有两种 1&#xff0c;在DTS settings下设置对应的板卡 2.直接修改设备树&#xff0c;第二种方法对没有linux基础的朋友不是那么友好

地面点云提取:Autoware预处理ray_ground_filter节点解析 + 解决ray_ground_filter无输出的问题

文章目录 一、解决Autoware的ray_ground_filter节点无点云输出的问题二、ray_ground_filter节点代码分析2.1.监听bask_link和velodyne之间的TF2.2 裁切过高点云2.3 消除雷达近身反射点的影响2.4 角度和距离微分&#xff08;转换到柱坐标&#xff09;2.5 地面判断(核心部分) 一、…

TextView 必填项pro版

优点 基本解决对齐方式,可以设置前缀隐藏和显示 /*** https://blog.csdn.net/u013982652/article/details/94404711* Android自定义TextView实现必填项前面的*号* 另一种实现方式(推荐使用这种,有非必填情况的话不会有对齐问题)* <p>* <cn.mvp.mlibs.weight.MiRequire…

2023年网络安全面试题:详细答案解析与最佳实践分享

如果在数据来源和网络分享方面存在侵权问题&#xff0c;请立即联系我以删除相关内容。 一句话木马 【基本原理】 利用文件上传漏洞&#xff0c;往目标网站中上传一句话木马&#xff0c;然后可以通过中国菜刀chopper.exe来获取和控制整个网站目录。表示后面即使执行错误&…

ZooKeeper原理剖析

1.ZooKeeper简介 ZooKeeper是一个分布式、高可用性的协调服务。在大数据产品中主要提供两个功能&#xff1a; 帮助系统避免单点故障&#xff0c;建立可靠的应用程序。提供分布式协作服务和维护配置信息。 2.ZooKeeper结构 ZooKeeper集群中的节点分为三种角色&#xff1a;Le…

curl: (56) Recv failure : Connection reset by peer

文章目录 背景原因可能如下1. 服务器端关闭了连接2. 网络问题3. 防火墙或代理问题4. 服务器负载过高 解决办法 背景 docker容器里有http服务&#xff0c;今天在docker容器重启时&#xff0c;去调用http接口&#xff0c;出现了以下错误&#xff1a; curl: (56) Recv failure :…

Explain执行计划中各个字段的含义

Explain执行计划中各个字段的含义 1、Explain有什么用2、Explain有哪些信息3、Explain执行计划详解 1、Explain有什么用 当Explain 与 SQL语句一起使用时&#xff0c;MySQL 会显示来自优化器关于SQL执行的信息。也就是说&#xff0c;MySQL解释了它将如何处理该语句&#xff0c…

Docker 架构解析:多角度解析 Docker 引擎与容器运行时

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

matlab重名函数调用踩坑记录

我新安装了matlab的robotics toolbox&#xff0c;然而调用的rotx不是我想要的函数。 我上网查了一下资料&#xff0c;知乎和csdn有相关的回答&#xff0c;但是我试了一下还是不行。它们的方法是移除路径再添加路径避免函数的冲突。相关方法放在文末的相关参考1 2。这里建议先用…

疯踏java知识点-进阶精讲篇

该资源是关于Java的师生管理系统&#xff0c;可以学习借鉴一下。 继续进行讲解&#xff0c;如果前面有不懂的&#xff0c;可以翻阅一下同专栏的其他文章&#xff0c;该专栏是针对Java的知识从0开始。 JavaBean 一个Java中的类&#xff0c;其对象可用于程序中封装数据举例&…

【C++】STL——vector的使用、 vector增删查改函数的介绍和使用、push_back和pop_back、operator[]

文章目录 1.vector的使用2.vector的增删查改&#xff08;1&#xff09;push_back 尾插&#xff08;2&#xff09;pop_back 尾删&#xff08;3&#xff09;find 查找&#xff08;4&#xff09;insert 在position之前插入val &#xff08;5&#xff09;erase 删除指定位置的数据&…

EXCEl——单元格移除换行

方法一&#xff1a;使用清除格式功能 步骤如下: 1.选中需要取消换行的单元格 2.在“开始"选项卡中找到"清除”功能&#xff0c;点击下拉菜单中的“清除格式" 3.这时单元格的换行就被取消了。 清除前效果图 清除后效果图 方法一&#xff1a;使用函数功能 步骤…

Camtasia Studio 2023保存为mp4格式的视频的详细教程,Camtasia的视频导出功能

很多用户刚接触Camtasia Studio&#xff0c;不熟悉如何保存mp4格式的视频。在今天的文章中小编为大家带来了Camtasia Studio 2023保存为mp4格式的视频的详细教程介绍。 1、 打开Camtasia Studio。 Camtasia Studio- 2023 win&#xff1a; https://souurl.cn/1JFEsn Camtasia …

HACKATHONCTF_1靶场详解

HACKATHONCTF_1靶场复盘 这个靶场有点CTF感觉&#xff0c;一步一步的没有什么难度。 下载地址&#xff1a;https://download.vulnhub.com/hackathonctf/ctf.zip 扫到ip后对ip进行一个单独扫描&#xff0c;发现开了四个端口&#xff0c;ssh设置到7223上了&#xff0c;这个很重…

SPP、SPPF 、 SimSPPF 、 ASPP、 SPPCSPC详解

分享自&#xff1a;https://blog.csdn.net/weixin_43694096/article/details/126354660 1. 原理 1.1 SPP&#xff08;Spatial Pyramid Pooling&#xff09; SPP 模块是何凯大神在2015年的论文《Spatial Pyramid Pooling in Deep Convolution Networks for Visual Recognitio…

前端工程化第一章:webpack基础(上)

文章目录 1. 什么是webpack&#xff1f;2. webpack使用2.2. 前置知识2.1. 创建一个项目 3. webpack打包3.1. 创建一个webpack.config.js文件3.2. 入口&#xff08;entry&#xff09;3.2.1. webpack.config.js3.2.2. src/index.js3.2.3. package.json 3.3. 输出&#xff08;outp…