第一位 AI 程序员诞生,队友还是对手?

news2024/11/18 22:36:10

8238f39610ebc094b3ad74b607db4139.jpeg

前几天,百度创始人李彦宏在采访中声称:“以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力”。

看到这话我的第一反应是“不可能,绝对不可能,程序员的工作有很大一部分是创造性的,AI 无法取代7c1706d88837d00bc720dc2fc80dd4e0.png”,但转念一想,李彦宏的视野应该比我高,或许有那么一丁点可能这是真的6b85c676388151231b087242101c44a6.png

就在人们还在讨论李彦宏的这番话时,一家国外的人工智能公司发声了!

Cognition(一家专注于推理的应用人工智能实验室)在昨天发布了全球首位完全自主的 AI(人工智能)软件工程师 Devin。

他们声称“Devin 在 SWE-Bench 编码测试中取得优秀的成绩,并且成功通过了知名人工智能公司的实际工程面试,甚至还在 Upwork 上完成了实际工作。

4ae623a24b6cf3238b2f69658a3c1375.png

看着很厉害的样子,水平究竟如何呢?我们来了解一下。


Devin 是一位不知疲倦、技术娴熟的队友,随时准备与您并肩作战,或独立完成任务供您审查。

有了 Devin,工程师可以专注于更有趣的问题,工程团队可以为更远大的目标而奋斗。

Devin 的能力

凭借 Cognition 在长期推理和规划方面的进步,Devin 可以规划和执行需要数千个决策的复杂工程任务。Devin 可以调用每一步的相关上下文,随着时间的推移不断学习,并修正错误。

Cognition 还为 Devin 配备了常用的开发者工具,包括沙盒计算环境中的 shell、代码编辑器和浏览器--人类完成工作所需的一切工具。

最后,Cognition 赋予了 Devin 与用户积极协作的能力。Devin 会实时报告自己的工作进度,接受反馈,并根据需要与你一起完成设计选择。‍

以下是 Devin 的功能示例:

  1. Devin 可以学习如何使用不熟悉的技术。阅读博文后,Devin 在 Modal 上运行 ControlNet,为 Sara 制作带有隐藏信息的图像

2.Devin 可以构建和部署端到端的应用程序。Devin 制作了一个模拟 "生命游戏 "的互动网站!它逐步增加用户要求的功能,然后将应用程序部署到 Netlify。

3.Devin 可以自主查找和修复代码库中的错误。Devin 帮助安德鲁维护和调试他的开源竞技编程书籍。

4.Devin 可以训练和微调自己的人工智能模型。‍Devin 仅通过 GitHub 上一个研究资源库的链接,就能对一个大型语言模型进行微调。

5.Devin 可以处理开源软件源中的错误和功能请求。只需提供 GitHub 问题的链接,Devin 就能完成所有必要的设置和上下文收集工作。

6.Devin 可以为成熟的生产软件源做出贡献。‍ 本例是 SWE-bench 基准的一部分。Devin 解决了 sympy Python 代数系统中对数计算的 bug。Devin 设置了代码环境,重现了错误,并自行编码和测试了修复程序。

7.Cognition 甚至试着在 Upwork(全球最大的自由职业中心) 上给 Devin 提供真实的工作,它也能胜任!在这里,Devin 编写并调试代码,以运行计算机视觉模型。Devin 对生成的数据进行采样,并在最后编制一份报告。

Devin 的性能

Cognition 在 SWE-bench 上对 Devin 进行了评估,SWE-bench 是一项具有挑战性的基准测试,要求测试者解决 GitHub 上的实际问题,这些问题出现在 Django 和 scikit-learn 等开源项目中。

Devin 端到端正确解决了 13.86%* 的问题,远远超过了之前最先进的 1.96%。即使给出要编辑的确切文件,以前最好的模型也只能解决 4.80% 的问题。

a7f06b9f10f90e21d649c227bb927e37.png

我的看法

从 Cognition 的官方文档和视频来看,这位 AI 程序员在收到命令后,可以在自己的编辑器里修改代码、shell 上执行代码、通过浏览器查询资料、根据资料修改代码,接近一个可以自主思考的人类程序员。

这个消息引起国内外很大的讨论,虽然官方的介绍是"AI 程序员可以做为队友解放程序员的双手,让程序员做更有价值的事",但还是有很多人担心被取代,有一个很典型的评论是:“求求你们别研究了,我们还要吃饭”d40f126e2524640bcb6bbbdd40b01f24.png

7582d32be8f0224dd105602f3c30c42f.jpeg

说实话我心里也有这种想法,为什么程序员总要难为程序员,去做点更有价值的不好吗?format,png

然而想归想,时代的洪流滚滚向前,我们没办法避开就只能选择加入6c410cfd1e40e9958012282c7f1d869e.png

首先要调整思维,把它当作队友而不是对手,学习它、使用它,通过它成为更好的程序设计开发者,而不是站在它的对立面。

其次居安思危,以 AI 程序员做镜子,调整自己的学习、思考方式。

比如看到这个 AI 程序员后,我头脑里发生变化的点是:

  1. 学习新技术时需要更多侧重于使用场景和优缺点

  2. 框架 API 不再追求全面掌握,反正都是可以查到的

  3. 思考自己日常工作哪些是 AI 可以做到的,我该如何把它们工具化流程化

  4. 要花更多时间关注这些新工具,使用他们完成以前做不到的事

好了,这篇文章到这里就结束了,主要介绍了最新的 AI 程序员的能力和我的看法。

对于这位 AI 程序员,你是怎么看待的呢?欢迎留言讨论。


f208c620cc35a48febfb970669c42011.jpeg

添加微信并备注“入群”,交流工作生活小技巧~

推荐阅读:

在上海做程序员这么多年,退休后我的工资是多少?

有个望夫成龙的老婆是什么体验?

2023 总结:我在上海做程序员的第八年

前段时间面试了一些人,有这些槽点跟大家说说

简历共赏|一位不愿透露姓名的技术专家

六年安卓开发的技术回顾和展望

两位阿里 P10 的成长经历,让我学到这几点

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

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

相关文章

顺序表后续以及通讯录项目

⽬录 1. 基于动态顺序表实现通讯录项⽬ 2. 顺序表经典算法 3. 顺序表的问题及思考 正⽂开始 继上一篇 1.动态顺序表的查找 这里挺简单的如找不到就返回一个负数,因为索引不可能是负的这里就用来代表找不到 下面是找不到的示例 最终代码可以优化成这样 2.动态…

2024-03-13 作业

网络编程&#xff1a; 1.思维导图&#xff1a; 2.上课写的代码&#xff1a; 2.1网络字节序与主机字节序转换 运行代码&#xff1a; #include <myhead.h> int main() {int num 0x12345678;short int value 0x1234;int num_n htonl(num);int value_n htons(value);…

Window API 使用的一些注意事项

文章目录 1、LPCWSTR类型2、LPCTSTR类型3、LPCSTR类型4、LPCTSTR和LPCWSTR区别5、LPCTSTR和LPCSTR、LPCWSTR三者区别6、_T(" ")7、DWORD类型转换为std::wstring类型8、char类型转换为LPCSTR类型9、获取当前时间戳(毫秒)10、std::wstring和LPCSTR区别11、std::wstring…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Toggle)

组件提供勾选框样式、状态按钮样式及开关样式。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 仅当ToggleType为Button时可包含子组件。 接口 Toggle(options: { type: ToggleType, is…

android studio 连接mumu模拟器调试

1、打开mumu模拟器 2、在Android Studio 中 控制台 cd 到 sdk 目录下 platform-tools 文件夹&#xff0c;有一个adb.exe 可运行程序 一般指令&#xff1a; adb connect 127.0.0.1:7555 但是这个执行在window环境下可能会报错 解决方法是在 adb 之前加 ".\", 问题…

精读《正交的 React 组件》

1 引言 搭配了合适的设计模式的代码&#xff0c;才可拥有良好的可维护性&#xff0c;The Benefits of Orthogonal React Components 这篇文章就重点介绍了正交性原理。 所谓正交&#xff0c;即模块之间不会相互影响。想象一个音响的音量与换台按钮间如果不是正交关系&#xf…

Java初阶数据结构队列的实现

1.队列的概念 1.队列就是相当于排队打饭 2.在排队的时候就有一个队头一个队尾。 3.从队尾进对头出 4.所以他的特点就是先进先出 所以我们可以用链表来实现 单链表实现要队尾进队头出{要有last 尾插头删} 双向链表实现效率高&#xff1a;不管从哪个地方当作队列都是可以的&…

学习JAVA的第二十一天(基础)

多线程 线程&#xff1a; 线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。 进程&#xff1a; 程序的基本执行实体 并发&#xff1a; 在同一时刻&#xff0c;有多个指令在单个CPU上交替执行 并行&#xff1a; 在同一时刻&…

uniapp h5 部署

uniapp 配置 服务器文件路径 打包文件结构 //nginx 配置 server {listen 8300;server_name bfqcwebsiteapp;charset utf-8;#允许跨域请求的域&#xff0c;* 代表所有add_header Access-Control-Allow-Origin *;#允许带上cookie请求add_header Access-Control-Allow-C…

利用Anaconda创建环境

利用Anaconda创建环境 1. 创建环境的步骤 1. 创建环境的步骤 1.在终端中&#xff0c;使用以下命令创建一个新的 Anaconda 环境。假设您想要创建一个名为 myenv 的环境&#xff1a; conda create --name myenv2.如果您想指定 Python 版本&#xff0c;可以在创建环境时添加版本号…

改三行代码就发了SCI一区?基于全面学习策略的Jaya算法!学会你也可以!CEC2017效果极佳!

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类智能优化算法及其改进的朋友&#xff0c;可关注我的公众号&#xff1a;强盛机器学习&#xff0c;不定期会有很多免费代码分享~ 目录 原始Jaya算法 改进Jaya算法策略详解&…

使用Golong轻松实现JWT身份验证

使用Golong轻松实现JWT身份验证 JSON Web Tokens (JWT)是一种流行的安全方法&#xff0c;用于在两个方之间表示声明。在Web应用程序领域&#xff0c;它们通常用作从客户端向服务器传输身份信息&#xff08;声明&#xff09;的方式。本教程将引导您逐步实现Go应用程序中的JWT身份…

操作系统内功篇:硬件结构之CPU是如何运行的?

本文分5个小结&#xff0c;分别是图灵机工作方式&#xff0c;冯诺依曼结构&#xff0c;总线线路位宽和CPU位宽&#xff0c;程序执行的基本过程&#xff0c; a12的具体执行过程。 一 图灵机的工作方式 图灵机由纸带&#xff0c;读写头组成。读写头上有一些部件例:存储单元&#…

java集合框架——List集合概述及ArrayList,LinkedList的区别

前言&#xff1a; List系列集合是Collection集合中两个系列的其中一个&#xff0c;整理下笔记。打好基础&#xff0c;daydayup&#xff01; 需要了解Collection的&#xff0c;可以看这篇java集合框架——Collection集合概述 List系列集合 List系列集合的特点为添加的元素有序&…

python-0007-django模版

介绍 模版是对js&#xff0c;html等资源的封装 新建 在项目路径下新建模版文件夹templates&#xff08;可以为其他名称&#xff09;&#xff0c;要是想细分业务的话&#xff0c;还可以在templates路径下继续建文件夹。如下图&#xff1a; 注册模版 在项目的settings找到T…

分布式链路追踪(一)SkyWalking(1)介绍与安装

一、介绍 1、简介&#xff1a; 2、组成 以6.5.0为例&#xff0c;该版本下Skywalking主要分为oap、webapp和agent三部分&#xff0c;oap和webapp分别用于汇总数据和展示&#xff0c;这两块共同组成了Skywalking的平台&#xff1b;agent是探针&#xff0c;部署在需要收集数据的…

深入解析C++树形关联式容器:map、set及其衍生容器的使用与原理

文章目录 一、引言二、关联式容器的中的 paira.pair 的创建及使用b.pair 间的比较 三、 map 与 set 详解1. map 的基本操作2. set 的基本操作3.关联式容器的迭代器 四、 multimap 与 multiset 的特性五、关联式容器的使用技巧与注意事项1. 键值类型的选择与设计2. 自定义比较函…

STM32第八节:位带操作——GPIO输出和输入

前言 我们讲了GPIO的输出&#xff0c;虽然我们使用的是固件库编程&#xff0c;但是最底层的操作是什么呢&#xff1f;对&#xff0c;我们学习过51单片机的同学肯定学习过 sbit 修改某一位的高低电平&#xff0c;从而实现对于硬件的控制。那么我们现在在STM32中有没有相似的操作…

【AI+编程】利用chatGPT编写python程序处理日常excel工作提升效率小技巧

之前写过一篇AI编程相关的文章 【人工智能】为啥我最近很少写python编程文章了&#xff0c;浅谈AI编程RPA提升工作效率 。 最近有同学私信我&#xff0c;怎么利用AI编程来提升工作效率&#xff0c;除了文章里讲的 使用AI帮忙写算法、代码提示、代码优化、不同语言转换(如J…

如何简化漏洞管理生命周期

如今&#xff0c;由于系统中的漏洞数量不断增加&#xff0c;各种规模的组织都面临着巨大的挑战。截至 2024 年 2 月&#xff0c;国家漏洞数据库是漏洞数据的综合来源&#xff0c;报告了超过 238,000 个案例。网络安全漏洞可能会导致严重后果&#xff0c;包括关键流程中断、敏感…