程序员要失业?全球首位“AI程序员”Deven真的适合职场吗

制造Devin的公司,是一家叫Cognition的10人初创公司,才成立不到2个月。

一、引言

一家成立不到两个月但拥有十名天才工程师的初创公司Cognition,搞了一个引爆科技圈的大动作。

他们推出了一款名为Devin的人工智能(AI)助手,可以协助人类软件工程师完成诸多开发任务。Devin不同于现有其他AI助手(GitHub Copilot 等 AI 编程助手),它并非单纯辅助的角色,而是能够完全独立、端到端地完成整个开发项目,包括从编写代码、修复 Bug 到最终执行的完整编程生命周期。

这是第一个真正意义上完全自主的AI软件工程师,一亮相即掀起轩然大波,因为人们担心:人类程序员是不是真要失业了?

二、Deven能力及特点

测试表现超过同辈

在 SWE-bench 基准测试(评估大模型解决 GitHub 真实问题的能力)中发现,Devin 在人类未协助时达到了 13.86% 的正确率,超过了 Claude 2(4.80%)、Llama、GPT-4(1.74%,此前的测试结果是 0%)。更重要的是,Devin在测试中没有得到任何帮助,而其他所有模型都需要帮助,即人们要准确告知模型需要编辑哪些文件。

在这里插入图片描述

这一进展,标志着AI在自主理解和解决软件开发问题方面取得了显著进步。目前,Devin已经成功通过一家AI公司面试,并且在Upwork上完成了实际工作。资深程序员在试用过Devin之后认为,它已经不仅仅是一个编程助手,简直是一个可以独立工作的员工。它可以从零构建网站、自行部署应用、学习新技术等,人类只需扮演一个下指令和监督的角色。

运作几乎完全自主

Devin的厉害之处,还在于可以规划和执行异常复杂的工程任务,这类任务通常需要数千个决策才能完成。在这之中,无论进行到任何一步,它都可以回调所有相关的上下文信息,保证任务的逻辑性,也便于随时校正。

更让人震撼的是,Devin不仅能帮人们解决代码,还囊括了与之相关的整个工作流。

譬如,当工程师需要设计一个网页游戏时,Devin首先能生成网页,接着还能完成服务端的部署,最后直接发布上线,省去了中间大量人工操作。甚至在发现漏洞之后,Devin还会回溯报错出现的位置及对应的数据,然后分析原因并给出解决方案。

此外,作为一个AI全能助手,Devin还可以帮助人类训练和微调其他AI。对于一些常见的模型,你只需要提及模型的名称,Devin自己就知道要怎样去训练。

那人们需要做什么呢?按设想,最终的Devin会让人类只需要发号施令,其他什么也不用做。

它有哪些能力?

Devin 的主要特性有:

  • 能学习使用陌生的技术。仅仅是读完一篇博客,就可以用 ControlNet 生成带有隐藏信息的图片。

  • 端到端构建和部署应用。Devin 创建了一个模拟“生命游戏”的互动网站,它根据用户的需求逐步增加功能,然后将应用部署到 Netlify 上。

  • 自主查找并修复代码库中的错误。

  • 能训练并微调自己的 AI 模型,而这仅仅只需要一个 GitHub 研究库的链接。

  • 能处理开源仓库中的 Bug 和功能请求。

  • 能为开源项目做真正的贡献,修复 Bug、提交 PR。

Deven竟是由十人小公司开发?

Devin 背后的公司 Cognition AI ,该公司成立不到2个月,核心创始团队为3名华人由:Scott Wu(首席执行官)、Steven Hao(首席技术官)和 Walden Yan(首席产品官)组成,都是很早学编程的年轻新生代。Cognition的创始成员均曾在Scale AI 、Google 、DeepMind、Waymo等公司从事过AI前沿工作。

颇为吸睛的是,初创公司Cognition虽然只有十名员工,但他们手中却握着十块IOI(国际信息学奥林匹克竞赛)金牌。IOI 是国际信息学奥林匹克竞赛,基本是国内清北保送、天才少年的所在。

三、实际体验

Devin到底是一个漂亮的Demo,还是一个已经能替代程序员的智能体,使用体验怎么,拿到测试资格的网友第一时间分享了自己的体验。

在演示中,Devin几乎已经可以独立完成很多人类程序员需要大量时间才能完成的工作,效果一点不比普通程序员差。

但是,产品能力的边界在哪里,实际体验和演示时候有差距,还的看上手实测之后的效果。

一位斯坦福的小哥在Devin发布的第一时间就联系了团队,获得了第一手体验的资格。
在这里插入图片描述
他让Devin帮它做了几个难度不一的项目,录制了一个视频,在推上写下了自己的使用感受。

首先是让Devin做一个用API获取股票价格的软件,下一个任务是让Devin做一个可以让普通用户直接与大模型下棋的网站。

最终,小哥初步总结了用Devin开发的第一个网站的使用体验。

先说优点:

  • Devin产品化做得很好,他给人的使用体验是一个完整的产品而不是只是一个简单的对话框。

  • AI是系统最关键的部分,但支撑AI功能的产品化的结构是Devin的亮点。

  • Devin能够完成自动部署,API密钥保护,随时修改和添加需求等等非常好的各种功能。

  • 产品的完成度已经非常高了,远远超过了一般的演示Demo。

再说缺点:

  • Devin的反应还很慢,当然小哥也说,因为他用的是1M的Starlink来上网,所以反应慢很有可能是他自己的原因。

  • 其次就是还不能允许用户直接自己编辑代码,而且也没法协作完成。

  • 当然,最初那个下棋的应用,难住了Devin,最终没有完成部署。而那个数据可视化的任务,似乎也有些Bug。

网友看了这个实测之后还是感觉有点失望,毕竟这个任务一个初级程序员是能做到的,但是Devin的可视化项目的结果只做出了一个有Bug的网页。看样子Devin本质上还只是一个可以上网的大模型,现在要让他解决实际问题还有难度。
在这里插入图片描述

关于这里小哥具体的体验过程,参看:Devin第一手体验:开始编码就停不下来,但要替代程序员还很远

四、通过了面试,但不一定适合职场

首个AI程序员,已经实现了突破,目前的实际体验也许没有那么的优秀,但是再经过一段时间的发展,也许数十年后,上述问题都能得到解决,等到发展的相当成熟的时候,我们也不得不思考一个问题:它真的适合职场吗?

对于Deven是否适合职场,这是一个复杂且多角度的问题。从纯技术的角度来看,发展完善的Deven无疑展现出更强大的编程能力,能够快速、准确地完成编程任务。这使得它在某些特定的、高度技术化的职场环境中,可能表现出色。

然而,职场不仅仅是技术的竞技场,它更是一个涉及人际关系、团队协作、情感沟通等多方面因素的复杂系统。在这些方面,AI程序员如Deven目前还存在明显的局限性。它无法像人类一样进行深入的交流和沟通,无法理解和感受他人的情感和需求,因此在团队协作和人际关系处理上可能存在困难。

此外,职场中的很多决策并不仅仅基于技术因素,还涉及到战略、文化、价值观等多个方面的考量。这些都需要具备丰富经验和深厚洞察力的人类来做出判断。在这方面,AI程序员如Deven可能还无法完全替代人类。

因此,虽然Deven在技术上表现出色,但要说它完全适合职场可能还为时过早。毕竟,一个真正优秀的程序员不仅需要高超的技术能力,还需要具备良好的人际交往、团队协作和情感沟通能力。未来,随着AI技术的不断发展和完善,我们或许可以期待AI程序员在更多方面展现出其优势,但同时也需要认识到其局限性和挑战。在职场中,人类和AI的协作与互补可能将是一个更为现实和可行的方向。

五、结束语

此前面对 GPT 编程时,在《新程序员 007:大模型时代的开发者》中,我们提到,GPT 的编程能力我们需要有着很大的敬畏,但彼时,GPT 并不能独立解决完整的真实编程任务。

而现在,Cognition AI 这家此前从未听闻的公司,一群年轻人,创造了这样一款产品,让 AI 编程实现了一个巨大的飞跃。同济大学特聘教授朱少民表示,“看完 Devin 让我很是震撼,AI 编程比我们预想得要快,只会写代码的程序员下岗的可能性越来越大。”

自主编码智能体Devin已现AGI雏形!它能在几分钟内自主编写整个应用程序。这是真正无代码未来的开始。

因此,尽管Deven在技术上取得了令人瞩目的成就,但我们也不能盲目地认为它就是职场的完美选择。在未来的发展中,我们或许可以期待AI在编程领域取得更大的突破,但同时也需要关注它在职场中的适应性和局限性。

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

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

相关文章

C语言数据结构易错知识点(3)(堆)

1.堆的本质:完全二叉树 堆在物理结构上是顺序结构,实现方式类似于顺序表(数组);但在逻辑结构上是树形结构,准确来说堆是一棵完全二叉树。因为堆的实现在代码上和顺序表有很高的相似度,所以在写…

机试:偶数分解

题目描述: 代码示例: #include <bits/stdc.h> using namespace std; int main(){ // 算法思想1:遍历小于该偶数的所有素数,存入数组中,遍历数组找出两个数之和等于偶数的数int n;cout << "输入样例" << endl;cin >> n;int nums[n];int k …

Android 地图 判断一点是否在某区域内

问题 Android 地图 判断一点是否在某区域内 详细问题 笔者进行Android项目开发&#xff0c;接入高德地图绘制区域后&#xff0c;需要判断一点是否在某区域内&#xff0c;如何实现 代码 mMapView.getMap().addPolygon(polygonOptions).contains(latLng)代码含义解释 这段代…

【C#】【SAP2000】读取SAP2000中frame单元列表到Grasshopper中

private void RunScript(bool build, ref object p1, ref object p2, ref object Profile, ref object stressRatio, ref object temperatureLoad, ref object displacement, ref object frameList){if (build true){// 声明变量int ret;int Numit 0;int[] ObjType new int[…

在Vue中使用wangeditor创建富文本编辑器的完整指南

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

Jmeter+Ant 接口自动化环境配置指南

一 、Jmeter安装与配置 https://blog.csdn.net/tester_sc/article/details/80746405 注&#xff1a;Jmeter5.0的环境变量配置与4.0或历往老版本有部分小差异&#xff0c;笔者用的Jmeter 5.0 二 、Ant的安装与配置 # Ant下载地址(下载到指定目录后&#xff0c;进行解压到当前…

链表详解-leetcode203.移除链表元素

链表 移除链表元素 题目&#xff1a; 题意&#xff1a;删除链表中等于给定值 val 的所有节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5] 示例 2&#xff1a; 输入&#xff1a;head [], val 1 输出&#xff1a;[…

C++中的多值返回:解锁函数返回值的神奇力量

C中的多值返回&#xff1a;解锁函数返回值的神奇力量 在C编程中&#xff0c;有时候我们需要从函数中返回多个值。虽然C中的函数通常只能返回一个值&#xff0c;但有几种技术和惯用法可以实现返回多个值的效果。本文将介绍C中实现多值返回的几种常用方法&#xff0c;包括引用、指…

F5怎么样?保障AI服务的安全性和交付

伴随着人工智能时代的快速发展&#xff0c;AI已成为企业数字化转型的得力工具&#xff0c;比如为用户提供更好的服务&#xff0c;降低企业成本等。与此同时&#xff0c;AI技术的应用也会带来应用安全等方面的新风险&#xff0c;可见其有着双刃剑效应。作为一家提供多云应用安全…

react-面试题

一、组件基础 1. React 事件机制 <div onClick{this.handleClick.bind(this)}>点我</div> React并不是将click事件绑定到了div的真实DOM上&#xff0c;而是在document处监听了所有的事件&#xff0c;当事件发生并且冒泡到document处的时候&#xff0c;React将事…

差分逻辑电平 — LVDS、CML、LVPECL、HCSL互连

前言 首先了解差分逻辑电平、单端逻辑电平的基础知识 地址&#xff1a;常见的逻辑电平_常用的逻辑电平-CSDN博客 注&#xff1a; ECL >> PECL >> LVPECL演变&#xff1b; ECL速度快&#xff0c;驱动能力强&#xff0c;噪声小&#xff0c;但是功耗大&#xff0c;使…

STM32-位带操作及位带别名区

这里写自定义目录标题 一、位带操作的基本含义及作用二、以STM32为例三、位带别名区和位带区(寄存器地址位地址)的转换关系四、使用例程 一、位带操作的基本含义及作用 位带别名区的设计主要是为了**方便对位带区单个比特位进行读写操作**。在某些应用场景下&#xff0c;需要频…

手把手学会pycharm中使用git

学习教程&#xff1a;http://【git pycharm的使用 连接github】 https://www.bilibili.com/video/BV1sv4y1D7SW/?share_sourcecopy_web&vd_source1a32dd27a726236a74603cf06b7302aa 1. 上传到本地仓库 &#xff08;1&#xff09;直接上传本地仓库 &#xff08;2&#xf…

OpenOFDM接收端信号处理流程

Overview — OpenOFDM 1.0 documentation 本篇文章为学习OpenOFDM之后的产出PPT&#xff0c;仅供学习参考。 ​​​​​​​

easyExcel 导入、导出Excel 封装公共的方法

文档包含三部分功能 1、easyExcel 公共导出list<对象>方法&#xff0c;可以自定义excel中第一行和样式 2、easyExcel 导入逻辑&#xff0c;结合spring Validator 验证导入数据是否符合规范 3、easyExcel 自定义导出 list<map> 、 list<对象> &#xff08;可…

Redis中的缓存设计

缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c;缓存层和存储层都不会命中&#xff0c;通常处于容错的考虑&#xff0c;如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c;失去了缓存保护后端存储的意义。…

Java两周半速成之路(第十六天)

一、网络编程 1.概述&#xff1a; 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换 2.网络模型 3.网络参考模型图 4.网络通信三要素 4.1IP地址 InetAddress类的使用&#xff1a; 注意&#xff1a;通过API查看&#xff0c;此类没有构造方法&#xff0c;如…

精读《精通 console.log》

1 引言 本周精读的文章是 Mastering JS console.log like a Pro&#xff0c;一起来更全面的认识 console 吧&#xff01; 2 概述 & 精读 console 的功能主要在于控制台打印&#xff0c;它可以打印任何字符、对象、甚至 DOM 元素和系统信息&#xff0c;下面一一介绍。 c…

力扣-20. 有效的括号(回顾知识哈希表,栈)

给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有…

QT中dumpcpp以及dumpdoc使用

qt中调用COM的方式方法有四种&#xff0c;参考解释在 Qt 中使用 ActiveX 控件和 COM (runebook.dev) 介绍dumpcpp的使用方法Qt - dumpcpp 工具 (ActiveQt) (runebook.dev)&#xff1a; 在安装好了的qt电脑上&#xff0c;通过powershell窗口来实现&#xff0c;powershell比cmd要…