我在 HN 上听到过太多类似的评论:
我曾经拥有一项很难获得、需求旺盛、薪水丰厚的技能,感觉即使编程语言、库和 Web 框架一直在不断发展,我也总能跟上,因为我很聪明……我发现等待客服人员处理事情远没有那么有趣,而且很难进入管理多个事务的流畅状态。这让我想从事一些完全不同的工作,比如销售。
是的,我们所有人都拥有的技能被商品化了,这真是糟透了。你总是听到工厂工人的工作被外包或自动化的故事,但我们(错误地)认为软件工程师这样的白领工作也会遭遇同样的命运。事后看来,这想法相当天真,但既然我们身处其中,我们别无选择,只能接受它,拥抱它,就像一个无助的人站在海滩上,凝视着即将到来的海啸。要么乘风破浪,要么被淹没。
是的,我们都会有失业焦虑,尤其是那些没有全职工作而是靠合同工作的人,但我想承认,人工智能确实减轻了我的实际工作压力。简而言之,没有任何即将出现的功能请求让我感到害怕,因为我知道我有帮助。必须查看遗留代码库并进行更改?没问题,我可以比以前快 50 倍地理解代码库。客户要求进行重大更改,需要进行大量重构?小菜一碟。我想解析一堆日志以大海捞针?搞定。需要为复式记账系统制定计划,但我甚至不熟悉会计概念?来吧。代码文档很差,你在拖延?现在不用了。你明白我的意思了。
所有这些事情过去都让我感到压力很大,因为研究、调查或学习这些事情的曲线非常陡峭,而且耗时。有些曲线可能仍然很陡峭,但肯定不再耗时了,这本身就提高了我的生活质量。人工智能让我节省了大量时间,让我可以简单地读书、看电视节目,或者花更多时间陪伴家人。我的周末过去常常被jumpcomedy.com的工作占据,我甚至会骑自行车出去,因为我知道原本需要20个小时才能完成的事情,我只需要4个小时,而且我还可以腾出一些休闲时间。这对我来说太疯狂了。
我怀念从零开始写代码的日子吗?我不知道这个问题的答案。我知道,我并不怀念那种“卡壳”的感觉,尽管“卡壳”正是我学习很多东西的途径。我知道,我喜欢看到自己的想法更快地变成现实——几分钟、几小时就能实现,而不是几周、几个月。这意味着我可以进行更多实验,所以也许我已经用“实验式学习”取代了“卡壳式学习”。迭代的次数增加了,速度也加快了,所以我比以前更多地经历了“检查-调整”的循环。这是精益创业的循环加速版。
但是,我怀念从零开始写代码的日子吗?拿枪指着我的头。我会说……不。这听起来像是对我的艺术和职业的背叛,但代码始终只是达到目的的一种手段,而且我似乎能更快地达到目的,所以我为什么感到难过呢?是怀旧吗?是放弃你投入了这么久的东西吗?是写代码是你身份的一部分吗?是学习编程感觉像是一种沉没成本吗?我的学位都白费了吗?不,是的,有一点,也许吧。
现在重要的是,我们已经进入了一个全新的世界,而我掌握了一些与时俱进的技能。事实证明,软件工程的核心原则与语法和语言关系不大,我现在最常用的技能与人工智能时代之前并无太大区别,但似乎更有价值,因为人工智能似乎与其中一些技能背道而驰,例如:
- 问题分解,即将较大的问题分解为可管理的部分,然后有意识地关注每个部分,而不会扩大问题/上下文空间
- 致力于 YAGNI/KISS 原则,因为使用 AI 生成代码并实现你可能不需要的东西非常容易
- 找到正确的应用程序架构和抽象,因为你比人工智能更了解客户的需求,并且更善于预测变化,因为你与客户交谈
- 更加关注业务问题,而不是代码本身的“如何”。我发现自己比以前更了解问题领域了。
这些不一定是硬工程技能,但它们是我已经提升为“主要”技能的工程技能,取代了编写代码。我感到有些怀旧,但我也能更快地看到成果,这足以弥补我的遗憾。这最终会导致我失业和收入损失吗?也许吧。但未来令人担忧,过去令人遗憾,所以不妨活在当下。