
软件工程师最坏的结局
软件开发者以后会怎样?这像是一个存在主义问题。毕竟,我自己就是软件开发者。
真正的答案是,没有人知道。
但我们可以推演。有时候,推演本身也会参与塑造现实。
当然,也存在一种很地狱的场景:程序员全都失业了,直接去开网约车、送外卖、搞自媒体。
悲观者正确,乐观者前行
我个人偏乐观一点。
我们会逐步切换到新的职位,比如“产品工程师”。
这个过程中也大概率会出现一些副作用,比如大规模裁员之类的事情。
不管这些裁员是否真的合理,裁员就是会发生,因为很多公司需要更好看的财报。
软件开发者分两类
软件开发者大体可以分成两类:
第一类是“把软件当成达成目的手段”的人。
互联网公司雇佣程序员,就是为了用软件实现目的。
如果真的有一个无代码工具,能让他们按照自己的想法把那个网站做出来,他们也会直接用无代码工具。
第二类是“把软件本身当成目的”的人。
这些人就是纯粹地喜爱编程。虽然这个软件没什么用,但构建软件本身让他们感觉非常快乐。
他们通常更偏数学,参加过编程竞赛,非常享受优化算法之类的事情。
他们可能只是为了写代码而写代码,也会很开心,即使最后不一定产出一个产品。
写出漂亮、性能好的代码,本身就足够让他们兴奋。
Claude Code 的创造者 Boris Cherny 经常说自己属于第一类。
程序员在为公司工作期间也属于第一类。
专业程序员依然幸运
对于“把软件当成手段”的人,这场 AI 革命,并不是坏事。
我们可以更快做原型,尝试更多想法。
也可以在一些没有完整技能储备的领域里做东西,比如用 Rust 构建内存安全的程序。
程序员不再特殊,因为那些和程序员一样想做东西、但以前没有花时间学代码的人,现在也能做东西了!
非专业开发者现在可以借助 AI 做出一些以前做不出来的东西。
但他们距离真正会开发、又会使用 AI 工具的软件开发者,仍然差得很远。
不管是构建出的软件的质量还是速度,都比不上专业开发者。
真的每个人都愿意写软件么?
同时,我在想一件事:每个人真的都想做东西吗?
我觉得很多讨论默认了这样一个前提:非技术用户以前不做应用,是因为他们没有工具,也没有能力。
但忽略了另一种可能性:很多人其实就是不想真正去做产品、做应用。
哪怕你不需要亲手写代码,做一个产品依然需要思考、设计、做原型、调试。
哪怕可以使用纯自然语言完成任务,依然要消耗大量的时间与精力。
而人类的时间和精力都是非常有限的。
我们愿意为软件付费,很大程度上是因为软件里内置了别人关于“这件事应该怎样运转”的观点和想法。
而我们相信,那些想法比我们自己想出来的更好。
专业软件的价值
比如滴答清单是一个并不复杂的程序,但依然有大量的订阅者。
我们喜欢滴答清单,是因为它减少了选择带来的压力。
我们被强迫用滴答清单的方式工作,是因为我们并没有更好的解法。
另一方面,我们为软件付费,是因为我们相信它比自己做出来的东西 bug 更少,也更安全,出问题时有客服可以帮我们。
有机器帮我们切菜,有机器帮我们洗碗,还有机器可以自己做出一整顿饭。
但大多数人就是选择了外卖。
对于盖房子装修,理论上我们可以自己搞定,但我们依然会选择雇人。
我们依然需要提供解决方案的商品。
编码的工作不会消失。
程序员的尽头是PM
如果大模型可以彻底解决复杂的编码问题,开发者会变成 PM,而团队里只有大模型 Agent。
但是,这个世界能承受大规模涌入的 PM 吗?
人类面临的问题,真的是构建软件可以解决的吗?
没人知道,也许可以。