为什么AI不会夺去软件工程师的工作?

news2024/11/16 3:37:05

自从AI大模型爆火以来,我每天的工作中,已经有大量的真实代码是通过AI完成的。人工智能辅助下的编程,确实大幅减轻了我的工作负担,大大提高了生产力。

大语言模型是如此成功,以至于无可避免地在开发者社区中引起了各种猜测,其中特别让人关心的莫过于:

人工智能是否能够彻底改变我们的行业?程序员的工作是否会彻底被人工智能所代替?

我的观点是:

我们的行业将被大模型彻底改变,这毋庸置疑。但是,它只会让真正的软件工程师更加高效,而不是会取代工程师的工作。

这不是盲目自信。这个观点来自于一个更为本质的原则。这就是本文我们想讨论的真正的主题:

软件工程师的工作不是写代码,而是探索与发现。

01 软件工程师的工作不是写代码

很多软件工程师都戏称自己是“码农”, 这不难理解,毕竟代码才是我们真正的工作制品,可以工作的功能通过代码得以表达和体现,脱离了代码,文档等等都并不能真正的表达软件的价值。但是,需要注意的是:软件开发绝不仅仅是编码,编码其实是软件开发中的次要部分。它不过是“开发”活动的最终表达。软件开发的核心,就如同它的名字所表达那样,是“开发”,是从无到有的过程,是持续地探索和发现。

我们的开发工作中,有一半以上的时间,是用来探索我们原本不知道的东西,只有不到一半的时间,是去完成实际的“建造”——无论这个建造指的是文档还是代码。

探索和发现包含哪些事情呢?随便列举一些:

  • 理解真实的业务目标

  • 思考能满足业务目标的产品方案

  • 理解用户需求中模糊的细节

  • 思考架构设计的方案

  • 理解既有代码中已经实现了哪些功能,有哪些可复用的资产,有哪些约束和陷阱

  • 学习不熟悉的技术框架以及它们的特性

上面的这些事情, 都是探索起来非常费力,但是一旦弄明白就很容易做的事情。这也很类似于缺陷修复中常见的场景:定位3小时,修复10分钟。

下面的图表达了软件开发中的核心内容:

软件开发有3个核心问题:

  1. 弄清楚解决什么问题

  2. 设计出合理的解决方案

  3. 把它构建出来并交付使用

上图的横轴代表时间,纵轴代表知识,我们在整个的开发过程中,关键问题是知识的增长,也就是“探索和发现”。在上述3点中,前两点都是“探索与发现”,只有第3点,是“建造”。这也是当前的人工智能模型最擅长的地方,也是很可能成为工作主体的地方。前两点,大语言模型能够很有帮助,但是它更多还是辅助角色,成不了主体。

02 最大化探索和发现的效率

大家都在讲研发的提效。真正的提效,不是“建造”的速度有多快,而是在探索与发现上,节省了多少时间。用下图来表示:


上方的曲线和下方的曲线代表来完全不同的两类组织。第一类组织,在项目早期就快速定位了各种问题,从而降低了项目的开发周期,提升了开发质量。第二类组织,往往在项目早期风平浪静,一切看起来都很正常,直到开始进入集成测试甚至是临近上线阶段,问题大量爆发,项目延期,开发团队和客户都叫苦不迭。


我们肯定都希望能形成第一类组织,而不是第二类组织。但是现实的情况恰恰相反,第二类组织仍然是当前的主流。 只要看一下下面的漫画在现实中的普及程度,就知道现状究竟如何了:


最大化探索和发现的效率,是研发效能提升的关键。

03 大模型能帮我们做什么?

我们已经看到了很多通过大模型支持软件编码的工作。这属于软件工程中的“建造”部分。但是,没有好的设计能力,“建造”并不靠谱。


在软件工程的历史上, “设计”和“建造”的关系,我们是走过弯路的。在敏捷运动之前,软件工程专家们根据建筑业中的“设计”和“建造”是分离的,就认为软件中的“设计”和“建造”也是可以分离的。这个认知是完全错误的。

为什么建筑行业更多的时候可以区分“设计”和“建造”,而软件几乎完全不可能? 这里有两个根本原因:

  • 软件的复杂性远远超出一般的人类制品。

  • 软件价值本质上来自创新,而不是生产。

这个话题很宏大,我们不在这里展开,仅仅简单描述。 建筑也很复杂,但是大多数情况下的建筑,都有较为成熟的样本,但是它必须被一次次的生产,才能带来价值。你买了一套房子,所购买的是物质的房子,而不是作为信息的设计师图纸。但是软件不同。软件本身就是信息,本质上软件的生产过程,是信息生产过程。如果收走了“编码”,就好比一个作曲家没有乐器,一个烹饪专家没有烹调过程来检验菜品设计的效果一样——它减缓的是学习过程和迭代速度。

敏捷运动更加强调了代码的价值,这是非常正确的。但是,不可否认,编码还是一个非常琐碎的活动。

编码对于设计师的价值不在于编码活动本身,而是编码带来的学习过程。

那么,究竟有没有办法,在享有编码带来的反馈和学习的同时,可以降低在编码活动上的投入呢? 人工智能辅助编程之前,我认为没有这个可能性,但是,今天, 这件事已经是完全可能的了:


让人工智能完成大多数的编码工作,提升学习和反馈速度,让软件工程师成为真正的软件工程师,而不是软件建造师。

04 让你的能力和大模型相匹配

能把程序员从“编程”的具体活动中解放出来是一件好事情。但是,它也提出了新的要求。过去,如果我们对编程框架、语言都比较熟悉,本身就具备了价值。但是,今天这种价值,是很容易被人工智能取代的。

如何最大化探索和发现的能力? 大模型具备的知识其实比我们每个人能掌握的都多得多,但是,大模型不具备我们要解决的特定问题的上下文,它的能力能发挥多少,取决于使用大模型的那个人的能力。

今天的程序员,应该升级我们的技术栈,这包括了如何高质量的分析需求、如何掌握软件设计的原理,如何更快的理解和学习技术框架等等,同时,也需要理解如何更好的和大模型沟通。

所以,真正的软件工程师不会失业,也不会蜕变为“提示工程师”。 它还是它原来的意思,“工程师”——只不过有了大模型的助力,这种探索和发现会更加高效和重要。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

TortoiseSVN提交时忽略某些文件夹,不让它在提交列表中出现

1.首先右键,点击属性 2.新建一个忽略规则,点击确定即可

【React】原理

笔记来源:小满zs 虚拟 DOM // react.js // jsx > babel | swc > React.createElement const React {createElement(type, props, ...children) {return {type,props: {...props,children: children.map(child > typeof child object ? child : React.cr…

算法揭秘:时间复杂度与空间复杂度的实用指南

在我们编程的过程中,算法是解决问题的核心。而在评估算法的优劣时,时间复杂度和空间复杂度是两个不可或缺的概念。无论你是刚入门的编程小白,还是希望深入了解的学习者,理解这两个概念都能帮助你写出更高效的代码。今天&#xff0…

一步到位的智慧:BI可视化大屏在复杂环境中如何精准拾取目标

在可视化设计器中实现良好的组件拾取功能,是提升用户体验和设计效率的关键。它们不仅能够提升用户体验和操作效率,还能够增强设计的灵活性和精度,促进设计创新,并最终提升设计的质量和价值。因此,在可视化设计过程中&a…

【leetcode】环形链表、最长公共前缀

题目:环形链表 解法一:哈希表 创建一个哈希表,遍历链表先判断哈希表中是否含有要放入哈希表中的节点,如果该节点已在哈希表中出现那么说明该链表是环形的;如果链表节点出现nullptr那么就退出循环,该链表是…

AI美女横扫小红书:虚拟魅力如何颠覆网红时代?真真假假难辨,但是一样美!

最近, 关于AI美女在小红书上“屠版”的消息引发了广泛讨论。根据一位网友的群聊记录,他声称利用文生图模型生成AI美女图片,并通过账号矩阵管理软件操控了1327个小红书账号,成功将平台“屠版”。 更令人惊讶的是,小红…

React-Native 中使用 react-native-image-crop-picker 在华为手机上不能正常使用拍照功能

背景: React-Native 0.66 中使用 react-native-image-crop-picker 在安卓 华为手机上不能正常使用拍照功能, 其他品牌正常 代码如下: import ImagePicker from react-native-image-crop-picker;ImagePicker.openCamera(photoOptions).then(image > {callback(image);}) …

html+css(如何用css做出京东页面,静态版)

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>京东</title><link rel"stylesheet&q…

对c语言中的指针进行深入全面的解析

1.普通的指针: 实际上指针就是存放地址的变量&#xff0c;eg: int a10; int *p&a; 拆分一下int *中的*说明p是一个指针&#xff0c;int是它所指向的类型&#xff1b; 2.字符串指针和字符串数组 char*str1"abcd"; 先看这一个&#xff0c;这个就是一个字符串…

振弦式渗压计智慧水利工程 适用恶劣环境有保障

产品概述 振弦式渗压计适合埋设在水工建筑物和基岩内&#xff0c;或安装在测压管、钻孔、堤坝、管道或压力容器中&#xff0c;以测量孔隙水压力或液位。主要部件均采用特殊钢材制造&#xff0c;适合在各种恶劣环境中使用。特殊的稳定补偿技术使传感器具有极小的温度补偿系数。…

量产AI美女?一文讲清“数字尤物”背后的AI绘画的商机

这些AI美女都有刷到过吧&#xff1f;从国外Youtube的视频封面图的丰满hotgirl&#xff0c;到小红书笔记各式风格数字尤物&#xff0c;都已悄咪咪混入我们的社交媒体,而且“她们”的伪装技能越发满级! 更多实操教程和AI绘画工具&#xff0c;可以扫描下方&#xff0c;免费获取 本…

(undone) 声音信号处理基础知识(10) (Demystifying the Fourier Transform: The Intuition)

参考&#xff1a;https://www.youtube.com/watch?vXQ45IgG6rJ4 FT 可以把时域信息转为频域信息 以下是对于 FT 的一些 intuition-level 的理解&#xff1a; 1.FT 会把原始信号跟不同频率的一系列正弦波对比 2.对于每一个正弦波频率&#xff0c;我们会得到一个标量 和 一个相…

Unreal Engine 5 C++: 编辑器工具编写入门01(中文解释)

目录 准备工作 1.创建插件 2.修改插件设置 快速资产操作&#xff08;quick asset action) 自定义编辑器功能 0.创建编辑器button&#xff0c;测试debug message功能 大致流程 详细步骤 1.ctrlF5 launch editor 2.创建新的cpp class&#xff0c;derived from AssetAction…

Vue中nextTick的底层原理

Vue中nextTick的底层原理 前言一、异步更新队列二、前置知识2.1 JS 运行机制2.2 异步任务的类型 三、nextTick 实现原理3.1 Vue.nextTick 内部逻辑3.2 vm.$nextTick 内部逻辑3.3 源码解读3.4 为什么优先使用微任务&#xff1a; 前言 知其然且知其所以然&#xff0c;Vue 作为目…

UWB为什么是首选的室内定位技术

超宽带 (UWB) 是一种基于 IEEE 802.15.4a 和 802.15.4z 标准的无线通信技术&#xff0c;能够非常准确地测量无线电信号的飞行时间&#xff0c;从而实现厘米级精度的距离/位置测量。 除了这一独特功能外&#xff0c;UWB 还提供数据通信能力&#xff0c;且功耗极低&#xff0c;使…

【包教包会】CocosCreator3.x框架——音频模块(无需导入、无需常驻节点)

下载地址&#xff1a;AudioDemo3.x: CocosCreator3.x框架——音频模块 注意事项&#xff1a; 1、gi.musicPlay、gi.soundPlay是同步函数&#xff0c;使用前必须先将音频加载到缓存 Demo通过SceneLoading实现了一个极简的Loading页面&#xff0c;将音频全部加载后进入游戏&…

【Qt笔记】QStackedWidget控件详解

目录 引言 一、基础功能 二、属性设置 2.1 属性介绍 2.2 代码示例 2.3 代码解析 三、常用API 3.1 添加子部件 3.2 插入子部件 3.3 移除子部件 3.4 设置当前页面索引值 3.5 设置当前显示子部件 3.6 返回索引处子部件指针 3.7 返回子部件索引值 四、信号与槽 4.…

device靶机详解

靶机下载地址 https://www.vulnhub.com/entry/unknowndevice64-1,293/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.159 nmap -sS -Pn -A -p- -n 192.168.229.159 这段代码使用nmap工具对目标主机进行了端口扫描和服务探测。 -sS&#xff1a;使用…

C++存储数据单位转换输出字符串

C封装存储数据单位转换, 方便将输入数据以指定方式输出 main.cpp #include <wtypesbase.h> #include <string> #include <vector> #include <tchar.h>#ifdef _UNICODE using _tstring std::wstring; #else using _tstring std::string; #endif// 数…

typename、非类型模板参数、模板参数的特化、模板类成员函数声明和定义分离、继承等的介绍

文章目录 前言一、typename二、非类型模板参数三、模板参数的特化1. 函数模板参数的特化2. 类模板的特化 四、模板类成员函数声明和定义分离1. 显示实例化&#xff08;不建议使用&#xff09;2. 将生命和定义写在同一个.h文件中 五、 继承总结 前言 typename、非类型模板参数、…