读《贫穷的本质》引发的一些思考

3/8/2021 读后感前端思考工作感悟总结

最近在看了 《贫穷的本质》 (opens new window)这本书,然后结合书中的观点和最近工作的一些思考,写了这么一篇文章,和大家分享一下我的一些想法。

《贫穷的本质》

书的最后,给大家总结了五点,穷人之所以一直贫穷的原因,因为看的是翻译的书籍,这里我用我自己的话来复述一下:

  1. 穷人通常缺少信息来源,相信那些错误的事情;
  2. 穷人在生活中有更多需要考虑的因素;
  3. 一些服务于穷人的市场正在消失,或是在这些市场中,穷人处于不利地位;
  4. 贫穷的国家不会因为贫穷而为穷人提供帮助;
  5. 对于人们能做什么或不能做什么,最终会变为一种自我约束;

# 如何摆脱技术瓶颈?

根据上面得到的一些结论,我们可以将人们得到的财富与我们的技术能力进行类比,去深入思考为什么很多人在工作五年甚至十年后,还是在中级工程师的门槛徘徊,以及我们应该如何避免这样的事情发生。

# 主动获取信息

穷人通常缺少信息来源,相信那些错误的事情。

就拿最近的疫情来说,有些人觉得疫苗和戴口罩没用,导致感染疾病,无法支付高额的医疗费用,陷入贫穷陷阱中。

那么我们在开发过程中是否也会有这样的问题?

如果你在公司一直在使用老旧的开发模式,很容易与现在的开发模式脱节,我们要做的就是跳出这样的开发模式。积极向领导提意见改变现状,如果无法改变,那就多积累然后改变环境。比如,先将某些项目的部分模块进行一些技术迁移,至少要有个简单的 demo,让你的同事或领导看到其收益。

当然,就算你现在的公司使用了一些前沿技术也会逐渐过时,这就需要我们有一个主动获取信息的能力,例如我会通过 RSS 订阅一些前端领域的周刊,持续关注一些新的技术。

RSS

# 少抱怨,多思考

穷人在生活中有更多需要考虑的因素;

贫穷的国家不会因为贫穷而为穷人提供帮助;

一些服务于穷人的市场正在消失,或是在这些市场中,穷人处于不利地位;

书中花了大量的篇幅在阐述这些观点,引用了很多真实的调查结果,富人在办事的效率和容易程度上远远高于穷人。例如,银行会优先为存款百万的客户办理贷款业务,而穷人去银行办理贷款业务通常会被拒绝,因为没有可抵押的资产,不能获取银行的信任。同时,在贫困国家的当权者,在制定政策时,会优先考虑自己或者自己的支持者的利益。穷人在其中很难获取资助,即使有也会被中间的政府官员贪污。

通过上面的示例,我们也能联想到我们在学习新技术时,经常会抱怨学不动了。如果不去积极主动学习,很容易被淘汰。就像富人更容易从银行贷款一样,大公司也会更优先考虑技术基础更扎实、技术视野更宽阔的候选人。

当然,也不是说有新的技术我们一定要立即去学习,我们可以只选择一部分我们感兴趣的事情进行深入。就拿打包工具来说,新出的 Vite,以及我们常用的 Webpack、Rollup,我们在学习的过程中,应该如何抉择。对于 Vite 我们应该先尝试去了解其优点,那就是尝试通过现代化浏览器支持 ESM 模块化的特性,省去了传统打包工具依赖查找、文件合并等步骤,优化了开发过程中服务启动流程,其缺点也很明显,那就是开发环境没有经过打包,而发布时又需要打包,会导致开发与发布的代码不能保持一致。

bundler

所以新技术出现时,尽量去了解与思考原理性的东西,而不是简单的掌握使用方法,这样会很费劲。现在回过头看 React 早期的 API 与现在的 API,你会发现有很大的出入。

# 如何看待前端不务正业?

书中里面有一句这样的话:

很多穷人都身兼数职,但这同样是缺乏效率的。如果不够专业的话,他们很难成为任何一个领域的专家。在城市里,有些女人会涉足三种不同的职业,而有些男人却无法专注于一项工作,因为他们想每隔几周就回到村里。这些人会放弃学习其主业方面的技能及增加经验的机会,进而错失专门从事其擅长领域的收益。

看到这句话的时候,很容易联系到自己平时的工作,是不是也会因为涉及到多个领域,导致自己的效率低下。然后想到自己刚入行的时候陷入的迷茫,明明自己的 Title 是前端工程师,却总是做着与岗位不符的事情。

在我的职业生涯中,确实做了很多和前端岗位不符的事情。比如,干过一些 PHP 的活,也干过 SQL 导数据报表的活。虽然这些事情都没有很深入,但是为我扩展自己的知识面提供了帮助。而且做这些事情,并不会影响我继续深入前端方面的知识。做为一个前端程序员,你首先得是程序员,那做为程序员,肯定需要具备程序员的一些基本功,不管是什么语言,本质上都是一些变量赋值、条件判断、循环运算的事情,所以我们遇到事情的时候并不需要害怕,尽管去做。

那我们又该如何看待上面书中提到的问题呢?

在马克思的《资本论》中,将劳动分为简单劳动和复杂劳动。所谓简单劳动就是机械式且重复的劳动,不需要专门的基础知识,且大多数是体力劳动;而复杂劳动则是需要经过系统学习和培训的,一般人短期是无法上手的,且大多数是脑力劳动。

针对简单劳动,因为大部分是与体力相关的,那长期从事某一项体力劳动,我们的身体就会总结出一些技巧,比如我长期搬砖,我就知道怎么搬能更省力,但是后面我去种地,之前搬砖的技巧对我来说是没有帮助的,所以会出现前面提到的,短期内从事多个不同职业,会失去长期进行经验性的积累带来的那部分收益。

而我们干的事情属于复杂劳动,针对复杂劳动,我们更需要看重的是自己的能力,而不是技能。那我们应该怎么区分什么是技能,什么是能力?

比如说我今天用 Vue 写项目,明天用 React 写项目,我能够在两个框架的组件的适当生命周期内通过 fetch api 请求服务端数据,完成产品需求,这个我们可以称之为技能。而能力,就是在组件请求失败的时候,快速定位出是我们代码的能力,还是后端服务的问题(方便甩锅)。

所以,在我们从事前端开发的过程中,应该尽可能多的去提升我的能力。毕竟,随着时间的推移,技能可能会出现半衰期。比如,十几年前通过 flash 完成网页特效的人,掌握的 flash 技能已经没有什么用武之地了。而能力随着时间的推移,反而越来越能体现出其价值。

更新时间: 10/12/2022, 2:41:00 AM