【经济学+前端技术】双视角分析 - 哪些技术值得投入学习
# 【经济学+前端技术】双视角分析 - 哪些技术值得投入学习

我相信这是每一个前端从业者都关心的一个问题，特别是在今天，前端技术发展如此迅猛，各种框架、工具百花齐放，如何在有限的时间里去学习值得投入的技术是非常关键的一件事。

## 透过现象看本质

回归到一个最本质的问题：什么决定了员工的工资？为什么程序员的工资比其他岗位高？

> 如果您想问“哪些技术值得投入”和“是什么决定了员工的工资”之间的联系，这里简单推导一下：学习技术是为了什么？-> 找一份好工作 -> 找一份好工作是为了什么？ -> 赚更多的工资 -> 是什么决定了工资的高低？
>
> 这里排除因为兴趣学技术的情况，因为兴趣学技术，不存在“值不值得”的问题。

在经济学领域有一个概念叫做 **“生产要素”** 是用于生产物品与服务的“投入”。当一家互联网企业生产科技服务时，它要利用程序员的时间（劳动），劳动是一种“生产要素”。生产要素的“需求”是派生需求，也就是说，企业的生产要素需求是从它向另一个市场供给物品或服务的决策所派生出来的。因此，对前端程序员的需求与企业对互联网服务的供给有不可分割的联系。

与经济中的其他市场一样，劳动市场也是由供需力量支配的，企业决定劳动的需求量是根据利润决定的，企业追求利润最大化，因此它并不直接关心雇佣的员工数量和它生产的产品和服务量。它只关心利润，利润等于生产服务带来的总收益减去生产这些服务的总成本。企业的产品服务量和员工需求都生产与“利润最大化”这个首要目标。

另一个概念是 **“劳动的边际产量”**，即增加一单位劳动所引起的产量增加量，在现实的生产过程表现出 **“边际产量递减”** 的效果，即一单位投入的边际产量随着投入量增加而减少的性质。

> 边际产量递减：一个程序员带来的产量假设为100，那么两个程序员可能是 180，三个程序员可能是 240...

由于利润是总收益减总成本，因此增加1个程序员的利润是他对收益带来的贡献减去他的工资。由于“边际产量递减”的性质存在，企业雇佣的程序员的数量到达一个临界点后就无利可图了，因此企业雇佣的人数会保持在劳动的“边际产量值”（边际产量乘以产出物的价格）等于工资的那个点。

### 影响工资变动的因素

通过前面的铺垫，我们现在可以得出结论：

1. 工资会自发调整，使劳动的供需达到平衡
2. 工资等于劳动的边际产量值

企业为了利益最大化，所雇佣的劳动直到边际产量等于工资为止。因此，一旦劳动的购买量使供求达到均衡， **“工资就必定等于劳动的边际产量值”**。所以改变劳动“供求”的任何事件都必定使“均衡工资”和“边际产量值”等量变动，因为这两个量必定总是相等的。所以，工资的高低取决于用劳动的边际产量值衡量的 **“生产率”**，也就是说， **生产率高的员工其工资也高，生产率低的员工其工资也低**。

### 影响劳动需求的因素

**产品或服务的价格：** 边际产量值是产品量乘以产品价格，因此，当产品价格变动时，边际产量值变动，从而带动劳动需求和工资的变动。例如：产品价格上升增加了每个程序员的“边际产量值”，从而增加了企业的劳动需求，并增加了程序员的工资。相反，产品价格下降减少了边际产量值，也减少了企业的劳动需求，同时降低了程序员的工资。

**技术变革：** 工程师不断地发明出新的，更好的技术，技术进步通常提升了程序员的“生产率”，增加了劳动的边际产量，从而增加了劳动需求，也增加了自己的工资。

## 回顾过去

回到前端，技术的快速革命本质上是在给我们前端工程师创造红利，技术的快速变革迅速提升了前端工程师的“生产效率”，且当下互联网产品的市场价值也比较高，在这样环境下，业务和技术在彼此互相成就的循环中，前端程序员的需求量和工资也不断提升。这一点从每年加入前端岗位的应届毕业生薪资不断上涨可以得到证实。

从这个角度，我们可以根据：**“提升效率的技术”** 来判断哪些技术值得投入。前端技术变革带来的边际产量值的提升可以分两类：
  
  1. 间接：提高研发效率 -> 提高业务效率
  2. 直接：提高业务效率

大多数技术变革都是以“间接”的形式提升前端工程师的“边际产量值”，先通过提升研发效率，再用研发效率的提升带动业务效率，从而提升自己的边际产量值。举一些我们比较熟悉的例子：跨端技术、Node.js、前端框架、Babel、Webpack等，这些技术都是通过“提升研发效率”或通过改变生产关系“提升研发效率”的方式“提升业务上的效率”。

也有一些可以直接提升“业务效率”的技术变革，例如：性能、搭建、中后台等。


**回到最初的问题：哪些技术值得投入时间和精力学习？**

答案是：一旦有一个技术大杀器出来，不论是“直接”地还是“间接”地提升所有人的效率和能力，那么这个技术必须要学。如果一个新技术出来没有对效率有影响，那么不学问题也不大。

## 展望未来

从目前接收到的一些信息和看到的苗头，面向未来可以提升效率的技术变革，包括不限于：Serverless、前端智能化、智能化搭建。当然，还有些永不凋零的领域：跨端、性能等。随着技术进步，具体的技术项目可能会过期，这些领域不会。以上提到的技术都符合 **“提升效率”** 的条件，大家有时间可以花时间了解一下。

#### Serverless

Serverless提供的能力可以通过改变生产关系的方式提升前端工程师的研发效率和能力范围，从而提升前端工程师的边际产量值。像今年天猫双十一主会场的SSR就是通过 Faas 函数来实现的，有了Node.js之后，前端工程师编写服务端的一些功能是比较轻松的。但后期的运维工作、数据库优化等问题是前端工程师不太擅长的。而Serverless彻底让前端工程师从这些顾虑中解脱出来，这意味着，前端工程师所涉猎的范围会变得更为广泛，且产研效率因为生产关系的改变也有极大的提升。效率+涉猎范围共同提升，这会提升企业对前端工程师的需求量，在供给不变的情况下，需求量增加，这又会提升前端工程师的工资。

#### 前端智能化

前端智能化包含D2C（设计稿转代码）、P2C（需求文档转代码）等，这个比较好理解，一位前端工程师，一天最多能生产多少张页面？让机器来做这件事一天可以生产无数个页面，这是很直接的效率提升。

#### 智能化搭建

智能化搭建是面向特定领域的一种技术升级，它不是提升前端工程师的研发效率，而是通过技术直接提升业务的效率。对于企业来讲，收益是相同的，研发效率的提升是为了提升业务的效率。如果直接提升业务效率对企业来讲收益是完全相同的。因此，这项技术也会提升前端工程师所产出的价值。

什么是智能化搭建，今天的搭建大部分都是手工搭建，如果利用大数据对商品和人群通过算法找到最佳匹配模式根据千人千面自动生成会场页面，这就是智能化搭建。它的效率无疑会极大的提高。

#### 跨端、性能

前端这个领域，某一个具体的跨端技术（jQuery其实也是一种跨端技术）或性能技术可能会随着技术的发展而被更有效率的技术代替，但领域是不会被代替的。这些领域都是可以长期跟进并投入研究的，一旦技术有创新突破，性能的提升可以直接对业务效率带来提升，从而提升自己的边际产量值，而跨端技术的突破会提高研发效率，从而提升自己的边际产量值。

## 总结

**“生产要素”** 是用于生产物品与服务的“投入”，程序员的时间（劳动）是一种“生产要素”，且生产要素的“需求”是派生需求，根据边际产量递减性质，企业对程序员的需求会保持在劳动的“边际产量值”等于工资的那个点。

一旦劳动的购买量使供求达到均衡， **“工资就必定等于劳动的边际产量值”**。所以改变劳动“供求”的任何事件都必定使“均衡工资”和“边际产量值”等量变动，所以，工资的高低取决于用劳动的边际产量值衡量的 **“生产率”**，也就是说， **生产率高的员工其工资也高，生产率低的员工其工资也低**。

产品或服务的价格可以影响员工的工资，技术的变革升级也可以影响员工的工资，由于技术的快速变革迅速提升了前端工程师的“生产效率”，所以技术的革命本质上是在给我们前端工程师创造红利，且随着技术的变革，前端工程师的工资上涨了。

可以通过 **“提升效率的技术”** 来判断哪些技术值得投入，展望过去：跨端技术、Node.js、前端框架、Babel、Webpack等技术让前端行业的效率和能力大幅提升了前端工程师的“边际产量值”，因此提升了企业对前端工程师的需求，随着企业对前端工程师需求的增加，前端工程师的工资也随着行业的兴盛一起上涨。这在过去每年加入前端岗位的应届毕业生薪资不断上涨可以得到证实。

面向未来，Serverless、前端智能化、智能化搭建、跨端、性能等领域会持续为前端提升效率，因此未来，企业对前端工程师的需求会进一步增加，前端工程师的工资会跟着行业的繁荣一起上涨。
