资本视角下的程序员困境分析
第一章 前言
程序员中,中年(乃至不到中年)被裁员、应届程序员就业难、工作压力及工作时长不断提高、工资不断缩水、人工智能“淘汰”程序员等现象说明:计算机行业正在从鼎盛发展阶段走向颓势。本篇文章以“雇佣劳动与资本”的角度分析这一现象的成因,并简略预测未来发展大体趋势。需要注意的是,本篇文章研究的主体是“计算机行业”,对象为“出卖自身劳动力以获取工资,并凭借工资购买生活必要资料,维持基本生活的工人阶级”。以爱好驱动、无偿奉献为特点的开源开发社区,不适用此文章的分析。
第二章 工人
在资本视角下,生产产品(在这里是做项目)需要三种成本:原材料的购买(在计算机行业并不明显)、生产工具(机器)的购买和维修、工人的工资。我们在这里关注的是最后一个。资本家以工资购买工人的劳动力,以便生产产品,并赚取由产品的价值与工人工资的差距而产生的利润,也就是剩余价值。需要注意的是,工人的劳动力本身也是一种特殊的商品,因为它被工人拥有,并且可以被出售给资本家。
既然是商品,就会受到市场规律的影响:当供给大于需求时,价格就会下降。计算机在过去十年内都被看为极具发展前景的行业。因此,大量大学生涌入相关专业,并最终寻求相关职业。但求职工人的数量大于行业所需要的工人数量,产生了供大于求的必然结果:商品贬值。并且由于劳动力本身的特殊性——无法被保存,工人只能选择尽快地卖出劳动力,因此产生了比一般商品更加严重的贬值。同时,因为资本的逐利性,工人的工资被进一步故意压低,以榨取更多的剩余价值。
因此,我们可以看到:不仅程序员就业困难、层层受阻——一定程度上表现为学历贬值。行业工资持续缩水,但同时工作时长不断加长。工作内容从前/后端变为前+后端,乃至全栈开发。30 岁以上员工裁员率急剧攀升——这一点与工业革命时期的雇佣童工有些相似,因为年轻人的性价比更高。
第三章 人工智能
工人的工资由大致两部分组成:维持基本生活的开支、培养下一代工人的成本(其中包括繁衍和教育)。不同行业由于难度不同,因此教育成本也不同。雇佣劳动分为两大类:熟练劳动与简单劳动。人工智能编程出现以前,计算机行业是典型的熟练劳动。要进入该行业,需要学习足够多的理工科知识,具有足够的编程思维,并拥有分析与解决需求的能力。培养程序员的时间成本和资源消耗都较大。因此,计算机行业的工资和普通行业相比,要更多一些。
但人工智能编程 (Vibe Coding) 的出现降低了进入该行业的难度,给 AI 一行提示词就有可能实现需求。AI 大模型的编程能力不断提升,无人类干预的情况下解决问题的能力明显变强。原先需要多人分工协作完成的任务,在 AI 辅助下只需一人。也就是说,以前一名工人可以干一个人的活,现在可以干两三个甚至更多人的活。这样,资本对工人的需求就变得更小了。人工智能作为生产工具,在生产力的角度上,进一步降低了工人的待遇。结果与上一章所讲的相同:工作时长加长,工作任务变重。工人的剩余价值被进一步发掘,工人的工资也逐渐降低,直到达到能勉强维持开支的最低限度为止。
也就是说,计算机行业正在从熟练劳动滑向简单劳动。这一点无需恐慌,因为这是社会发展的必然趋势。生产力的进步会让各个行业之间的差距不断缩小。但需要强调,计算机行业是正在滑向,而不是已经变成简单劳动。就目前而言,要想 AI 正确辅佐人类进行开发,仍需要使用者具有足够多的计算机功底,以及恰当编写提示词的能力。如果我们让一名专业开发者和一名小白分别使用 AI 实现一个需求,就能更加证明这一点。专业开发者往往能够正确编写提示词,明确、清晰地给 AI 下命令,并在 AI 走错方向时及时纠正,用更少的 token 完成任务。而小白一般会写出模糊的提示词,让 AI 自行决断细节,并且完全依赖 AI 的自行选择,在 AI 出错时无法明确指出错误的位置,只能从表面上“这个功能的实现似乎不对”,和 AI 一起不断重试,直到结果符合预期。而这种方式消耗的 token 可能会数倍于专业开发者的消耗。
第四章 人工智能的生态位
刚才在第二章,我们把人工智能作为“生产工具”进行分析,有一部分人是不能理解的:明明 AI 那么聪明,不仅能和人流畅交流,还能深度思考,跟人非常相似。为什么 AI 不被放在“工人”的位置,而是“生产工具”的位置呢?提出这种问题并不奇怪,因为大多数人无法(或者说懒于)抓住人工智能的本质,因而在 AI 产生幻觉前,自己先产生了 AI 是活人的幻觉。要回答“人工智能到底是不是人”的问题,要从 AI 的本质上出发。
人工智能大模型,本质是无数个多维矩阵。给模型输入海量的内容,让其通过数学公式(Transformer 架构)计算每个词(token, 词元)的权重。这个过程叫做“预训练”(Pre-training)。经历极长的时间后,大模型就可以给一句输入,算出一段输出。但大模型并不知道自己说的到底是不是一句合格的人话——因为它只是一个数学模型。此时需要人类干预,给一段问题和对应的回答,让 AI“学习”该怎么回答问题。这个过程叫做“指令微调阶段”(Supervised Fine-Tuning)。再次经历漫长的时间,它就会说人话了。之后的训练还有“人类反馈强化学习”和“推理与思维链训练”两个环节,但讲到前两个阶段就已经足够解答我们的问题了。
从以上简短的介绍看,我们能够明白:人工智能并不知道自己在说什么,也不理解自己在说什么。它只能把人类指令作为输入,通过用自己调整好的公式,计算出一段长得像人话的输出。在没有人类的情况下——或者说——在没有输入的情况下,它自己什么都输出不了。如果你了解过“计算机的假随机数”,这一段应该会好理解一些。因此,它是一个需要人类操作的机器,自然要放在“生产工具”的位置,而非“工人”的位置。
第五章 未来
互联网上一直都有一种声音:程序员最终会被 AI 取代。从广义的角度上说,这是错的,因为资本的组成里,工人是不可或缺的。但从狭义的角度上说,它又是对的。如同更高效率、更易操作的机器会降低生产中对工人数量的要求一样,大部分的程序员依然会失业,也就是“被机器取代”。程序员这个行业会一直存在,但这个行业需要的员工则会越来越少。
当然除了这种合理的声音,还有另一种不合理的声音:人类最终会被 AI 取代。他们还有一个专有的名字,叫做“AI 降临派”。他们的问题在于没有抓住 AI 大模型的本质。它的根本属性就决定了它是冰冷的数学模型,而并非具有意识的活体。并且有趣的是,我们作为人类,也并不知道这个数学模型是怎么训练出来的。词元之间的参数变化细节到现在都是学界的黑箱难题。那些“能说人话”的模型,本质上是人类用人力物力强堆起来的作品,与猴子敲出莎士比亚著作有些类似。这样的产物显然无法与真正拥有思维的人类相比。
我们在这里拓展解释一下人类与 AI 的根本区别:人类具有意识,而这种能力是人脑独有的。意识所带来的“主观能动性”意味着能够创造新的事物。刚才我们在第三章解释了 AI 的训练过程,可以很清楚地知道:大模型所能输出的内容范围,取决于训练时投喂的内容范围。超出训练数据库以外的内容,不可能存在于大模型中,也就不会被输出。也就是说,AI 模型不具有创造力。即便看起来大模型无所不知,强于我们能见到的任何人,但它永不会强于人类文明这个整体。它的基本原理决定了它只是人类有史以来全部知识与成果的总结,并且永远只会是总结,永不会超出这个范围。
第六章 怎么办
很可惜,这一章是“标题党”,我们并没有解决这个问题的办法,因为这根本就不是“问题”。计算机行业的现状和未来发展方向,符合资本的发展规律和人类社会的发展规律。就业变难、工资变少、强度变高并非计算机行业独有的问题,而是资本主义的必然发展趋势。我们并没有反抗客观规律的能力。生产力不断发展的必然趋势,促进了资本的尽快增加,同时扩大了工人阶级与资产阶级的社会鸿沟。社会财富的增加和劳动生产率的提高,工人阶级身上的金锁链就越牢固,就越有利于资产阶级牵着走。但没有这些生产关系,就不会创造出生产资料——解放无产阶级和建立新社会的物质资料,无产阶级本身也就不会团结和发展到真正有能力在旧社会中实行革命并使它自身革命化的程度。(马克思《雇佣劳动与资本》)
提交评论