几天前,朋友在 Line 上给我分享了某培训公司为某公司做的一个内部开发者 AI 培训方案。扫完 4 页 PPT 之后,我当即也就在 Line 上直接回复了。由于内容过于直白,这里也就不截图了 😄。用一句话来总结的话,那就是:外行人给做的短视计划。
为何这么说?在我看来,培训的内容过于老套,方案制定者只是简单将当前 AI 视为普通工具,然后就将其套用到传统开发流程中,完全没有考虑到 AI 对开发流程和开发者行为的影响。说白了,就是依旧按照骑马的方式去开车。估计在他们的眼里,当下的 AI 就跟培训市场上吃香的 SSH 工具栈没差别。不过就是原来一个人一天可以写 100 行代码,现在用 AI 可以写 1000 行了。
此外,培训内容也过于形式化,几乎就是传统培训的翻版:用 SSH 开发一套电商网站,在其个中穿插介绍软件开发的流程和工具。唯一不同之处就在于:各个环节有 AI 加持了。从需求、设计、开发、测试和运维,加入了不同 AI 工具的使用,仅此而已。
说实话,如果我是甲方老板,当即就会把这方案直接扔垃圾筐了。
作为老板,我为什么要花钱给员工培训?
有人或许会奇怪:老板还会花钱给员工培训!?对于这个问题,我不想做深入讨论,但举个例子让你来回答会还是不会。假如,你是某外包公司老板,现在客户要求开发者必须会 SSH 工具栈,而你现有的团队都只会简单的 JSP 或 Struts(懂得这些的都暴露年龄了 😄),你会以“我没人会”来拒绝送来的单子吗?
由这个例子可知,培训员工也是一种投资,作为老板,当然会考虑。
但投资也是要讲 ROI 的,假如培训就只是让员工学会了某个工具和框架,对于个人行为和思维模式上没任何提升或改变,那在花钱之前自然要考虑这钱花的值不值了。
回到外包公司的例子,他们计算利润的方式很简单:利润跟员工数量成正比。如果我想在不增加人数的前提之下提高利润,最直接的做法就是设法提高单个员工的利润率。基于此,假如期望通过培训实现,那么我自然会去考虑:
- 培训内容是否是市面上短缺的?
- 这样甲方才不会在单价上太计较。
- 培训内容是否具有长期价值?
- 这样才能长久的赚钱,而不是短期行为。
- 培训内容是否能提升员工在市场上的竞争力?
- 这样才能吸引高净值客户,而不是陷入低价竞争的泥潭。
- 相应的,我也能给员工更高的薪水,从而稳定现有团队,吸引更优秀的员工加入。既稳定了基本盘,又有机会扩大产能。
最后一点尤其重要,那才是外包公司的真正护城河。而先前的培训方案恰恰忽视了这一点,它只是简单的将 AI 视为更高级的 Word 和 Excel,完全没有考虑到这类工具与传统应用之间有什么区别。
照此方案培训,最后得到的不过就是:提升了生产垃圾代码和 bug 的效率。更坏的结果是:之前对于无法抵赖的代码错误,如今可以让 AI 背锅了。都是 AI 生成的嘛,哈哈!
AI 对开发的影响
大家应该已经从铺天盖地的媒介中看到或者感受到这次的 AI 变革有点不一样,它或许真的会改变我们生活的方方面面。作为开发者,我说点实际感受。
角色不同
AI 是你的助手而非简单的工具。用好了,如虎添翼;用不好,给你添堵。既然是助手,那就离不开有效的沟通。要是连话都说不利落,那又怎么能指望 AI 给你提供帮助呢?
而沟通恰恰是不少开发的弱项:参见旧文 程序员的商业思维:学会表达。
并且,你以为只要把话说清楚就能得到期望的结果了!?未必,否则怎么会有卖提示词的生意呢?
工作方式的改变
单就写代码而言,开发者原来的工作方式是:
- 会的,直接写
- 不会的,问 Google
- 查到了,直接抄
- 行了,万事大吉
- 不行,再继续搜
- 没查到,继续搜
- 查到了,直接抄
AI 大众化之后,如今的时髦方式已经是:君子动口不动手。开发者更多的从执行者转变成为了决策者,从小工变成了监工。
同时,放大到整个软件生产,由于 AI 极大提高了执行端的效率,如果还按原先的步调走,势必会造成无谓的等待。就如同手握牛刀,干的却是杀鸡的活儿。
有人说了,让 AI 来做就完了。既然它可以写代码,各类文档和脚本当然也不在话下。当然可以!但再请想一下:既然 AI 是全能型选手,是否还需要按原来的工序去做事?有没有可能将整个工序简化,将原来的多个环节合并让它更快的做事,我能得到更快的反馈,最终得到更好的结果?
btw,还记得敏捷开发中有人提出来的“涌现式设计”么?
技能要求的不同
在工业化时代,你还会要求大力士出现在工地上吗?类似的,当 AI 开始具备生产(即:generative)能力之后,你还会对开发者提掌握更多的工具和框架的要求吗?可能会,但不重要。广告时间:参见我这篇付费文章:聊聊 Vibe Coding。
如果还是按照传统思路去培训 AI 时代的开发者,显然是短视行为。随着 AI 的能力不断进化,假若未来 AI 的编程能力已经可以媲美人类开发者时,作为外包公司,你对甲方是否还有价值呢?
或者,退一步,要求你减员增效呢?
AI 时代的开发者该学些什么
啰啰嗦嗦了这么多,最后说说我个人的看法。同时,这也是我对自己团队目前的要求。
首先,了解 LLM 背后的基本原理。这并不是要你去研究机器学习的理论,但起码你得了解从 prompt 发出到输出的整个过程。只有这样,你才能更好地驾驭 AI。这本身跟你开车是一样的,多少了解点汽车的构造和原理,有助于更好的开车和处理故障。
其次,掌握沟通技巧,它直接影响 prompt 的书写。即便一开始写不好,但是在掌握沟通技巧之后,你再去揣摩那些优秀的 prompt,有助于未来写出符合预期的 prompt。这跟学写作文没有太大区别。此时,在结合 prompt engineering 的相关知识,自然就能写出一个还像样的 prompt 了。
第三,工具思维,它有助于放大 LLM 的能力。由此,你不再是简单地把 LLM 当作一个更高档的 Word,而是将其视为你的助手和小弟。借助工具思维,你可以建立你自己的专属 AI 助手,甚至于一组 AI 助手,成立自己的 AI 公司。比如我在这两篇文章里介绍的做法:
掌握工具思维需要的两个重要能力就是:发现问题的能力和 LLM 开发框架的使用能力。如果说前者是软技能,不容易培养的话;那么后者,则就属于 AI 时代的硬技能,不了解的开发者势必会被快速淘汰。
最后,了解典型的 AI 使用案例。新事物带来新用法。这里的新用法不单单指 AI 特有的应用如 RAG,也包括 AI 与传统应用场景的结合。让他人的用法给你带来启发,从而更好的使用 AI。
作为开发,只有做到以上几点,才能更好地在人人都可以写代码的近未来找到自己的位置。从而不会被轻易取代。
结语
当然,以上只是我个人的看法,不一定对。各位可自行斟酌如何将 AI 当作超级武器装备给自己的员工,不仅仅是让其发挥 10x 效率,更是让其带来 10x 效益!