聊下前端 —— 关于我的职业经历和前端是否会被“取代”的碎碎念

这篇文章先在我个人网站发,后搬运到了小红书的个人号、优快云。

现在 AI 全面摊开了,总是能刷到某某模型要把“前端/程序员干掉了”。或许在这些人眼里,前端开发似乎就是个“画皮”的工作——AI 生成一段 HTML,再加点 CSS,网页就出来了,所以前端工程师马上就要被淘汰了。

说来惭愧,前端这一行我也就干了快三年,但我觉得我能谈谈我的经历,以及我对前端的理解。一方面觉得好笑,就和我之前在小红书发的帖子差不多,我认为很多营销 AI 的本质上是一种林禄和,另一方面我也确实觉得,好像大家印象中的前端确实就是个很简单的玩意,确实很容易给取代了(我以前做的一个项目的甲方就这么想),无论这个取代前端的,是我们的同行,还是人工智能。

我想从我个人的成长轨迹出发,聊聊什么是真正的“现代前端”,以及为什么它远比外人想象的要复杂和厚重。

我对前端最初的记忆,要追溯到小时候上计算机课,当然,我那个时候还不知道前端这个词,就叫网页吧。

1. HTML 和玩具 JavaScript

我是 2000 年出生的,小学和初中还是 Windows XP + IE 的天下。我记得我小学偷摸着上网的时候,浏览器很多 URL 的后缀都是 .jsp,.asp 之类的,还是不分离的时代,我对 HTML 的认识,还是我用 IE6 另存为网页,然后打开记事本打开看的那一堆杂乱的文本。

我 2012 年上的初中,那个时候 Node.js 刚出现没几年,Windows 8 刚刚出现,IE 也快死了。我初中计算机教室的电脑还是 Windows XP,虽然大家都知道 XP 在 2014 年就要完蛋了,但无所谓接着用。计算机教材也是如此。我们那个时候用 Dreamweaver 来做网页设计,老师教我们用拖拽的方式来做网页,我记得当时我还挺喜欢的,觉得挺有意思。老师那个时候介绍 JavaScript 的时候,说,这个就是个脚本(我的理解是:原来是个玩具),可以有特效的,也没说太多。

有次大作业是:用 Dreamweaver 做一个电子周刊。我很高兴我做出来了,我也觉得我真是个天才,做的那么漂亮。我也觉得,原来“网页开发”就这么简单吗。

我没想到的是,从上帝视角来看,前端已经开始革命了。

2. 原来“网页”可以这么强

再次深度接触“网页”,是在我上高中的时候。

那时前端生态开始爆发,Vue 和 React 已经崭露头角,如果我没记错的话,当时作为一个技术爱好者,我尝试用 Hexo 搭建了自己的博客。这是我人生中第一次接触 Node.js,我那个时候也不知道 Node.js 是什么,就觉得原来 JavaScript 还能这么复杂。

微信小程序开始在国内普及。我突然发现,“网页”的概念变了。它不再只是浏览器里,就像百度搜索一样的玩意,原来已经有了类似 App 的体验。

“原来网页可以这么厉害吗” —— 我当时是这么想的。

3. 开始涉及开发这一行

命运给我开了一个玩笑,我后来从一个爱好者,真的变成了程序员。

我常常对人说,我是半路出家的程序员,因为我是报培训班学的 —— 我刚从培训班出来的时候我都不好意思说,但现在无所谓了 —— 因为我觉得,至少现在的我,不是刻板印象中的,“培训出来的程序员”。

我们那个时候 ChatGPT 3.5 刚刚出圈,我当时还赶上了“古法编程”的末班车 —— 为什么是古法编程,我们那个时候还是全手写代码,不会的查 优快云,而不是现在这样,用 Copilot,用 Cursor,不会的问 AI。

我在培训班学的技术也很常规,

第一个是 Vue 2 + Element UI,后台管理系统。第二个就是小程序和 UniApp。

4. 开始了前端的职业生涯

我第一份工作是帮朋友做小程序开发,给某个高校做就业辅导系统。第一份工作是项目制的,几个月之后交付做完,我就走了。

第二份工作,我去了长沙。那个公司先在北辰三角洲附近,后来公司搬家了,去了侯家塘。这家公司是做建筑行业的数字化方案的,它和我之前的公司不一样,为什么这么说,因为它“重前端”,我第一天入职的时候就发现,他们后端其实不会处理琐碎的业务逻辑,和之前那份工作不一样,后端比较抽象。他们很多业务逻辑都是在前端实现的。也是这个时候开始觉得现在很多业务逻辑已经转向了前端。

那个公司还用了一些付费的前端库,后来我查了一下,好贵的,要是我我真付不起。那些前端库其实也很复杂,我觉得做起来不比后端轻松。

5. 前端远比想象的复杂

接上文,在那家做建筑数字化的公司里,我真正见识到了什么是“现代前端”。

我对“现代前端”的理解分为两点:复杂和多样。

什么是复杂?业务逻辑后转前,前端处理的东西更多了。不仅仅是长沙的那个项目,包括我这段时间以来做的,其实,后端变得非常“抽象化”,他们只负责提供最基础的数据接口和鉴权,而大量复杂的业务逻辑、数据清洗、甚至是一些图形计算逻辑,全部压在了前端身上。我每天面对的不是简单的 div 和 span,更复杂的东西,以前客户说需求的时候可能后端听听就行了,现在前端也得理解。而且你得知道,JavaScript 无论怎么样也是一个图灵完备的语言,理论上你能用 JS 实现任何东西。

什么是多样?前端可不仅仅是跑在 Chrome 里的那堆东西。前端有 Electron、有小程序、有 React Native —— 如果你认为这些本质上还是浏览器的话,那还有 Flutter、Dart。

6. “被取代”

从长沙那家公司离职之后,我一度焦虑过。
那时候我手里只有 Vue 和 UniApp 这两把刷子。而且前端行业确实算寒冬,老板都在降本增效、同行们都在卷。那个时候已经有前端“被取代”的论调了,很多卖课的也在制造焦虑,说你要被取代了 —— 不过他们那个时候还没用到 AI 话术,只是说,你应该报我们的增强班,这样能卷过别人。

我后来去了岳麓的一个公司面试了下,因为我简历上有一个 Vue 3 项目写的是,用了 Pinia 做状态管理,面试官问了我一个问题,

“你为什么选择用 Pinia 做状态管理,而不是基于 localStorage 自己封装一个?”

我不知道怎么回答,我说,

“Pinia 更方便”

现在看来我真的想狠狠抽自己,这个回答显然是很蠢的,我觉得我只会用,但是不理解。我在培训班的时候,老师也说过,“你们会用就行了,不用理解太多”。

如果说 AI 能取代谁,它取代的一定是那个时候的我。

因为如果只是写 Vue + Element UI 的模板代码,那 AI 很容易取代你,写好点提示词,搞好点工作流,很舒服、很轻松。

如果是当时的我,我觉得被取代,我都有点心甘情愿。因为无论是在 AI 诞生前还是诞生后,一个只知道在舒适区里重复造轮子、而不去思考底层原理的程序员,本质上都是在慢性死亡。

后来我回了老家,我开始恶补之前缺掉的,我重新学了 TypeScript,系统性学了 React、并且开始涉及到 SSR、 Node.js 甚至是后端的。并且我不再满足于“能跑就行”,而是开始思考“为什么要这么写”。

当然,这些是技术,现在更重要的是思维方式。我开始学着去分析问题,而不是单纯地想着“我怎么写代码”。促使我更注重理解需求的,也是我参加的一个项目,被甲方说了,因为我当时理解需求上是一个短板。那次经历让我意识到,光有技术是不够的。

7. AI 时代的“画皮”与“画骨”

回到最开始的话题,AI 会把前端干掉吗?

现在 AI 全面铺开,我也在用。它能帮我生成我懒得写的 CSS,能帮我写出一段完美的正则,甚至能帮我重构一段屎山代码。

在很多外行,甚至是一些营销号眼里,前端依然是那个“画皮”的工作。他们觉得 AI 画皮画得这么好,你们这些画皮的人该失业了。

我觉得从我的经历来看的话,已经足够证明前端不再是“画皮”。

前端现在是“画骨”了,前端也不是在一张画着猫的纸上,把猫改成老虎皮,而且真画了张老虎出来。

AI 生成的网页,实话说比我手写漂亮,但他真的不能完全吃透业务逻辑,而且它输出的结果是不确定的。从细节上,你永远不知道它下一次会输出什么东西。

更关键的是,AI 并不懂什么是“需求”。

从 Transformer 这个架构上来说,它并没有人的思维能力,它是在照猫画虎,在预测下一个字,它也不理解客户那句“五彩斑斓的黑”背后真正的焦虑是什么。很多媒体说,LLM 现在能对你的对话产生情绪,甚至能发流汗黄豆 emoji —— 但这个只是训练的结果,你还能给它训练成猫娘呢。

以前我觉得,程序员的核心竞争力是“写出复杂的代码”。但现在我觉得,核心竞争力是“理解复杂的需求”。

AI 能模仿代码的实现,但很难像人一样去处理那些非标准化的、充满变数的真实业务。你作为新时代的程序员,如果还只是盯着代码本身,那确实危险;但如果你能透过代码,去理解业务、去解决实际问题,那 AI 就只是你手里的一个强力工具。

就这样,前端还能被取代吗?我想不能。只要人机交互的需求还在,只要业务逻辑还在不断变化,那个只会画 HTML 的“前端”可能死了,但作为工程师的“前端”,才刚刚开始精彩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

保禄241225

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值