在 AI 时代对软件开发行业的一点思考
0X00 我的思考
不可否认的是 AI(严格来说是 LLM + Agent 的形式)极大的改变了过去几十年形成的软件开发范式。并且受到重大影响的不只是开发范式,影响更大的可能是开发者的进阶路径。我自己考虑过多次有关开发者晋升路径的问题,所有的思考都基于一个基本的前提人是懒惰的。下面就来分享一下我自己的一点点思考。
0X01 初级开发者如何出头
强如韩立也得从炼气开始修行,强如 Linus 也得从 hello, world 开始写代码。
按照以前的逻辑(至少是我理解的逻辑),一个平平无奇的大学教编程是这么个顺序
- 学习 C(知道什么是程序、编译、基本的程序逻辑等等)
- 学习数据结构(至少理解数组、栈这些基础结构)
- 学习更高级的编程语言(Python/C++/Java等)
- 学习网络、操作系统、Linux、DB
- 可以开发稍微大型一些的程序了
现在的情况是什么呢?所有人都知道程序员在大量用 AI,哪怕是纯应付工作的前提下,程序员工作也还是要动不少脑子的。但学生就不是了,我记得当时大一时候 C 语言的期末作业是一份学生成绩管理系统,需要在终端里实现学生信息的 CRUD,要有排序,还要有数据的持久化和相对友好的 TUI。那时候为了把这个作业做好,就会花很多时间,哪怕是只想凑合一下也得完成基本功能才行。可是在当前情况下,学生完成这么一个作业可能连 Coding Plan 都用不上,用免费的 DeepSeek 网页版直接生成代码复制出来就完事儿了。
新手/学生阶段的核心矛盾在于,这个阶段应该是学习阶段,产出代码的效率和质量反而没有那么重要。但很多人就直接为了完成代码产出,让 AI 一顿生成,最终花了一部电影的时间完成了本来需要一周完成的作业,最后什么都没学进去。
站在这个阶段的人会想:“既然在职的程序员猛猛用 AI,那我也猛猛用 AI 就没什么毛病”。但实际上这就相当于在新手教学关本应学习游戏玩法,然后才出去打怪,但有人新手关拿着一个高级别棍子一路乱捅,出了新手村发现棍子捅不死敌人了,自己的战斗技能闪避技能都不会,只能被敌人猛敲。
所以我的想法就是,学生阶段或者纯新手阶段千万不能依赖 AI,尤其是不能依赖 AI 生成代码。比较健康的 AI 使用方式是让 AI 做你能做但是做不快做不好或者懒得做的事,而不是让 AI 做你完全不懂完全不会的事(特指个人专业方向)。
0X02 中级开发者何去何从
不论如何,我现在已经度过了新手阶段了。个人觉得卡在中间这一档的人可能是最焦虑的(也可能所有人都焦虑,但我屁股不在那儿所以不知道),往下看担心 AI 时代自己之前好不容易积累起来的知识经验没什么价值了,往上看不知道该往哪个方向发展。
往下看,自己已经掌握的技能树在贬值,担心纯新手或者本身技术一般的凭借“低价”直接给我们来上一波处决。往上看,觉得自己还没到专注做大型复杂系统的架构,搞当前 AI 还搞不定的任务的水平。转行肯定是不至于转行的,只能一边防止背刺一边继续向上。
目前从我自己的体感来说,技术广度、技术深度、业务熟练度(上手速度)这三个是非常重要的,以至于自己是否会被时代淘汰很大程度上取决于这三个点。
有关技术广度我是这么想的,假设一个开发者没有什么技术广度,并不知道什么叫 Redis,那他会让 MySQL 疯狂优化性能,到后面可能会出现没多少数据但是要搞分表、热点表,要拔高硬件配置,SQL 要用上一些不怎么常用效果也甚微的 trick。但假设这个开发者明确直到 Redis,虽然并不是很懂,但直到 Redis 在存储热点数据上要比 MySQL 快几个量级,那就可以直接告诉 AI 用上 Redis,对比压榨 MySQL 不仅节省时间、节省 token 还大幅降低了 SQL 复杂度。
技术广度也是一样的,还是拿 MySQL 来说。如果要做一个新系统,AI 在开始阶段大概率会秉承着“不要过度设计”的原则搞一些轻量化的设计,在项目中期大概率会秉承着“不要过早/过度优化”的原则在轻量化的设计上打一些 patch,在项目后期更是会因为“历史代码”和“项目规范”的理由,继续 patch。但如果是一个经验丰富,拥有足够技术深度的开发者,就会提前意识到数据量一定会膨胀起来,就能提前做对应的设计。前期做一些预防性的设计可能比轻量化设计多花几天,但后期再扩展成这样可能就要多花几周了。
这个例子可能不是特别准确,但各天资聪颖一定能 get 到我的意思
最明显的其实是业务熟练度了,这是 LLM 最大的“缺陷”,哪怕是强如 Fable 5 它也是不知道你们公司自研系统是如何设计如何运转的,更不知道你们的项目是靠哪几个 bug 协同运转起来的。
0X03 高级开发者的护城河
至于高级开发者如何打造自己的护城河,由于我自认为还没到这个档次,我只能自己假想一下了。我自己觉得所谓的高级开发者护城河其实正是中级开发者的三个核心。如果能够稳住自己的广度、深度、对业务的理解,再加上学习 AI + Agent 给自己强化一下,应该还是比较稳的。
0X04 事情既然已经发生了
虽然现在的 AI 依然是存在大量泡沫的,但想必各位也发现了,AI 的泡沫和之前元宇宙的泡沫完全是两回事,即使后续泡沫退却之后剩下的东西也一定会改变我们的工作和生活。所以在这个阶段下不如就趁着生产力大幅提升,整点自己以前不敢整的事情。
比如我之前一直觉得现有的那些 CMS 和博客系统不适合我的使用场景,但是自己搞一个既耗时又不擅长前端,所以一直没动手。前段时间打算开始记账,但也找不到一个非常符合我使用需求的记账软件。所幸直接 Claude Code 启动,然后就得到了现在运行着的这个各方面都符合我需求的博客系统,也得到了我正在用的运行了两个多月的 web 记账软件。脑子里还有好多之前想做但是碍于时间、精力、技能一直没动手的项目,现在全都可以搞起来了。
0X05 我对未来的几种想象
我对未来的想象分成这么几种
- 纯悲观:AI 淘汰大量开发者,只有极少数 1%~5% 的人能够留在行业内变成“一人项目组”;
- 悲观为主带点乐观:AI 淘汰一批不懂 AI 的开发者,同时行业里大量使用 AI,随着 AI 能力增强,开发者的工作逐渐往产品经理方向偏移;
- 乐观为主带点悲观:AI 淘汰一批不懂 AI 的开发者,但也会加入一些靠 AI 入行的开发者,从此软件开发领域的通识内容又多了一项,并且是非常重要的一项 ;
- 纯乐观:AI 大大提高了产能,所有人/公司/团队都觉得自己可以开发软件了,可以做之前做不到的东西了,进而需要比现在更多的开发者,产出更多的代码。而掌握了专业知识和技能的(非 AI Caller)开发者则会成为相对稀缺的高级人才,拥有快速了解需求和业务能力的开发者也会变得稀缺;
至于这片飘在空中的叶子具体会落到哪里,谁知道呢 🤷♂️
如果这篇文章对你有帮助,可以请我喝杯咖啡 ☕
评论