随着 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. 【Unity3D】调整屏幕亮度、饱和度、对比度

    1 屏幕后处理流程 ​ 调整屏幕亮度.饱和度.对比度,需要使用到屏幕后处理技术.因此,本文将先介绍屏幕后处理流程,再介绍调整屏幕亮度.饱和度.对比度的实现. ​ 本文完整资源见→Unity3D调整屏幕 ...

  2. JDK中动态库加载路径问题,一文讲清

    前言 本周协助测试同事对一套测试环境进行扩容,我们扩容很原始,就是新申请一台机器,直接把jdk.resin容器(一款servlet容器).容器中web应用所在的目录,全拷贝到新机器上,servlet容 ...

  3. C语言下载minGW地址

    https://sourceforge.net/projects/mingw-w64/files/ 下载红框内即可

  4. 谁家面试往死里问 Swagger 啊?

    大家好,我是小富- 前言 说个挺奇葩的事,有个老铁给我发私信吐槽了一下它的面试经历,他去了个国企单位面试,然后面试官跟他就Swagger的问题聊了半个多小时.额- 面试嘛这些都不稀奇,总能遇到是千奇百 ...

  5. LeetCode952三部曲之一:解题思路和初级解法(137ms,超39%)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 题目描述 难度:困难 编程语言:Java 给定一个由不 ...

  6. iOS16新特性:实时活动-在锁屏界面实时更新APP消息

    简介 之前在 <iOS16新特性:灵动岛适配开发与到家业务场景结合的探索实践> 里介绍了iOS16新的特性:实时更新(Live Activity)中灵动岛的适配流程,但其实除了灵动岛的展示 ...

  7. 「repost - from Quack」Matroid.md

    拟阵?type=header 拟阵的定义与常见性质 & 拟阵交算法 拟阵的定义与常见性质 独立集系统和拟阵 定义独立集系统\(S=(E,\mathcal{I})\),\(E\)是基本元素的集合 ...

  8. npm install xxx 后加上-s、-d、-g之间的区别?

    1.npm install xxx -s npm install xxx -s.npm install xxx -S是npm install xxx --save的简写形式 局部安装,记录在packa ...

  9. TrueUpdate白加黑木马分析保姆级教程

    目录 TrueUpdate白加黑木马分析保姆级教程 0x00:前言 TrueUpdate是什么? 0x01: TrueUpdate逆向分析解压密码 查壳 脱壳 分金定穴 找到解压密码方法1: 找到解压 ...

  10. jdk-14.0.1环境搭建及cmd环境编译执行

    1.安装包获取 https://www.oracle.com/java/technologies/javase/jdk14-archive-downloads.html 2.环境变量配置 最新版本的J ...