软件工程师以后会怎样?

软件工程师最坏的结局

软件开发者以后会怎样?这像是一个存在主义问题。毕竟,我自己就是软件开发者。

真正的答案是,没有人知道。

但我们可以推演。有时候,推演本身也会参与塑造现实。

当然,也存在一种很地狱的场景:程序员全都失业了,直接去开网约车、送外卖、搞自媒体。

悲观者正确,乐观者前行

我个人偏乐观一点。

我们会逐步切换到新的职位,比如“产品工程师”。

这个过程中也大概率会出现一些副作用,比如大规模裁员之类的事情。

不管这些裁员是否真的合理,裁员就是会发生,因为很多公司需要更好看的财报。

软件开发者分两类

软件开发者大体可以分成两类:

第一类是“把软件当成达成目的手段”的人。

互联网公司雇佣程序员,就是为了用软件实现目的。

如果真的有一个无代码工具,能让他们按照自己的想法把那个网站做出来,他们也会直接用无代码工具。

第二类是“把软件本身当成目的”的人。

这些人就是纯粹地喜爱编程。虽然这个软件没什么用,但构建软件本身让他们感觉非常快乐。

他们通常更偏数学,参加过编程竞赛,非常享受优化算法之类的事情。

他们可能只是为了写代码而写代码,也会很开心,即使最后不一定产出一个产品。

写出漂亮、性能好的代码,本身就足够让他们兴奋。

Claude Code 的创造者 Boris Cherny 经常说自己属于第一类。

程序员在为公司工作期间也属于第一类。

专业程序员依然幸运

对于“把软件当成手段”的人,这场 AI 革命,并不是坏事。

我们可以更快做原型,尝试更多想法。

也可以在一些没有完整技能储备的领域里做东西,比如用 Rust 构建内存安全的程序。

程序员不再特殊,因为那些和程序员一样想做东西、但以前没有花时间学代码的人,现在也能做东西了!

非专业开发者现在可以借助 AI 做出一些以前做不出来的东西。

但他们距离真正会开发、又会使用 AI 工具的软件开发者,仍然差得很远。

不管是构建出的软件的质量还是速度,都比不上专业开发者。

真的每个人都愿意写软件么?

同时,我在想一件事:每个人真的都想做东西吗?

我觉得很多讨论默认了这样一个前提:非技术用户以前不做应用,是因为他们没有工具,也没有能力。

但忽略了另一种可能性:很多人其实就是不想真正去做产品、做应用。

哪怕你不需要亲手写代码,做一个产品依然需要思考、设计、做原型、调试。

哪怕可以使用纯自然语言完成任务,依然要消耗大量的时间与精力。

而人类的时间和精力都是非常有限的。

我们愿意为软件付费,很大程度上是因为软件里内置了别人关于“这件事应该怎样运转”的观点和想法。

而我们相信,那些想法比我们自己想出来的更好。

专业软件的价值

比如滴答清单是一个并不复杂的程序,但依然有大量的订阅者。

我们喜欢滴答清单,是因为它减少了选择带来的压力。

我们被强迫用滴答清单的方式工作,是因为我们并没有更好的解法。

另一方面,我们为软件付费,是因为我们相信它比自己做出来的东西 bug 更少,也更安全,出问题时有客服可以帮我们。

有机器帮我们切菜,有机器帮我们洗碗,还有机器可以自己做出一整顿饭。

但大多数人就是选择了外卖。

对于盖房子装修,理论上我们可以自己搞定,但我们依然会选择雇人。

我们依然需要提供解决方案的商品。

编码的工作不会消失。

程序员的尽头是PM

如果大模型可以彻底解决复杂的编码问题,开发者会变成 PM,而团队里只有大模型 Agent。

但是,这个世界能承受大规模涌入的 PM 吗?

人类面临的问题,真的是构建软件可以解决的吗?

没人知道,也许可以。