等 AI 编程普及后,我该何去何从?

大家好,我是双越。前百度 滴滴 资深前端工程师,慕课网金牌讲师,PMP。我的代表作有:

  • wangEditor 开源 web 富文本编辑器,GitHub 18k star,npm 周下载量 20k
  • 划水AI Node 全栈 AIGC 知识库,包括 AI 写作、多人协同编辑。复杂业务,真实上线。
  • 前端面试派 系统专业的面试导航,刷题,写简历,看面试技巧,内推工作。开源免费。

我在正在开发一个 AI Agent 智能体项目【智语】一个智能面试官,可以优化简历、模拟面试、解答题目等。有兴趣的同学可以围观、学习。

开始

前几天有个同学和我聊天,说自从使用 AI 编程以后,感觉 AI 写代码比自己写的都好,自己会的这点东西还不如 AI 会的多,感觉很焦虑,都不知道接下来该往哪块学习了,没有了方向。

他让我帮忙分析一下这个话题。我这几天没事儿就在想这个事情,想的东西很多,乱七八糟的,正好写篇文章梳理一下思路。

明确范围,减少争论

本文聊的话题是一个大众话题,是针对绝大部分开发人员(尤其前端开发人员)的话题,大家都是普通开发者,每天做着普通的工作,都会被 AI 编程所影响。

如果你列举某个小众领域,很难,AI 搞不定。或者一个项目某一两个功能,很难, AI 搞不定。这种情况肯定存在,而且会持续存在,但它是小众的,不适用于大部分人。如果你正好在这种小众领域中,那恭喜你 AI 编程暂时对你影响不大。但你可千万别失业,因为失业了再找工作,小众领域的职位可没那么多。

最近 2 年,我每周都有几次 1v1 简历优化和模拟面试,聊过不知道多少人,能真正做过有难度项目的屈指可数,大部分都是增删改查。看网络上评论区这么热闹,人均架构师,动不动就并发量、大数据,其实实际工作啥样大家都知道。这就像知乎、脉脉人均年薪百万一样,实际大部分人的工资 1-2w 一个月,我接触的这些人,能超过 2w 的就是前几名了。

以 Cursor 为代表的 AI 编程工具,已经非常普及了,关键它们还都收费!!!所有大众的、收费的产品,只要不是强制的,它就一定是能解决实际问题,带来实际价值的。

免费的垃圾有的是,例如加 xxx 免费领取 20G 学习资料,下载了也是空占硬盘。但收费的、而且每个月持续收费的,一定不会是垃圾。

所以不要用一些小众的案例来否定 AI 编程的价值和趋势。

还有,本文讨论的是一个未来趋势,不是现在、今天或今年。不过这个未来也不会太遥远,我估计 2-3 年 AI 编程工具就会全面普及,即新手入门写第一行 Hello world 就都用 AI 写。

面试的变化

10 多年之前,国内刚开始有前端这个岗位,还是 jQuery 的时代。那时候面试经常考 DOM API ,例如 DOM 节点 attr 和 Prop 的区别、如何防止 XSS 攻击等。还经常考浏览器兼容性问题,因为那时候 IE 浏览器还大量存在。

再后来,Vue React 普及以后,就不再问 DOM API 的问题了。DOM API 依然存在,但早已经被 Vue React 等框架给封装的密不透风,你日常开发几乎用不到 DOM API 。

前几年面试经常考八股文,这是因为当年招聘市场需要大量的前端开发人员,只要能干活就可以来,要求不那么高。

大厂喜欢考算法、考源码,这是因为大厂开的工资高,要统一、流程性的去筛选最优秀的程序员。算法和源码就是最低成本的筛选方式。基本上一道算法题,就可以屏蔽掉 99% 的培训班出厂人员。

现在考的最多的是场景题,就是给你一个需求,让你去设计甚至直接写代码。因为现在市场需求少,预算低,企业更加务实,尽量低成本招聘能干活的人。

我大胆猜测,AI 编程普及以后,面试的过程和重点会逐步发生变化,会更多考察场景题,更注重思考能力、设计能力和 AI 应用的技巧。例如一场面试可能就一个题:使用 AI 编程实现一个 xxx app ,具体有 xxx 需求。等 AI 写完以后让你解释核心代码和流程,讲解设计和实现的思路。然后再给你加一些需求,让你继续用 AI 修改。在这个设计、编码、解释、修改的整个过程中,去观察这个候选人的工作能力。

而且,不会再区分前后端,有 AI 的加持可以打破技术栈的界限。甚至可以直接一键即成 Supabase 数据库、一键发布到 Vercel 等这种服务。真正的全栈、全能。

如果我是一个老板,我要招聘程序员,我觉得用这种方式非常有效。尤其对于中小企业,以及大厂的小团队。

AI 编程擅长做什么

AI 编程能做的事情非常多,而且做的又快又好,所以才会让这么多人付费。

第一,对于描述明确的需求,常规的开发任务,它都能很好的完成任务,代码质量相当于中级程序员,有 AI 辅助我们都不用在记什么 API 和语法了

第二,它写的非常快,几百行代码、创建多个文件,都可以在 1 分钟之内写完,这是人工达不到的速度。

第三,在你的规范和要求下,它可以很好的考虑到代码的安全性、稳定性和兼容性,而且时刻坚决执行,人工很难时时刻刻想到这么全面

第三,AI 非常擅长解读陌生代码,解释陌生的 API ,当你拿到一个新的代码库,配合 AI 编程可以快速掌握。如果纯人工去解读、去查询,即便是有经验的老程序员,也得耗费大量精力去查询、梳理、总结。

第四,当你要开发新功能时,AI 可以很好的帮助你梳理设计步骤和思路,Cursor 就有一个 plan mode 它先帮你制定计划,你觉得不合适可以修改它的计划,然后再按照计划去开发

(暂时想到这么多,如果其他欢迎评论区来补充、分享)

我说这些好处的真正目的是:我们要避其锋芒,不要和 AI 的长处硬刚,在这方面碳基生物刚不过硅基物种

现在大家手机里都有计算器,你乘法除法计算多快,能有计算器快吗?你夜观天象经验在足,不如看一眼天气预报。

AI 擅长做什么,我们就不要去和它争,也不要觉得 AI 会的你不会,感觉自己一无是处、能力退化了。AI 再厉害也需要人工来驾驶它。

我们要做 AI 的主人,去学习高效使用它,我们要凌驾于它之上,去做它不擅长的事情。

AI 编程不擅长的

当前 AI 最大的毛病就是"一本正经的胡说八道",它搞错了它也会按照这个方向来,你不纠正,它就会一直找着这个这个方向走下去。在 AI 的世界里,没有南墙。

因为 LLM 背后的原理就是:预测下一个词。你不管它,它就会一直预测下去,反正它有海量的数据。

需求明确

写到这里我想到一个段子。会去程序员业余去做外包,甲方老板说:你就给我做一个淘宝就行,就照着淘宝做。

你是程序员,老板让你做个淘宝,需求就这一句话,你知道做啥吗?根本没法做。淘宝太庞大了,你想实现哪些功能,要写出明确的需求,最好还有界面和原型图。这样才能继续设计、开发。

所以有经验的程序员会再去和老板沟通,或者派一个需求专员和老板沟通,把需求确定下来。

人,在遇到不懂的地方时,会去咨询、查询、沟通,如果过程不顺利会被卡住,执行不下去。此时你如果继续强制压迫他,他就会产生逆反心理、摆烂、躺平、辞职。

但是 AI 不会这样。默认情况下,AI 会一本正经的胡说八道,它就没有不懂的时候。它搞错了它也会按照这个方向来。你自己不手握方向盘时会开沟里,越陷越深。

所以,我们给 AI 写需求一定要清晰明了,说专业一点就是 prompt engineering 提示词工程,要能去通过正确的 prompt 引导 AI 给出正确的答案。

这个说来简单,其实对于绝大部分程序员都是一个挑战,程序员真的不擅长沟通。

例如,有太多同学给我提问题,无论是现在 vx 聊天提问,还是之前在 GitHub issue 提问,就写一句话"我代码报错了..." 其他啥信息都没有。你说的我都看不懂,AI 能看懂才怪呢。

再例如,我 1v1 模拟面试,让他介绍一下自己的项目,太多人磕磕巴巴想一句说一句,最后也说不到重点上。自己做过的项目都说不清楚,那让你设计一个新项目,你就能描述清楚?

技术栈管理

AI 啥都会,但你的项目不能啥都用。你需要根据自己的情况选择合适的技术栈,以及选择合适的工具。

要开发一个前端项目,你需要选择 Vue React 等框架,选择 Vite webpack 等打包工具,选择一个合适的 UI 组件库。如果开发一些特定的功能,如编辑器、表格、地图等,你也需要自己确定使用哪些第三方插件。

你可以让 AI 帮你选择,帮你对比第三方插件的优缺点,但你依然需要具备良好的判断能力。因为 AI 会出错,而且会沿着错误继续走。

所以,你需要掌握前端、全栈等你的核心技术栈,知道这个技术栈相关的知识体系。在 AI 加持下你不用了解太细节,但你得有广度和视野。你要清楚用什么技术能实现什么功能,你要有自己的方向,你要去"驾驶"AI按照这个技术方案走。否则,完全让 AI 自由发挥是很容易乱套的。

架构拆分

如果你要设计开发一个大型项目,直接让 AI 帮你开始做,这几乎是不可能的。大型项目你没法一下子描述清楚需求,直接让 AI 开始的话,AI 很容易自由发挥,最终失控。

大型项目,在明确需求的基础上,首先应该做架构拆分,模块拆分。把一个系统拆分为不同的模块,一个模块拆分为不同的页面或者组件,每个部分之间都规定好接口,解藕。这个过程可以让 AI 帮助你设计和分析,但决定权还是在你。

完成设计以后,对于每个模块或功能的内部,再让 AI 去开发。即便 AI 可能会把代码写的很乱,但没关系,只要模块之间还遵守设计时的接口约定,模块内部乱了没关系。

即 AI 可以更多的帮你做具体的功能实现,这种需求转化为架构的工作,AI 只能辅助,判断权还是在你。对于大型项目,你无法从 0 就交给 AI 去做。

技术越进步,对人的要求就越"高级"

没错技术更新,对人的要求就会越高级。这个高级的意思是:更高一个层级,并不一定要求越高。

马车时代司机会赶车就行,汽车时代司机就得考驾照、懂交通规则、驾驶汽车、甚至要会维修汽车。

卓别林时代工人拿着大钳子,现代工厂里,工人都是操作机械手臂。

电脑刚出来的时候,打字员就是高级技工。

编程刚出现的时候,CPU 指令、寄存器、内存都需要人工编码来管理。

互联网刚发展时,会做页面,会增删改查就行,DOM 操作得熟练。

Vue React 刚出来时,会用 Vue 写网页就行,DOM 操作要求不高了。

AI 编程普及以后,又会有什么变化呢? 欢迎留言评论。

相关推荐
syker2 小时前
NEWBASIC 2.06.7 API 帮助与用户使用手册
开发语言·人工智能·机器学习·自动化
说私域2 小时前
社群经济下开源链动2+1模式AI智能名片S2B2C商城小程序的信任重构机制研究
人工智能·小程序·重构
PPT百科3 小时前
PPT导出为图片的格式选择:JPG与PNG的区别
人工智能·经验分享·职场和发展·powerpoint·职场·效率工具
aneasystone本尊3 小时前
重温 Java 21 之作用域值
人工智能
阿_旭3 小时前
基于深度学习的车载视角路面病害检测系统【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·路面病害检测
知识搬运工人3 小时前
真实的大模型中,embedding映射的高维矩阵维度和 attention矩阵运算的规模尺寸?
人工智能
weixin_446260855 小时前
LocalAI:一个免费开源的AI替代方案,让创意更自由!
人工智能·开源