全球首位AI程序员诞生,技术革新还是职业威胁?

目录

导语:

一、2024年的第一丝凉意

二、AI在编程领域的应用现状

三、关于Devin的现状

四.未来展望

五.面对未来挑战,我们应该

结语:


导语:

    时间回调到两周前的3月13号,世界上第一位AI程序员Devin诞生,这回是切身的让我这个底层在职码农感到了AI带来的一丝凉意。因为它能自主学习

一、2024年的第一丝凉意

    能自主学习新技术,自己改bug,甚至还能训练和微调自己的AI模型,表现已然远超GPT-4等“顶流选手”,在SWE-bench基准测试中,Devin能够完整正确地处理13.86%的问题;而GPT-4只能处理1.74%的问题,比人类的程序员要厉害很多

    AI出厂,已有的东西就已经固定,这是历来的内容认知,现在来了一个能自己学习的。性质一下子变了,从“工具”变成了“对手”。AI的学习速度如此之快,我们的学习速度能否跟上“机器学习”的速度?AI将成为人类的“对手”还是“搭档”?AI将如何改变编程行业?

二、AI在编程领域的应用现状

    AI技术在编程领域的应用已经越来越广泛。从代码自动生成、错误检测到智能代码辅助,AI正逐步改变程序员的工作方式。截止到2023年,人工智能(AI)在编程领域的应用已经取得了显著的进展,主要体现在以下几个方面:

  1. 代码自动生成:AI能够根据开发者的描述或者需求自动生成代码。例如,GitHub的Copilot就是一个基于AI的编程助手,它能够理解开发者的意图,并帮助生成代码片段。

  2. 代码审查:AI工具可以分析代码库,检查潜在的bug、安全漏洞或不符合最佳实践的代码。这些工具可以帮助开发者提高代码质量,减少错误。

  3. 代码优化:AI可以帮助优化代码性能,通过分析代码执行路径,提出更高效的算法或数据结构。

  4. 自动化测试:AI可以用于生成测试用例,甚至自动执行测试并分析结果,从而加快软件开发的测试过程。

  5. 代码补全:许多IDE(集成开发环境)集成了基于AI的代码补全功能,这些功能能够根据开发者已经编写的代码预测接下来可能需要的代码,提高编码效率。

  6. 代码文档生成:AI能够根据代码的结构和内容自动生成文档,帮助开发者理解和使用代码库。

  7. 代码翻译:AI可以将一种编程语言的代码翻译成另一种语言,这在需要将旧项目迁移到新平台或语言时非常有用。

  8. 个性化编程助手:AI可以根据开发者的编程习惯和项目历史提供个性化的建议和资源,帮助开发者更快地解决问题。

    尽管AI在编程领域的应用取得了显著进展,但是它仍需要人类程序员的监督和指导。AI生成的代码可能需要人工审核和修改以确保其正确性和适应性。此外,AI目前还无法完全理解复杂的项目需求和业务逻辑,因此在处理复杂问题时,人类程序员的直觉、经验和创造性思维仍然是不可或缺的。

三、关于Devin的现状

    目前Devin尚未开放使用,参与者需要填写表格,并向研发团队提交资料申请内测名额。使用者评价这次内测是一次非常奇妙的经历。

使用者:我在维护一个开源存储库,其中包含很多不同算法,当我得知这其中有一个错误时,我让Devin检查并处理这个错误,结果发现Devin可以非常有效且公正地解决这些问题。

中国互联网协会研究中心副主任吴沈括表示,全球首位AI工程师很重要的能力突破是自我学习能力的提升,特别是对于不同的编程语言,自主学习的方式比较突出。

Devin引发业内广泛讨论,“人类程序员是否会被被取代,观点不一”

百度董事长兼首席执行官李彦宏此前曾表示,以后不会存在“程序员”这种职业。“所有人都能具备程序员的能力,未来的编程语言只会剩下两种,一种叫做英文,一种叫做中文。”

360集团创始人周鸿祎则给出不同看法,他认为人工智能时代将更需要程序员。“我依然认为优秀的工程师、程序设计人才,是不能被取代的。”

吴沈括认为在未来AI应用普及化之后,行业格局可能会出现一定程度的变化,但具有创造力的人类编程员,仍然具有不可或缺性。人工智能不会由程序来自动产生与人类相同的情感性因素和价值判断。

在彭博社记者的实测中,Devin 从头开始构建一个网站,只要 5-10 分钟。

同样的 5-10 分钟,Devin 还能重复创建基于 Web 的经典乒乓球游戏。

重复,是因为在这个过程里,彭博社记者输入了几次提示词,改进网站外观、乒乓球运动时的物理特性等等,Devin 有求必应。

devin生成结果展示(生命游戏)

图片

Project Devika生成的生命游戏

图片

Devin生成的生命游戏

不了解编程的朋友们可能不清楚,一个能实现生命游戏的人工智能究竟有多可怕。为了更直观介绍Devin的厉害,我找出来一个在Devin诞生前已经很不错的开源AI编程软件Project Devika,做了一个类似的生命游戏任务(上方的图片)。而下方的图是Devin做的。简单理解,图片上白色小格子的尺寸越小,代表编程水平越高。你可以清晰看到上图中白色格子的分辨率远远低于下图,那就说明Devin所生成的生命游戏,比Project Devika要优秀太多。

砸人饭碗容易挨骂,AI也不例外:

图片

    在Reddit上,最近出现了不少对Devin口诛笔伐,并口无遮拦地发起“Fxxk you Devin”运动的程序员。甚至连名字叫Devin的人也受到了这波无差别攻击,同样被这群愤怒的程序员给一并攻击了。

四.未来展望

    当前AI发展的速度,以后的AI会越来越多,越来越智能,相应的也会越来越便宜。那么也就会造成一个结果,有钱人越来越有钱,穷人会越来越穷。

    AI程序员发展的现状呈现出蓬勃的发展态势。随着人工智能技术的不断发展和普及,AI程序员的需求日益增长。他们具备快速、准确地生成代码的能力,能够通过分析大量数据和模式,发现可能被人类程序员忽略的关联和趋势,从而提出新颖的算法和解决方案。AI程序员的出现使得程序员能够更高效地进行应用程序的开发和测试,减少错误和调试时间,提高开发效率。

   然而注意的是,尽管AI程序员在某些方面展现出了强大的能力,但人类程序员的创造力、逻辑思维、情感理解、沟通能力和多方面的综合能力仍然是无可替代的。

    对于AI程序员的的未来,我们可以预见的是其将在编程领域中发挥更加重要的作用。然而传统程序员也将会和AI程序员共同合作推动编程领域的发展。

    总体来说,AI在编程领域的应用正在逐步改变开发者的工作方式,提高开发效率和质量,但它们更多地是作为辅助工具,而不是替代人类程序员。未来,随着AI技术的进一步发展,我们可以期待AI在编程领域扮演更加重要的角色。

五.面对未来挑战,我们应该

1.持续学习:面对AI程序员的挑战,普通程序员需要不断学习新的技术和知识,提升自己的竞争力。只有不断进步,才能在激烈的竞争中立于不败之地。

2.关注创新:程序员应该更多地关注创新性的工作,提高自己的创造力和解决问题的能力。这将有助于我们在未来的职场中脱颖而出。

3.人机协作:学会与AI共同工作,利用AI的优势来提高自己的工作效率和质量。这将是我们适应新技术环境的关键。

结语:

    全球首位AI程序员的诞生,无疑是一项重大的技术革新。它既给我们带来了无限的可能性和机遇,也带来了职业挑战和压力。作为普通程序员,我们需要不断学习、关注创新,保证不被淘汰,并学会与AI共同工作,以适应新的技术环境。只有这样,我们才能在未来的职场中立于不败之地。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据分析之POWER Piovt透视表分析与KPI设置

将几个数据表之间进行关联 生成数据透视表 超级透视表这里的字段包含子字段 这三个月份在前面的解决办法 1.选中这三个月份,鼠标可移动的时候移动到后面 2.在原数据进行修改 添加列获取月份,借助month的函数双击日期 选择月份这列----按列排序-----选择月…

C++类模板详解

在学习类模板之前可以了解一下函数模板,可以参考我的另一篇文章C函数模板详解(结合代码)-CSDN博客 讲解的比较详细,有助于理解类模板。 目录 1、什么是类模板? 2、类模板与函数模板区别 3、类模板对象做函数参数 …

STM32的SPI通信介绍

SPI简介 SPI:串行外设接口,与IIC一样都是通用数据总线。四根通信线:SCK,MOSI(DO),MISO(DI),SS。同步(共用一根时钟线),全双工(数据发…

怎么卸载Mybatis?(仅需三步)

解决办法如下: 第一步:选择文件→设置 第二步:找到插件→输入Mybatis找到这个标志 第三步:把这个勾勾取消掉,点击确定,就可以轻松卸载了

对AOP的理解

目录 一、为何需要AOP?1、从实际需求出发2、现有的技术能解决吗?3、AOP可以解决 二、如何实现AOP?1、基本使用2、更推荐的做法2.1 “基本使用”存在的隐患2.2 最佳实践2.2.1 参考Transactional(通过AOP实现事务管理)2.…

glibc内存管理ptmalloc - 实时打印bin链的变化

前言 在《glibc内存管理ptmalloc - largebin》中我们详细解释了 largebins共63个,并用表格点出了每个bin的size的范围largebin在free一些内存后的状态 特别是第2点,我其实不太满意,因为只有全部free后的一个结果,并没有中间状态…

LeetCode刷题---查询近30天活跃用户数

1.给出满足的条件,截止至2019-07-27的近30天 activity_date BETWEEN DATE_ADD(2019-07-27,INTERVAL -29 day) and 2019-07-27这里使用了Between and 函数和 Date_add函数 2.按照日期分组,统计活跃用户个数 select activity_date day,count(distinct(us…

《Attention Is All You Need》

参考: Attention Is All You Need 论文解读:Attention is All you need Transformer模型中的attention结构作用是什么? 如何最简单、通俗地理解Transformer? Transformer 新型神经网络,基于注意力机制 的 编码器-解码器 的序列处…

Windows服务器性能监控

Windows服务器操作系统设计用于运行在客户端-服务器架构内的服务器上,这些服务器通常设计用于处理繁重的工作负载,并作为企业中涉及的大多数软件操作的骨干。因此,为了防止由于性能问题而导致的任何服务损失并保持操作的无缝流,Wi…

STM32使用HAL库SPI驱动W25Q16 使用FATFS文件系统+USB虚拟U盘

概述 使用stm32F407驱动W25Q16,使用FATFS文件系统,USB虚拟优盘功能,W25Q16一共512个扇区,其中128作为flash存取相关数据,其他的384个扇区用作虚拟U盘使用 CubeMax配置过程 代码 W25Q16.c /***********************…

idea使用git笔记

1.创建分支和切换分支 创建分支 切换分支 2.把新创建的分支提交到远程服务器上(注:如果没有提交的,随便找个文件修改再提交) (1)切换到要提交的分支,add (2)commit (3)push 3.在自己分支修改代码及提交到自己的远…

What‘s new in PikiwiDB (Pika) v3.5.3 (正式版)

随着 Redis 宣布采用双协议以维护其商业利益,PikiwiDB (Pika) 社区非常荣幸地宣布之际,我们的最新 v3.5.3 正式生产可用版本现已发布。 v3.5.3 版本不仅修复了长期存在的 Bug,还引入了一系列新特性。这些新特性包括 Pika 对 ACL 的支持、移除…

USART发送单字节数据原理及程序实现

硬件接线: 显示屏的SCA接在B11,SCL接在B10,串口的RX连接A9,TX连接A10。 新建Serial.c和Serial.h文件 在Serial.c文件中,实现初始化函数,等需要的函数,首先对串口进行初始化,只需要…

@Value注解的使用方式

Value 注解用于从配置文件中获取特定的属性值,并注入到 Spring Bean 中。它有多种使用方式,下面列举了一些常见的用法: 先贴图: 1. 注入单个属性值 Component public class MyBean {Value("${my.property}")private S…

DVB-S系统仿真学习

DVB-S系统用于卫星电视信号传输,发送端框图如下所示 扰码 实际数字通信中,载荷数据的码元会出现长连0或长连1的情况,不利于接收端提取时钟信号,同时会使得数据流中含有大量的低频分量,使得QPSK调制器的相位长时间不变…

2024.3.25 QT

思维导图 作业:完善对话框,点击登录对话框 如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个0k按钮,用户点击Ok后,关闭登录界面,跳转到其他界面如果账号和密码不…

JAVA面试大全之JVM和调休篇

目录 1、类加载机制 1.1、类加载的生命周期? 1.2、类加载器的层次? 1.3、Class.forName()和ClassLoader.loadClass()区别? 1.4、JVM有哪些类加载机制? 2、内存结构 2.1、说说JVM内存整体的结构?线程私有还是共享的? 2.2…

春季装修选择传统空调还是中央空调?约克VRF中央空调帮你分析

春天,不仅是万物复苏的时刻,也是家居装修的黄金时期。正所谓“一年之计在于春”,气温适中,湿度适宜,正是施工的好时节。而且,春季的空气流通性好,有利于装修材料的干燥与挥发,减少有害物质的残留,对我们的健康也更有保障。更为重要的是,在这个气候不冷不热的季节,我们有更充足的…

推荐几个python的工具

Beautiful Soup Beautiful Soup用于清理和提取HTML和XLM中的数据。 它用于解析HTML文本,并允许数据科学家将文本数据转换为结构化数据,只需几行代码,就可以提取复杂的HTML数据。在某些情况下,您只需要一个表标签,并且…

24.park和unpark方法

1.park方法可以暂停线程,线程状态为wait。 2.unpark方法可以恢复线程,线程状态为runnable。 3.LockSupport的静态方法。 4.park和unpark方法调用不分先后,unpark先调用,park后执行也可以恢复线程。 public class ParkDemo {pu…