随着 AI 技术的飞速发展,特别是大模型的出现,传统的程序员角色正在经历深刻的变革,我们不得不重新对自己进行审视和思考。

通用领域大模型的“泛化能力”

在过去的二十年内,AI 领域的大部分研究和应用都集中在完成一项特定的任务中,例如:分类图片、总结文章、多语言翻译等,然而随着模型参数的增加, ChatGPT 的出现体现了“大模型”在通用领域内令人惊叹的能力,一些不存在于模型内的泛化能力突然出现了,AI 突然从大型的复读机变成了真正的人工智能。

上图是给 ChatGPT 一张梗所做出的回答,我们可以发现,ChatGPT 不仅正确识别出了图片表象的炸鸡和隐藏的世界地图,更推测了炸鸡所在的“食品”和世界地图的“地理”之间的结合想表达的“轻松和有趣的氛围”,这一刻 AI 仿佛不再是冰冷的,而是拥有了某种灵魂。

具有想象力的多模态的输入和输出能力

“模态”本身是一种生物学概念,从人类的角度出发,主要代指触觉、听觉、视觉、嗅觉和味觉,而从现在最常见的用户交互形式上,图片、声音和文字承载了主要角色,现在的 AI 能力也已经完全具备了这三者之间的理解与转换,并且这已经不是以往基于 OCR 等拟合技术的转换。

现在目前大部分相关的 AI 产品集中在以文字输入为统一的输入格式,以 User Chat 代替 User Interface 的方式生成各类其他模态的数据如:大段文字、图片、音频视频、JSON 数据等,我们已经在将开发的核心关注点从以往的实现一个功能进行数据传递,转向为更为核心的用户需求上,如各类模态内容数据的生成,跨系统模态数据间的联想、传递、转换。

目前,GPT-4 已经对部分用户开放了 All Tools 模式,在这个模式下以往需要单独选择的联网能力、图片生成能力、最多 3 个的插件能力已经被完全整合,GPT-4 会自动根据要求自动使用适当的能力使用适应的模态进行输出。

结合 AI 的泛化能力,多模态的用户输入和输出具有更大有想象空间。除了 AR、自动驾驶、智能硬件等服务于人的应用场景也得以飞速发展,我们与机器的交互方式也可能会不仅仅局限在视觉、听觉,在触觉、视觉、嗅觉、味觉等以往难以被抽象化的模态输入也可以被进一步的发掘和应用。

AI 对程序员工作模式的冲击

随着 AI 能力的涌现,AI 已经对现有的软件开发模式和程序员的工作模式造成了冲击,并且大语言模型在某些特定语言内的表现甚至超过了大部分的程序员。

1、使用自然语言生成代码

编程语言的进化历程就是从低级语言逐渐向高级语言的转变,从汇编语言=>C=>JAVA,最终必然会经历演变为自然语言的阶段,而 AI 使得自然语言向相对低级语言的转变成为了可能,而且在现阶段下,只要单个任务足够清晰和简单,AI 已经可以超越很大一部分的程序员,并且不得不承认的是,编程语言在一定程度上只是人类和计算机系统间传递信息的一种模态,程序员在其中扮演的角色只是翻译官。

上述是一个基于汇编语言 8086 指令集实现阶乘函数的问答,我甚至因为手机尾号是 8084 打错了指令集名称,Chat GPT 4 给出了相应的汇编代码和对应的注释,虽然因为没有汇编环境没有进行执行,但扪心自问,我们在没有编译环境和代码提示时面对自己的常用语言手写代码,真的可以做到无调试成功运行么?

2、使用 AI 辅助编程

目前微软已基于 GPT 4 发布了 Github Copilot,在不对现有开发进行冲击的前提下为程序员提供了可靠的辅助编程工具,Github Copilot 不仅可以理解上下文的语义,而且可以从整个项目的角度跨文件获取上下文进行代码生成。

随着 AI 能力的提高,AI 已经可以作为 Asstent 或 Copilot 的角色辅助程序员进行开发,程序员的职责已经逐渐演变为负责规划任务和验收结果,其中具体的编码工作已经逐渐在被 AI 替代。

3、模拟人类协同

我们心中完美的软件开发团队是各类人员各尽其职,拥有匹配自身的完美技能,且人员之间可以高效的进行沟通,但是假设其中的某类人员可以完全用 AI 进行替代的话会怎样呢?

就现有技术而言,AI 已经完全已经可以胜任部分相对固定的物料生成,人工的工作主要集中在 prompt 的录入和产出物的审核上,相信大家在各个视频平台上,从很久以前就已经开始听过无数小帅和小美的故事了。而且在我身边已经有某些游戏游戏公司完全裁掉了自己的原画部门和内容部门,将内容生成的职责直接合并到了原产品部门。

人类行为的交互模拟

目前已经有大量的 AI 社会模拟项目涌现,可以对一个特定环境进行设定,给于各个 AI 一个特定的“人设”成为单独的智能体,各个智能体不停模拟相互关系进行迭代。

我们完全可以将环境设定为一个完美的软件开发团队,给于各个角色赋予特殊的职能,并使用特化的小模型进行赋能,当我们对模拟的环境按下了加速键,在算力足够的情况下又会发生什么,西部世界仿佛已经开始照进了现实。

AI 给我带来的焦虑感

本次 AI 浪潮经常被称为 AI 的 iPhone 时刻,但是 iPhone 只是优化了一部分的人机交互形式,让 PC 互联网进化到了移动互联网,而此次的 AI 浪潮更多的意义在于生产力的提升与替代,仿佛隐约代表着新一代的工业革命。

英国工业革命时,纺车的出现令生产效率大幅提高,手工纺织工人的就业机会急剧减少。曾几何时程序员仿佛带有着某种神秘的光环,而此次 AI 能力的涌现最让我焦虑的是,让我深刻认识到了程序员的“研发技能”不再具有壁垒,已经隐隐有了被 AI 替代的可能性,我以前自以为的高技术的能力的一部分已经成为了可以被替代的普通工作。而且 GPT-5 已经在路上,我已经不得不重新思考我的自我定位和工作方式。

程序员角色的转变

本次 AI 革命冲击的主体不是体力工作者,反而是很大一部分的智力工作者,程序员作为智力工作者的一大群体,在企业中同时也消耗了极大的成本。可以预见的是,程序员的部分岗位和职能必然会被 AI 所冲击。

首先,我们要认识到自己可以被替代的能力和不可以被替代的能力,从程序员的本身职能出发,我们要脱离将需求翻译成代码的基础能力,而更加关注更高阶的逻辑规划能力、架构设计能力、创新能力。

其次,大部分程序员往往是相对内向且不善于表达的,虽然 AI 具有了很强的理解和联想能力,但准确的需求描述和 prompt 描写能力,也会影响了你驱动 AI 产出内容的效率和质量。产品经理往往在表达能力上优于绝大多数的程序员,是很值得我们进行学习和借鉴的。

最后,我们不得不重新定义自己的工作流程,将工作进一步的进行细化并将部分工作交于 AI 进行实现,如:

  • 更加关注软件工程本身,将更加“简单纯粹”的函数交于 AI 实现

  • 使用 ChatGPT 解决通用领域问题

  • 使用 Github Copilot 提高编码效率

  • 在 Hugging Face 选择合理小模型解决领域问题

  • 使用 DALL-E 和 Midjourney 生成图片

  • 用 Notion AI 做日常记录和文档生成

  • 不仅局限于末端 Skill / Tool / 个人能力,将自己的思想和思维方式赋能 AI Agent

我相信,随着的 AI 从现有的“人工智能”向着细分领域“智能体”进行转变,程序员本身的角色也会随着现在的“码农”向着更高阶的“创新者”进行升阶,我们要深刻的认识到,使用 AI 工具并不是为了减轻工作的“负担”,而是为了调整工作的“重点”。

未来我们可能会和 AI 同台竞技

在《圣经》中,亚当和夏娃因为偷吃了“智慧之果”就被赶出了伊甸园成为了人。而面对拥有永生的 AI,人只能使用拔网线和拔电源的方式限制 AI 成为神。

科幻已经映照进了现实,AI 此刻离我们仿佛很近但又很远,仿佛离我们很远但又很近

  • 电影《流浪地球》2019~2023

  • 剧《疑犯追踪》2011~2016

  • 书《失控》《科技想要什么》《必然》《5000 天后的世界》1994~2023

随着通用 AI 能力的发展和 Token 问题的解决,领域 AI 必然会以“智能体”的形式代替特定岗位的工作职能和人类同台竞技,但淘汰我们的不是 AI,而是会使用 AI 的人。

作者:京东科技 董劭杰

来源:京东云开发者社区 转载请注明来源

向“创新者”升阶,程序员当下如何应对 AI 的挑战的更多相关文章

  1. 程序员的福音,AI可以自动修复bug了!

    人工智能完全学会自己编程,可能说起来还有一种科幻感,但 AI 帮程序员找 bug 这件事,已经达到了不错的水平. 北京大学.微软亚洲研究院和中国电子科技大学就一起尝试着让 AI 找 bug.微软亚洲研 ...

  2. Python高效编程技巧实战 实战编程+面试典型问题 中高阶程序员过渡

    下载链接:https://www.yinxiangit.com/603.html 目录:   如果你想用python从事多个领域的开发工作,且有一些python基础, 想进一步提高python应用能力 ...

  3. 万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。

    引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈 ...

  4. 程序人生:02我来告诉你,一个草根程序员如何进入BAT

    本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字 ...

  5. 草根程序员如何进入BAT

        首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他技术 - 导航条 - 首页 最新文章 IT 职场 前端 - JavaScript - HTML5 - CSS 后端 - Pyt ...

  6. 优秀ASP.NET程序员修炼之路

    初级的程序员或经验不足的程序员往往只意识到自己的程序是写给计算机的,而不会在意程序其实也是写给人的,或在意得不够.不全面. 写给机器的程序,往往追求的是运行正确.执行效率能满足要求.但程序员的任务仅仅 ...

  7. 2017年 Java 程序员,风光背后的危机

    不得不承认,经历过行业的飞速发展期,互联网的整体发展趋于平稳.为什么这么说?为什么要放在 Java 程序员的盘点下说? 的确,对于进可攻前端,后可守后端大本营的 Java 程序员而言,虽然供应逐年上涨 ...

  8. 2017年PHP程序员未来路在何方——韩天峰

    PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...

  9. 2017年PHP程序员未来路在何方

    PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...

  10. 2017 年 PHP 程序员未来路在何方

    PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推 ...

随机推荐

  1. Linux 身份验证被拒绝,登录失败解决

    解决方案: vim /etc/ssh/sshd_config 修改参数 基本参数: PermitRootLogin yes #允许root认证登录 PasswordAuthentication yes ...

  2. [Lua][Love] "图块集与地图" 加载显示功能 TileMap

    效果 安装库 安装两个库,分别用来读xml和csv,如果有luarocks,执行下列命令 luarocks install xml2lua luarocks install ftcsv manoelc ...

  3. Mysql高阶自定义排序

    Mysql高阶自定义排序 嗨,大家好,我是远码,隔三岔五给大家分享一点工作的技术总结,花费的时间不多,几分钟就行,谢谢! Mysql对我们码农来说是在熟悉不过的日常了,就不在介绍它的基础用法了,今天我 ...

  4. HDLbits_Conwaylife

    题目介绍 题目链接 Conwaylife 简介 题目要求我们实现一个康威生命游戏的电路. 该游戏在一个二维网格空间中进行,在该题目中是 16 * 16 的大小,每一个格子都有两种状态(0 或 1),代 ...

  5. 基于Protege的知识建模实战

    一.Protege简介.用途和特点 1.Protege简介 Protege是斯坦福大学医学院生物信息研究中心基于Java开发的本体编辑和本体开发工具,也是基于知识的编辑器,属于开放源代码软件.这个软件 ...

  6. Vue 中的 Ajax

    1.1 使用代理服务器 1.1.1 方式一 在 vue.config.js 中添加如下配置: devServer:{ proxy:"http://localhost:5000" } ...

  7. vue~封装一个文本框添加与删除的组件

    标签组件的效果如下 组件作用 这是一个div,包含了两个文本框,后面是添加和删除按钮 添加按钮复制出新的div,除了文本框没有内容,其它都上面一样 删除按钮将当前行div删除 组件实现 <tem ...

  8. slate源码解析(三)- 定位

    接口定义 能够对于文字.段落乃至任何元素的精准定位 并做出增删改查,都是在开发一款富文本编辑器时一项最基本也是最重要的功能之一.让我们先来看看Slate中对于如何在文档树中定位元素是怎么定义的[源码] ...

  9. Redis系列之——高级用法

    文章目录 一 慢查询 1.1 生命周期 1.2 两个配置 1.2.1 slowlog-max-len 1.2.2 slowlog-max-len 1.2.3 配置方法 1.3 三个命令 1.4 经验 ...

  10. PostgreSQL学习笔记-5.基础知识:触发器、索引

    PostgreSQL 触发器是数据库的回调函数,它会在指定的数据库事件发生时自动执行/调用. 下面是关于 PostgreSQL 触发器几个比较重要的点: PostgreSQL 触发器可以在BEFORE ...