很多行业都有一句老话:教会徒弟,饿死师傅。
这句话放在木匠、厨师、理发、装修、维修这些行业里,大家都能理解。一个手艺人吃饭,靠的是一套只有自己熟的流程、一点不轻易外传的经验、几个不写在纸上的诀窍。徒弟真学会了,就可能出去单干。附近就这么多活,客户就这么多,师傅当然会留一手。
但软件行业一直很奇怪。
它好像不太怕这件事。
不但不怕,还生怕你学不会。
从早年的技术博客、BBS、Stack Overflow,到后来的 GitHub、开源框架、技术大会、视频教程,再到今天各种 Cursor Rules、Claude Code 工作流、Agent 开发模板,软件行业像是全世界最热衷于把饭碗说明书公开的人群。
以前是教人怎么写代码。
现在更进一步,开始教 AI 怎么写代码。
这件事看起来有点反常识。别的行业怕徒弟抢饭碗,软件行业为什么总有人把自己的工具、方法、代码、经验往外放?
如果简单说“程序员更有分享精神”,不够。
如果简单说“软件没技术含量”,也不对。
真正的原因是,软件行业的竞争方式和很多传统行业不一样。它不只是靠藏住手艺吃饭,它更靠标准、生态、工具链、判断能力和位置吃饭。
这就决定了,它的“教会别人”,很多时候不是在放弃壁垒,而是在换一种方式建立壁垒。
先说开源。
很多人一提到开源,就容易把所有东西混在一起,好像只要代码公开,就都是同一种精神。其实不是。
开源至少有三种。
第一种,是个人和小团队的开源。
这部分确实有很强的理想主义色彩。很多开发者做一个工具、写一个库、维护一个项目,并不是一开始就想着怎么变现。可能只是因为自己用着顺手,觉得别人也会需要;可能是因为工程洁癖,不愿意重复造轮子;也可能只是单纯喜欢这种“我写的东西被世界上某个陌生人用上了”的感觉。
这部分开源里面,有很纯的东西。
声誉、热爱、互助、表达欲,都是真的。不能什么都用商业算计去解释。开源世界最动人的部分,恰恰来自这些人。
第二种,是工具型开源。
一个工程师在工作里反复遇到同一个问题,后来把解决方案抽出来,变成一个库、一个框架、一个插件。别人开始用,开始提 issue,开始交 PR,开始帮他发现边界条件,甚至开始把这个工具带到更多场景里。
这时候,开源就不只是“我把东西送给你”。它也在反过来帮助作者。
一个人写工具,最多解决自己的问题。很多人使用工具,它就开始暴露真实世界的问题。有人反馈,有人贡献,有人写文档,有人做教程,这个工具就会变得越来越强。
作者失去了一点信息差,但换来了更大的测试场、更强的声誉、更广的关系网络,以及一个可能长出来的生态。
第三种,是商业型开源。
这一种就更不能只用“分享精神”解释了。
商业公司开源,很多时候玩的不是慈善,而是生态。它不是把自己的饭碗送出去,而是先把接口、标准、开发方式、社区心智铺出去。
它真正想要的,不是大家免费用它的代码。
它真正想要的是:大家都按它的方式写代码。
这句话很关键。
一个框架开源了,开发者开始围着它写插件。培训机构开始教它。招聘岗位开始要求它。企业开始基于它做内部系统。云厂商开始围绕它做托管服务。咨询公司开始卖它的实施方案。社区开始积累问题和答案。久而久之,它就不只是一个项目,而变成了一套事实标准。
代码开源了,但生态位置没有开源。
甚至可以说,商业开源不是放弃壁垒,而是在重建壁垒。只是这个壁垒不叫“保密”,叫“生态”。
传统手艺的壁垒,很多时候来自“你不知道”。
软件世界里,很多壁垒来自“大家都已经这么做了”。
这两种壁垒很不一样。
前者靠藏。后者靠扩散。
所以软件行业里会出现一种很有意思的现象:越希望别人围着你转,你越要把一部分东西拿出来。你不开源,没人用;没人用,就没有反馈;没有反馈,就没有生态;没有生态,就没有标准;没有标准,就没有后面的商业空间。
当然,这不代表软件行业没有秘密。
真正核心的东西,很多公司一样不会公开。模型权重、训练数据、商业策略、内部平台、风控系统、推荐算法细节、用户增长机制、工程组织经验,这些东西不会因为公司开源了一个框架就全都摊开。
所以说“软件没有技术壁垒”,这句话太粗糙。
软件当然有技术壁垒。
只是很多软件的壁垒,不总是藏在代码里。
它可能藏在规模里。一个系统在十万用户时能跑,和在十亿用户时能跑,不是同一个问题。
它可能藏在数据里。代码可以公开,但数据资产、用户行为、反馈闭环没法简单复制。
它可能藏在工程体系里。发布流程、监控体系、故障处理、团队协作、代码审查、架构演进,这些东西看上去不如算法性感,但真到生产环境里,往往决定生死。
它也可能藏在生态位置里。大家都围着你做插件、写教程、招人、上云,你就算代码是开的,位置也是很难替代的。
还有一种更深的壁垒,藏在判断里。
这是很多人容易忽略的地方。
我们常说程序是数据结构加算法。这句话当然没错,但如果你真写过足够多的系统,就会知道,软件工程里最难的部分往往不是“会不会写”,而是“该不该这么写”。
性能和可维护性怎么取舍?
短期交付和长期架构怎么取舍?
自研和采购怎么取舍?
开源和闭源怎么取舍?
什么时候该重构,什么时候应该忍住?
什么时候应该做成平台,什么时候就该写个简单脚本?
这些问题没有标准答案。它们都是 trade-off。
所谓高手,很多时候不是知道一个别人不知道的函数,也不是会一门别人没学过的语言,而是在复杂约束里知道怎么取舍。
教程可以告诉你怎么做。
经验告诉你什么时候该这么做。
这就是软件行业不怕“教会徒弟”的一个根本原因。很多知识是可以公开的,但判断能力没法直接打包。你可以看完一个大佬的代码,但你未必知道他为什么在这里抽象,在那里不抽象;为什么这个地方做缓存,那个地方宁愿慢一点;为什么这个项目适合微服务,另一个项目就该老老实实单体。
代码能复制。
判断不能直接复制。
这也是为什么很多真正厉害的人反而愿意讲。他讲了,你也未必立刻拥有他的判断。但如果你认可他的判断,你可能会用他的工具,接受他的范式,进入他的生态,甚至成为他的协作者、用户、客户或追随者。
到了 AI 时代,这件事又往前走了一步。
以前开源,是教人写代码。
现在很多人在公开 Prompt、Agent 工作流、项目规则、上下文组织方式、自动化测试策略、代码生成流程,本质上是在教 AI 写代码。
表面上看,这好像更危险。
以前你教的是人。人还要学,还要练,还要踩坑。现在你教的是 AI,它复制得更快,扩散得更快,学起来好像也更不讲武德。
那为什么还有这么多人愿意公开?
因为他们公开的,仍然不只是“答案”,而是一种工作方式。
比如一个人公开了自己的 Cursor Rules,看上去只是几段规则文件。但真正有价值的,不只是那几句话,而是他背后对项目结构、测试习惯、代码风格、任务拆解、验收标准的理解。
一个人公开了 Claude Code 的使用流程,看上去是在分享工具技巧。但真正有价值的,是他怎么把一个模糊需求拆成可以让 AI 执行的步骤,怎么控制上下文,怎么让 AI 不乱改,怎么让它先验证再扩展,怎么把人的判断嵌进机器的执行里。
一个团队公开了 Agent 工作流,看上去是在教大家自动写代码。其实更深一层,是在定义“人和 AI 应该怎样协作开发软件”。
这就和过去的开源很像。
以前谁定义了框架,谁就定义了一部分开发方式。
现在谁定义了 AI 编程流程,谁就可能定义下一代软件生产方式。
以前的核心问题是:大家用不用我的库?
现在的核心问题变成了:大家会不会按我的方式和 AI 协作?
所以今天那些公开 AI 编程方法的人,也不一定是在单纯“教会徒弟”。他们可能是在争夺新的生态位置。
谁的 Prompt 被大量复制,谁的工作流被大量采用,谁的项目模板变成默认起点,谁的 Agent 规则被写进团队规范,谁就有机会占住下一代开发者心智。
这时候,公开不是损失,而是扩散。
你公开一个方法,别人用了,改了,传播了,围绕它写教程、做插件、做工具,你的方法就从个人经验变成了公共范式。
软件行业里最值钱的东西,常常就是这么长出来的。
先是一个人解决自己的问题。
然后一群人发现自己也有这个问题。
再然后,有人把解决方式变成工具。
最后,工具变成生态。
AI 时代只是把这个过程加速了。
但也正因为如此,真正危险的人也出现了。
谁会被“教会徒弟”饿死?
不是所有程序员都会。
真正危险的是那些只靠信息差吃饭的人。
只知道某个配置怎么写,只熟悉某个框架的固定套路,只会按教程复制粘贴,只能完成别人已经定义好的任务,这类能力当然会被不断压低价格。过去是被教程和开源压低,现在是被 AI 压低。
以前一个新人要花几个月学会的东西,现在 AI 可能几分钟就能给出一个差不多的版本。
以前你靠“我知道怎么写这段代码”吃饭,现在这句话越来越不值钱。
但另一类人会被放大。
能定义问题的人。
能拆任务的人。
能判断结果的人。
能设计取舍的人。
能把经验沉淀成流程的人。
能把流程做成工具的人。
能把工具推成生态的人。
AI 不会让这些人失去价值,反而会让他们的价值更明显。因为 AI 越会执行,人类越要负责判断。AI 越会写代码,人类越要知道什么代码不该写,什么需求不该接,什么架构不该上,什么复杂度不该引入。
这才是“软件行业不怕教会徒弟”的真正原因。
它不是没有竞争。
它是竞争层次一直在往上走。
最早,比的是谁会写。
后来,比的是谁写得好。
再后来,比的是谁能做工具、做框架、做平台。
现在,比的是谁能定义人和 AI 一起工作的方式。
所以这件事不能简单理解成程序员大方,也不能简单理解成软件没门槛。
恰恰相反。
软件行业最残酷的地方在于,它会不断把低层能力公开化、工具化、自动化,然后逼着所有人往更高一层走。
当代码写法被公开,价值就转向架构判断。
当框架用法被公开,价值就转向场景理解。
当 Prompt 被公开,价值就转向任务拆解。
当 AI 能写代码,价值就转向问题定义和结果验收。
所以,软件行业不是不怕教会徒弟。
它只是知道,真正的师傅不靠藏一招半式活着。
以前的师傅,把代码开源出去,让更多人进入自己的生态。
今天的师傅,把 AI 工作流公开出来,让更多人接受自己的方法。
看上去都是在教别人。
实际上是在定义世界应该怎么工作。
教会别人写代码,不一定会饿死师傅。
但如果你只会写代码,可能真的会被饿死。
因为新的师傅,已经不只是写代码的人了。
而是那个定义“人和 AI 应该怎样一起写代码”的人。
夜雨聆风