重磅揭秘,AI 编程崛起,真的会让程序员面临裁员危机吗?

"完了,AI 要取代程序员了!"

我的朋友圈里经常会分享一些 AI、AI 编程的东西,最近收到不少人的私信:

  • "要不要转行啊?"

  • "现在学编程还有意义吗?"

  • "听说隔壁公司已经用 AI 取代了 3 个程序员..."

e5d5468d793e2185ffaa18ebf089dcfb.jpeg

坦白说,我理解这样的焦虑。

就在上周,我认识的一个不懂编程的产品小姐姐,用 Cursor 愣是搞定了一个自动处理数据的小程序,替代了原来技术人员 3 天才能完成的工作。

这事在公司传开后,隔壁开发组的同事都坐不住了:"完了完了,连产品经理都要来抢饭碗了..."

但是,真相真的如此悲观吗?

作为一个亲身经历了从 ChatGPT 横空出世,到目前各类 AI 编程工具井喷式爆发的亲历者,今天我想和大家聊聊第一手的观察:

AI 编程的确来势汹汹,但与其谈"替代",不如聊聊它给我们带来的新机遇。

看完文章,你将了解到:

  • 什么是 AI 编程?

  • 常规软件开发流程的介绍

  • AI 编程在开发流程中存在的优势和缺陷

  • AI 编程未来的机会在哪?

  • 普通人如何上手 AI 编程。

一、什么是 AI 编程?

说到 AI 编程,咱们得先聊聊 AI 和编程这两个词汇。

它们有什么共同点呢?

其实都是用来解决问题的工具。

不同的是,“编程”需要经历需求分析和功能设计,最终是利用 Python、Java 这些编程语言跟机器交互来完成工作。

而 AI 呢,就是用自然语言和跟机器聊天,只要把问题说清楚,描述好背景,就能解决一些问题。

f3bcc606059c00d51533595164e5abf7.jpeg

比起学一门编程语言,学习跟 AI 聊天看起来简单多了。

那 AI 编程到底是什么呢?

简单来说,就是利用 AI 来辅助我们更高效地使用编程语言完成开发工作。

和传统的编程相比,核心依然是编程语言,但现在的开发方式变得更简单了,门槛也随之降低。

为什么这么说呢?

以前,即使是简单的代码,程序员都得亲自动手从头写起。

而现在有了 AI 编程,程序员只需要专注于那些复杂的代码和核心业务逻辑,其他琐碎的工作交给 AI 处理,压力瞬间减轻不少。

更厉害的是,以前写代码可是程序员的专属技能,但如今,普通人通过与 AI 聊天,也能开发出一些实用的小工具。

有人可能会问:那我们到底该不该学 AI 编程呢?这个领域是否值得深入去研究呢?

其实,这个问题很好回答。你只要看看现在 AI 编程工具在市场上的火爆程度,就能一目了然。

Cursor ,大家应该比较熟悉了,最近比较火。

8 月 9 号,cursor 背后的公司 Anysphere 宣布获得 6000 万美元的 A 轮融资,而这家公司刚刚成立两年,到现在也才 10 几个人。

a8e6d5a8458ad0e61486de7b2dc97677.jpeg

Github Copilot ,2022 年发布的一款 AI 编程工具,目前拥有近 200 万付费用户。

截至今年 4 月,GitHub 的收入同比增长了 45%,而这个增长的范围内,Copilot 这个工具就占了 40%。

2de296cd70a89fd0bcecfed83ff2251e.jpeg

这是国外的情况,再回到国内。

阿里的通义灵码,在 IDE 插件下载量已经超过了 500 万,在 中华财险、哈啰集团、长安汽车 等等大型公司都在使用,累计生成代码超 10 亿行。

e1821105c174a1c55f4d1405a905c580.jpeg

这些种种迹象表明,AI 编程未来的趋势很可观。

二、软件开发常规流程

在说 AI 编程存在的优势和问题之前,我们先来看看最常见的软件开发流程的三个阶段:

25d10b817bd34839b233ca6a8ebf6fc8.jpeg

阶段一:需求分析

不论是开发新功能、优化已有功能,还是修复 Bug,首先要做的就是「需求分析」。

这一阶段的核心是搞清楚我们的目标是什么,任务完成后要达到什么效果:

  1. 这个功能要解决什么问题?

  2. 用户使用这个功能时的体验如何?

  3. 功能和用户怎么交互,界面设计是什么样的?

  4. 对性能有怎样的要求?

最终整理整理成一份「需求文档」,作为需求分析阶段的交付成果。

阶段二:功能设计

当需求明确后,接下来就是「功能设计」阶段,这个阶段的任务是决定技术实现方案:

  1. 需要哪些技术、算法,使用什么模型?

  2. 界面应该如何模块化?

  3. 数据如何存储?

  4. 整个开发计划要分几步进行?

所有这些问题都要通过文字记录下来,写进「开发设计文档」,以指导开发人员后续的实现步骤。

阶段三:软件开发和测试

前两个阶段是方向和策略的规划,到了这一阶段,开发人员就要开始真正动手写代码了。

无论是功能代码、单元测试代码,还是测试人员编写的测试用例,甚至自动化测试脚本的搭建,都是这个阶段的主要任务。

这个阶段通常耗时最长,因为在实际开发过程中,最容易遇到各种各样的问题,可能是实现上的困难,也可能是前期需求不清晰或技术选型错误等遗留问题。

三、AI 编程存在的优势和缺陷

AI 编程的确有很多优势,但我们不能盲目神话它。

只有清楚了解它的现状,认清优势和局限,才能更好地利用 AI 编程为我们服务。

一)需求分析阶段

在需求分析阶段,涉及到大量的人际沟通工作,比如需求收集和市场调研,而利用 AI 来优化的空间相对较小。

这是因为需求的复杂性和不确定性使得 AI 难以在这一阶段发挥主导作用。

为什么这么说呢?

一般的需求可以简单分成两种,全新需求、增量需求

全新需求通常在最初阶段并不明确,很多细节和方向性都处于探索阶段,充满不确定性,难以细化。

而增量需求则是基于现有的产品功能来扩展,未来的功能可能会比原有功能更复杂。因此,这类需求依赖于大量历史功能的积累。

目前,大部分公司还没有训练出能够充分融入产品背景和特定业务术语的小模型,这使得在短时间内收集与增量需求相关的所有背景信息变得十分困难。

所以,无论是全新需求还是增量需求,在现阶段都无法让 AI 完全自动生成能够直接指导架构师或高级工程师设计功能。

所以这个阶段大部分工作靠人来做反而是最有效率的。

但是有一点是可以做到:让 AI 扮演需求分析师来提问,帮助为我们开脑洞,分析需求可能存在的问题,或者帮助我们发掘出更加核心的需求。

18eb97c56c02f4a59ef4815f38e625d4.jpeg

当然,这种方式严格来说不算 AI 编程,但是在软件的开发周期中起到了不小的作用。

二)功能设计阶段

对于一些相对简单的任务,我们可以不用经过复杂的设计流程,直接利用像 Cursor、ChatGPT 这样的工具来快速生成代码,效果也是立竿见影的。

之前我也写过文章,证明了这些工具在从 0 到 1 编写代码时,生成的质量还不错。

但是在实际的软件开发中,完全从 0 开始的情况其实相对较少。

我们面临的往往是增量需求,在一个庞大的产品体系里增加一个模块,优化一个功能。

这种情况下,产品的业务模块往往有着错综复杂的关联性。

要让 AI 全面理解每一个模块的业务逻辑,并根据增量需求做出准确的调整,说实话,难度还是非常大的。

不让 AI 去理解的话,写出来的东西,基本上也用不了。

39108ff553e68ecbfb489aeeb31c5b67.jpeg

所以核心问题还是:如何让 AI 理解现有的产品架构、并在此基础上进行功能迭代。

这个问题其实在需求设计、功能设计,甚至编码过程中都很常见。

有解法吗?

从理论上来说,的确有解法,但在实际应用中,成功案例还比较少见。

一种方法是将产品需求、功能设计和代码层面的知识,作为数据来源,训练一个符合企业内部产品背景的小模型。

或者可以结合外部知识库,利用 RAG 技术(检索增强生成)来获取与此次增量需求相关的内容。

不过,我个人的实践经验不够多,或者说周围确实也没听到很多成功案例。

只能说:理论上是可行的。

三)软件开发和测试阶段

在 Coding 的过程中,AI 编程工具确实能做很多事情,比如代码补全、生成通用代码,甚至帮忙修改一些非业务性质的常见 bug。

它们的确为我们按时下班带来了更多可能。

但根据我的实验、身边朋友和同事的反馈,实际情况是这些工具能帮我们节省的时间大概只有 20%~ 30%。

让人很费解的是,那些说能提升 80%,甚至夸张到可以直接替代程序员的说法从何而来。

此外,我认为这个阶段,AI 对我们最大的贡献在于单元测试的生成。

我们自己内部也是这样,特别是老代码的重构,如果没有单元测试,简直举步维艰。

宁愿它慢慢变成一堆“屎山”,也不想重构成一个“定时炸弹”。

c43bf2dacf6f4454edb00e7d7b1a4f53.jpeg

在咱们的企业内部,无论是否采用领域驱动设计(DDD)来推行测试驱动开发(TDD)。

只要通过清晰的需求描述和明确的范围,我们都可以先写单元测试,再根据测试完善或者重构代码。

这样的流程能更好的保证代码质量,不管最后是人工写的还是 AI 生成的代码。

在测试阶段,我也尝试过让 AI 基于网页代码生成自动化测试脚本。简单场景还行,一遇到复杂业务场景,基本上就凉了。

四、 AI 编程未来的机会

对于 AI 编程工具的创业者来说:

关键在于能否让工具理解更完整、更长的代码集,让开发者面对增量需求时,也能够生成有价值的、可复用的代码。我相信很多人一定会为之付费。

对于企业来说:

他们需要的不仅是 AI 编程,而是一套涵盖软件开发全生命周期的 Code Agent。

从需求分析、软件功能设计,到编码和测试,这个系统都应该能够基于企业的知识库提供相关联的信息,从而为我们提供更有价值的的文档和代码。

然而,这样的 Code Agent 需要建立在企业内部规范的开发流程和完善的知识沉淀体系之上。

对于未来,这将是企业能否跑在最前面的机会。对于现在,这更像是一种要求。

对于程序员来说:

随着企业引入 Code Agent,即使是那些只有一点点忧患意识的程序员,也会随着企业的变革而前进。

他们将不再仅仅从事简单、易于实现的编码工作,而是专注于那些 AI 难以处理的高级任务,或者作为 AI 工具的组织者,让这些工具为自己服务。

所以 AI 完全替代程序员这个说法,目前还很难。

对我们普通人来说,AI 编程带来了巨大的普惠性。

现在,许多不懂编程的人已经通过 帮人定制智能体、构建付费网站、代码代写 等等方式获得了正向反馈,实现了变现。

4c3b39179da1a0a056d568d721b000c7.jpeg

未来,随着信息化的加速,智能设备和软件将会无处不在,我们的创意和想法将不再因为编程的门槛被扼杀在萌芽里。

随着模型底层能力的提升,开发一套软件、做一个对于他人或者自己有价值的软件工具,将会变得容易很多。

如果普通人能够利用 AI 编程来优化身边的手机设备、智能家居,加入各种定制化功能,那将是多么美妙的事情。

五、普通人如何上手 AI 编程

0 基础适合吗?

首先要做一波人员劝退,0 基础可以,但是得对做小产品、小工具感兴趣,而且要有耐心

因为在编程过程中肯定会遇到各种问题,得能沉得住气。

接下来,我们得找到一个需求,解决一个问题,用问题来驱动学习。

最开始的时候不要想要开发一个完整的系统。

前几天直播的时候,我听到最多就是想要开发一个什么什么系统,不是不行,只是难度太大。

想好和用户的交互方式什么?

是利用网页、浏览器插件、智能体,还是说是一个电脑本地打开就能用的工具。

最后就是找工具了,无论是利用 Cursor,还是 GitHub Coplit,又或者是国内的编程工具。

之前写过一篇 Cursor 教程。

国内编程工具,除了阿里的通义灵码之外,字节的豆包 MarsCode 也值得一试。

使用 MarsCode,甚至不需要安装软件和复杂的编译环境,网页上可以直接开发项目。

9721bd668219212338d35d8fe0842f2a.jpeg

此外,豆包 MarsCode 还提供了免费的公益课程,教你怎么快速上手,做出自己的爆款小工具。

免费报名地址:https://zjsms.com/iBEeu9Q6/

2a87b9fc82724ed0b15df42e4168afa0.jpeg

六、总结

回到开头那个让程序员们焦虑的问题:AI 真的会取代我们吗?

答案已经很明显了。

就像当年电子表格没有取代会计,而是让更多人学会了财务管理;

word 没有取代作家,而是让更多人能够写作;

同样,短时间内,AI 编程将不会取代大多数程序员,而是会让编程这项能力走进千家万户。

想想看:

  • 家里的智能设备,以后可能只需要动动嘴就能编程定制

  • 办公室的重复工作,可能只需要简单描述就能自动化

  • 你脑子里天马行空的想法,也许很快就能通过 AI 变成现实

这不正是我们一直期待的未来吗?

程序员的未来不是被取代,而是化身为 AI 编程的"导演",让创意和技术碰撞出更美的火花。

对于普通人来说,这或许是最好的时代 —— 不用再为"不懂编程"而困扰,AI 正在悄悄为你打开一扇通向技术世界的大门。

无论你是程序员,还是对编程充满好奇的普通人,不妨从今天开始,带着一个问题,试着用 AI 实现一个小小的想法。

也许你会发现,真正的红利,就在你伸手可及的地方。

我是 🐼 熊猫 Jay,分享一些我的低维认知,希望有所帮助。

一个小福利,我准备了一份 Python 超详细的学习资料,评论区回复“python”领取。

79fe67df97728f67e70844e6f758350d.jpeg

如果觉得不错,随手点个赞、收藏、转发三连吧。

如果想第一时间收到推送,也可以给我个关注 ⭐

谢谢你看我的文章 ~


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

117. 填充每个节点的下一个右侧节点指针 II【 力扣(LeetCode) 】

文章目录 零、LeetCode 原题一、题目描述二、测试用例三、解题思路3.1 层次遍历3.2 层次遍历(优化) 四、参考代码4.1 层次遍历4.2 层次遍历(优化) 零、LeetCode 原题 117. 填充每个节点的下一个右侧节点指针 II 一、题目描述 给…

OpenCV高级图形用户界面(17)设置一个已经创建的滚动条的最小值函数setTrackbarMin()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::setTrackbarMin 这个函数的作用就是设置指定窗口中轨迹条的最小位置。这使得开发者能够在程序运行时动态地调整轨迹条的范围,而不…

如何安装和初始化飞牛私有云 fnOS?

如何安装和初始化飞牛私有云 fnOS?

万家数科:零售业务信息化融合的探索|OceanBase案例

本文作者:马琳,万家数科数据库专家。 万家数科商业数据有限公司,作为华润万家旗下的信息技术企业,专注于零售行业,在为华润万家提供服务的同时,也积极面向市场,为零售商及其生态系统提供全面的核…

对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。 示例 1: 输入:root [1,2,2,3,4,4,3] 输出:true示例 2: 输入:root [1,2,2,null,3,null,3] 输出:false提示: 树中节点数目在范围…

一款实现PLC扩展CANFD的好工具 — PXB-6020D协议转换器

如何轻松实现PLC扩展CAN FD?本文将简单介绍PLC上的CAN接口,并分享一款简单的好工具——PXB-6020D,它能帮助我们轻松实现从Modbus到CANFD的无缝转换。 在工业自动化领域,PLC(可编程逻辑控制器)是核心组件之一…

民宿在线预订:SpringBoot技术实践指南

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…

基于SSM服装定制系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,服装类型管理,服装信息管理,服装定制管理,留言反馈,系统管理 前台账号功能包括:系统首页,个人中心&#xf…

Linux LCD 驱动实验

LCD 是很常用的一个外设,在裸机篇中我们讲解了如何编写 LCD 裸机驱动,在 Linux 下LCD 的使用更加广泛,再搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。本章我们就来学习一下如何在 Linux 下驱动 LCD 屏幕。 Framebuffer 设备 先来…

基于vue框架的的点餐系统1o2te(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,商家,菜品分类,菜品信息 开题报告内容 基于Vue框架的点餐系统开题报告 一、研究背景与意义 随着移动互联网技术的飞速发展,餐饮行业也迎来了数字化转型的浪潮。传统的点餐方式,如纸质菜单和人工记录&…

Linux系统基础-文件系统

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux系统基础-文件系统 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 回顾C语言…

【排序】——1.冒泡排序法(含优化)

冒泡排序 1.原理 左边大于右边交换一趟排下来最大的交换到右边来(接下来所以文章用升序举例) 从左到右,相邻元素进行比较。 每次比较一轮,就会找到序列中最大的一个(最小的一个——降序)。这个数就会从序列的最右边冒出来。 以…

《Spring Cloud Config与Bus整合实现微服务配置自动刷新》

目录 Config与Bus整合自动刷新步骤1:安装RabbitMQ并启动RabbitMQ的安装 步骤2:创建项目创建Eureka Server创建config-server 步骤3: 添加依赖步骤4:Config Client步骤5:测试运行问题一问题二 总结 Config与Bus整合自动…

SQL Server-导入和导出excel数据-注意事项

环境: win10,SQL Server 2008 R2 之前写过的放在这里: SqlServer_陆沙的博客-CSDN博客 https://blog.csdn.net/pxy7896/category_12704205.html 最近重启ASP.NET项目,在使用sql server导出和导入数据时遇到一些问题,特…

企业内训|LLM大模型技术在金融领域的应用及实践-某商业银行分行IT团队

本企业培训是TsingtaoAI技术团队专们为某商业银行分行IT团队开发的LLM大模型技术课程。课程深入分析大模型在金融行业中的发展趋势、底层技术及应用场景,重点提升学员在大模型应用中的实际操作能力与业务场景适应力。通过对全球商用 LLM 产品及国内外技术生态的深度…

Python基础学习——数据学习教程

本期内容主要是,帮助刚刚入门的新手小白们快速掌握 “numpy” 的常用功能,保证日常绝大多数场景的使用。可作为机器学习或深度学习的先修课程,也可作为快速备查手册。 > 教程原则如下: 偏实用高频 API展示实际用法简单直接使…

[AWS]RDS数据库版本升级

背景:由于AWS上mysql5.7版本不再支持,需要进行版本升级。 吐槽:每年都要来那么几次,真的有病一样,很烦。 步骤一、升级检查 AWS提供了一个python的升级检测脚本,可以按照一下脚本下载测试: [r…

Race Track Generator Ultimate:Race Track Generator(赛车场赛道看台场景创建工具)

下载:​​Unity资源商店链接资源下载链接 效果图:

SpringSecurity源码分析以及如何解决前后端分离出现的跨域问题

解决Security前后端分离出现的跨域问题 一. Security源码分析 首先在看源码之前我们先来看这张图 , 这张图展示了Security执行的全部流程 从上图可知Security执行的入口是UsernamePasswordAuthenticationFilter这个抽象类 , 那我们就先从该类进行分析 1. UsernamePasswordAu…

Jmeter简介

基础介绍 Jmeter录制脚本的原始是配置一个HTTP代理,然后浏览器通过这个代理访问测试页面从而完成脚本录制。 一、下载安装 jmeter本身不需要安装,需要配置环境变量JDK,然后打开bin文件夹中的jmeter.vbs即可。建议jdk 1.7及以上版本。 基本祖…