# 对于「前端」的一些思考

> Site index: <https://blog.suxiong.me/llms.txt>

Original: [对于「前端」的一些思考](https://blog.suxiong.me/blog/some-thoughts-of-frontend)

Author: Suxiong

Date: 2022-03-18

深入探讨前端工程师的发展现状、困境和破局之道。文章分析了前端技术发展的趋势，指出了当前前端工程师面临的挑战，并提供了从传统前端工程师向产品工程师转型的具体建议。

Tags: 前端开发 / 职业发展 / 技术趋势 / 产品思维

## 前言

最近我看了@Tw93大佬关于前端的分享，给我留下了深刻的印象。因此，我想分享一下对「前端」的一些思考。

## 前端的发展现状

实际上，我们可以通过观察过去几届的D2大会来了解国内前端技术关注点的变化。

结合实际情况，我们可以看出大约从2017年后，前端技术开始趋于稳定。React和Vue作为主要的前端框架持续且稳定发展，同时Webpack成为常用的构建工具。大部分常用的组件和工具已经被开发出来，所以很少需要重新造轮子。因此，近几年前端领域开发者开始将注意力逐渐转向更广泛的领域。例如，vercel、rust、bun、arc、chatgpt等。

## 前端工程师的发展困境

- **卷**：一个部门一套微前端框架、一套组件库、一套低代码方案、一套 SSR 方案，该怎么办？

- **迷茫**：好写的代码都被写了，好造的轮子都被造了，去画页面又很无聊，新东西又学不动，该怎么办？

- **天花板低**：前端薄，高级岗位少，纯做业务难晋升，地位还不高，做到顶都难到技术管理层，该怎么办？

- **人才挤挤**：从之前的「人才济济」到现在的「人才挤挤」，现在找工作的人能力也很强，该怎么办？

- **行情不太好**：在降本增效的环境下，非正式化比例越来越高，低薪岗位很多，高薪岗位少，该怎么办？

## 如何去破局

需要先考虑一下，我在前端方面有哪些优势？

- **科班出身**：自己属于计算机专业出身，综合基础比较扎实，学习能力也不错。

- **愿意折腾**：前端属于天然就热爱折腾的岗位，见过前几年前端高速变化发展。

- **会写后端**：熟悉node等服务端知识，能够做一个独立可用产品不需求助人。

- **用户视角**：前端天然距离使用者的操作交互最近，因此对性能/体验/效率工具很敏锐。

那么，了解了自己的优势后该如何破局呢？

### 快乐地写代码比其他事更重要

首先自己需要真正热爱敲代码。保持持续的兴趣和激情将产生神奇的力量，多去寻找解决问题的满足感和创造有用工具的兴奋感。同时，找到适合自己最舒适的工作方式。自己可以保持生活中的性格不变，但可以改变在工作中的习惯，用自己最擅长的方式拿到结果。一定要注意在工作、学习和生活之间保持平衡。要意识到工作是为了过上更好的生活，学习是为了有更好的工作，它们三者之间可以相互促进。其实如果自己感到不快乐，通常是因为躺平和努力都不够纯粹，导致过得很纠结。

### 工程师应该很明白地做事情

首先，需要明确自己的定位。程序员应该是工程师，是脑力工作者，是通过科学和技术知识解决问题的专业人员，而不是码农，更不是资源。
因此来了需求后，不能埋头"搬砖"，而是要将事情理清楚，讲明白，做明白。

- 如何理清问题：找到最原始的需求问题来源，为什么需要解决这个问题，用思维模型去拆问题。

- 如何讲明白事：用RFC的标准去写文档，站在听众的视角去代入问题，尽可能简单明白，不要赋能。

- 如何做明白事：当自己都可以讲明白自己要做的东西了，尽管去做就好，除非自己不会敲代码，一般都可以做好。

### 不做传统前端，去做产品工程师

那什么是传统前端工程师呢？就是使用html、css、javascript来按照设计稿开发用户界面的程序员，也叫做画页面的那个人。

那什么是产品工程师呢？就是能够将痛点/想法用技术方式转换成产品让其发挥更大的作用的程序员，也叫做痛点解决工程师。

我觉得假设年底绩效考评，能够解决两个痛点问题的人要比完成100个页面开发的人更重要。因此我们要去做一名产品工程师。

成为一名产品工程师，我认为需要将技术思路或方案转变成可被销售的产品。当然也不能仅仅局限于前端或者岗位和技术领域，应该更注重用技术和产品思路去解决问题。
那么该如何做好一名产品工程师呢？

1. 发现痛点。这个问题你是否觉得很痛但没有好用的解决方案？
2. 产品思路。需求判断 -> 提出方案 -> 方案技术可行性分析。
3. 画交互稿。产品流程图 -> 产品原型线框图 -> 产品高保真。
4. 快速开发。优先解决最痛的问题，快速开发上线第一个版本。
5. 产品MVP。产品能力最小闭环流程跑通，是心中想要的样子。
6. 推广运营。清晰美观的使用介绍，及时获取用户反馈并迭代。

### 做一个给业务帮忙的前端

那么我们应该如何做一个给业务帮忙的前端呢？

1. 记住数据。业务的现状数据是怎么样的，目标看什么？当前头疼急需解决的事情是什么？
2. 视角转换。从工程师写代码的视角往业务用户视角去思考问题，也需持续训练，琢磨我可以做什么？
3. 找聪明人。发觉到项目组最聪明、最懂这一块儿的人，多去请教，多去交流，一起互补搞些事情。
4. 解决问题。利用前端工程师的专业优势，在过程中去发现痛点，甚至走访用户，解决大家头疼的点。
5. 学会借力。多和使用者去交朋友，多和交互设计师去合作，多给后端、测试、产品、运营去帮忙。

### 提升自己的工程师实力

什么是工程师实力？其实就是可以写在简历上证明自己水平的东西。那么都包括哪些方面呢？

- 专业技能（最基础）
- 能讲明白事情
- 能把事情做成
- 不断学习，折腾有想法
- 懂做易于使用的产品
