开发者的思路应该改变了
已经很长时间,我没有写过具体的前端开发方面的文章了。
比如说:
- 一个新的 API 的使用
- 一个新的框架的使用
这些文章我觉得对于前端开发者来说已经不再重要了。自从前年 Cursor 横空出世之后,到去年的 Agent 元年,现在前端开发的工作方式已经发生了翻天覆地的变化。
但在很多社交平台(比如小红书,甚至国外的 YouTube)上,我发现很大一部分人还认为 AI 写出的代码是“屎山”代码,觉得虽然写得快,但维护起来非常困难。
其实这个问题已经发生了改变。自从去年模型能力发生飞跃式提升之后,AI 写出的代码已经不再是“屎山”了。我个人认为它比自己写的代码更利于维护,而且更健壮。
它会考虑到很多代码上的边界处理问题。比如:
- 你写一个 JSON.stringify 或者 JSON.parse 这一类序列化的代码。
- 有时候你忘了处理错误边界(比如 try-catch 一下),就会发现在某些不能正确序列化的情况下会出现报错,从而导致整个代码无法运行。
不知道为什么很多人觉得 AI 写出的代码是屎山代码,也有可能是他们不想积极地去学习这方面的知识,也就是所谓的一些守旧派。
但我个人觉得,编程界已经发生了非常大的变化。而且现在的很多公司已经开始大幅度、大范围地使用 AI 了。如果不会 AI 的话,可能后面找工作都会显得十分困难。
我觉得他们对于 AI 的偏见,可能与模型有一定的关系。
有些人使用了一些比较低级别的模型,对比现在顶级的模型——比如 Claude、ChatGPT 还有 Gemini,这三家现在写代码比较权威的模型,即使是使用简单的 prompt,也可能达到你心中的理想效果。
而其他比较低级别的模型,就算你使用丰富的 prompt,可能都达不到你想要的效果。
身份转变
我个人觉得,现在开发的工作已经从写代码开始进行了转变,开发者更像一个决策者。
以前的开发需要对代码的各种细节有无微不至的了解。比如某个地方怎么实现,只有深入了解之后才能进行修改;如果有些东西(比如算法之类的)不会的话,那个算法就是写不出来。
而现在不一样了,现在我感觉开发者更像是一个决策者:
- AI 已经可以帮你写复杂算法和复杂的代码
- 你不需要再去了解这些复杂算法具体是如何实现的
- 你只需要知道有这么一个算法,并且判断这个算法放在这种场景下使用是非常合适的
那你就可以叫 AI 帮你写这个算法,不用再去细究它要如何实现。
所以我感觉现在更加重要的是知识面,也就是知识层面的广度,而不再是深度。以前是深度比广度更重要,现在则是广度比深度更重要。
你只需要知道有这么一个东西,才可能让 AI 去使用它;而以前,你可能更倾向于在某一个方面进行深钻。
当然,这也不是说现在深度就完全不重要了。因为在一些非常顶尖或复杂的行业中(比如数学行业),目前 AI 模型的能力还达不到可以自主研究的级别,那个时候深度就显得至关重要。
但实际上,可能只有非常少的人能达到那个地步。在前几天的 Hacker News 当中,我看到有一篇文章提到,Claude Opus 模型已经在几个小时之内,帮一位数学家解决了几周都没有解决的问题。
英语
如果说现在什么是最重要的,其实我个人觉得英语才是最重要的。
也就是说,再去深入研究算法的实现或代码的各种实现细节,已经是不太必要的了;相反,英语这门语言才是最重要的。因为现在顶级的论文和一些顶级的资料都集中在英文那一侧,所以学好英语在这个时候显得特别重要。
可能有些人会觉得,现在 AI 翻译已经非常成熟了,可以非常准确地翻译文章。甚至现在一些翻译职位都会被减少,那为什么现在还要去学习英语呢?
我个人认为,虽然 AI 的翻译已经非常成熟,但你不可能在所有场景下都依赖它。
如果你能直接看懂英语,效率会高得多。因为现在的 AI 在大部分情况下输出的都是英语,除非你在系统提示词(System Prompt)里指定它输出某种特定的语言,否则它多多少少都会掺杂一些英文。
在这种情况下,如果你想看懂 AI 输出的内容,那你得先进行翻译,转成你需要的语言,这一来一回,效率就会变得非常低。而如果你能直接看懂英语,可以省去大量翻译的时间。
而且英语作为国际通用语言,应用场景非常广泛。比如去国外游玩或进行国际交流时,都能直接派上用场。
所以我个人的感觉是,英语的学习优先级反而是最高的。
心灵提升
我之前可能觉得人际沟通没那么重要,但近几年发现它越来越关键。现在很多人喜欢跟 AI 聊天甚至谈恋爱,就是因为 AI 能提供非常强大的情绪价值。
大部分人如果没有经过系统性的学习,其实不懂得人与人之间该如何沟通。虽然有些天赋异禀的人不需要额外学习,因为他们成长和所处的环境就是一个良好的学习沟通的环境,这种熏陶让他们进入社会后自然而然就掌握了沟通方式。
遗憾的是,大部分人的父母(包括我自己的父母在内)其实并不知道如何表达自己的需要,也不懂得如何正确、友善地进行沟通。因为他们的父母也没有教过他们沟通方式。所以才会出现那种大吼大叫的家长,当孩子犯错后,首先得到的往往就是一顿劈头盖脸的责骂。
很多人都有 35 岁失业的危机。但其实,如果你能够良好地与身边的人友好相处,我觉得他们在你困难的时候肯定也会帮助你一把。
如果你是一个不会沟通的人,身边没有可以沟通的对象,也不知道该如何与人交流,那么你可能会感受到孤独,而且在你遇到困难的时候,也没人能够帮助你。
当你遇到挫折的时候(比如接连的面试失败),你的自信心可能会遭到毁灭性的打击。你可能不再想工作,甚至想把自己关在家里,不再尝试与外界沟通。这其实是一个非常危险的情况。
所以我感觉,除了学习英语之外,最核心的任务就是:
- 锻炼自己的心理承受能力
- 培养良好的沟通与交流方式
工作
现在说回工作方面。在之前的很多篇文章当中,我就谈到过我自己的工作方式发生了非常大的变化。我已经将 70% 到 80% 的代码交给 AI 完成,而我只需要负责代码的统筹:
- 考虑用什么方式实现代码比较合适
- 最终检验代码实现的效果
至于代码实现的细节,有时候我会去扫一眼,有时候完全不会去看它是如何实现的。当然,在工作场景当中我会更加严谨一点,几乎每次实现的代码我都会扫一眼。
但其实经过这么多次使用之后,我发现了一个问题:AI 实现的代码,无论是执行速度还是考虑全面性,都要比我自己手动实现花费的时间更少,并且错误边界的处理更加完善,代码也更加健壮。
我最近也开始尝试逐步完全靠 AI 生成代码,我自己不进行干预。
因为我刷到了一篇帖子,说 Claude Code 创始人,他现在的代码已经 100% 通过 AI 实现了。他甚至已经删掉了代码编辑器,每天的工作就是打开 4 到 5 个 Claude 窗口,然后统筹任务,让 AI 进行执行。
这让我感觉到非常震撼。虽然我已经将很大一部分的代码实现都交给了 AI,但还是有 20% 左右的代码是由我自己实现的。
其实这个比例在最近还在减小,可能我写的代码已经降到了 10% 左右,但还是不能像 Cloud Code 的创始人一样, 100% 的代码都由 AI 完成。
而且在工作场景下,我发现自己每次只能做一件事情,而那些走在 AI 应用前列的人,已经开始同时处理 4 到 5 件事情了。
所以我预测的未来,并不是比谁的代码写得更好,而是谁能让 AI 更快、更好地进行实现需求。
就像有时候我观察到,同样的工作,同事可能要用一天的时间才能写出来,而我只需要花费一个小时就能完成,并且实现效果比他的还更好。
当然,这些的前提是你需要使用一个顶级的 AI 大模型。
顶级模型
我个人强推的模型就两个:一个是 Claude,一个是 ChatGPT。
至于 Gemini,我自己在实际使用当中,发现它在编写代码时出的问题还是非常多的,效果远不如 ChatGPT 和 Claude。
而在 Claude 和 ChatGPT 之间,我个人更推荐 Claude 这一个模型。因为在非常多的场景测试下,它虽然不再像以前那样属于断崖式的领先(尤其在 Codex 出现之后),但我认为它依然处于 T0 的位置。
但是 Claude 有一个问题,就是它非常昂贵,比 GPT 模型要贵很多。
比如说,同样是 20 美元的订阅,用 Codex 可能很少会触发到它的使用上限,而使用 Claude 的话,可能很快就会达到上限。
但我还是强烈推荐在工作中使用 Claude 模型,因为它十分省心,几乎很少会出现低级错误,而且会严格遵循你的指令。比如说,你项目中有一个约束文件,它通常会严格遵守这个约束文件。而使用其他模型,我就发现有时候会差了一点意思,即便我在约束文件中已经写明了弹窗应该用哪一个组件,AI 在实现代码时可能并没有按照我的约束进行,而是用了另一个组件,或者自己重新创建了一个组件。
说到这里,就要提到为什么在我工作中,手敲代码的比例逐渐下滑的原因之一了。
这是因为随着这些模型的迭代,尤其是从去年的 Claude Code 出现之后,它提出了非常多的新东西。
尤其是 Skills 自从推出之后就大火,现在已经有非常多的开源 Skills。而 Claude 更能有效地调用对应的 Skills。
所以几乎针对每一个项目,我都单独创建了一个 skill,好让模型知道这个项目应该怎么编写,以及该功能应该使用哪一个组件进行编写。
而且现在这些 AI 工具迭代的速度非常快。比如说 Claude Code 的迭代速度,几乎每一天都会发布一个新版本,而每一个版本都会引入新的功能。
这些版本的更新信息基本上是由英文编写的,第一手资讯都是英文。如果你不懂英文的话,可能会错过大量信息。
总结
之所以我现在不再写那些关于框架用法或者新 API 用法的文章,其中最大的原因是我觉得已经没有必要再深入去学习那些内容了。
但其实还有一个例外的场景,那就是面试。面试的时候,往往只有通过问这些内容,才能知道一个人的真实水平,所以这就是需要权衡利弊的地方。
虽然我觉得花时间去研究——比如之前面试非常喜欢考的算法如何实现、框架的实现原理是什么——现在都没有必要去深入探究了。你只需要问一下 AI,它甚至可以逐行地去阅览代码,然后给你一个最终的结论。
但在面试中偏偏会考这些问题。所以,如果你需要找工作的话,还是需要去看一下这些底层原理之类的内容。
最后,这篇文章都是基于我现在的认知去写的,所以里面的一些观点不一定正确。还是要根据你自己的看法,去决定你接下来应该做什么。
☕ 请我喝杯咖啡
如果这篇文章对你有帮助,欢迎打赏支持!