小谈我对新技术的态度

这要从我最近的一次通宵写代码说起。

按理来说,我一个不再少年的人已经经不起通宵对身形的摧残,但上周末却无意识地完成了这个壮举。第二天腰不酸腿不痛,继续狂写代码一整天。所以除却中间吃饭休息了两小时,我一口气编程大概 18 小时……这种战斗力,可能只有以前打 Dota 和赶进度才有。

一切的原因在于我最近想做一个小工具,因为它足够简单,所以我想用上最先进最难的技术,以便于我能最小成本的学习并应用到它们。其实这也算我一直以来学习技术的一种方式:有冲动做小玩意的时候,直接用自己不熟悉的技术去做,有点像把 100 米短跑变成了 110 米栏,冲动会逼着你突破舒适圈,跨越运用新技术最初的障碍栏。

态度

通常这种新技术已经萦绕你耳边很久了,社区各种吹捧,朋友逢人就夸,GitHub上生态满天飞。耳濡目染让你手痒难耐,但它是否真如别人所说的性感,你还是得自己试一试。

我对待新技术的态度已经从当年的盲从变得谨慎,不是别人夸就好,而且就算它真的好,也得分场景。用扫地机器人去洗碗和用洗碗机去扫地,都是行不通的。而且学了就要用,如果平时都用不上的技术,了解即可,不必深究。除此之外,我通常还会让新版飞一会儿,等一两年出稳定版再学也不迟。现在前端技术百花齐放,很可能你学了一半就又有更强更新的技术出现了。

非颠覆概念的技术没必要花时间学。通常一个技术的学习难度是跟你自己的基本功和这项技术的革新程度有关。如果它没有出现颠覆原理或概念级别的创新,那就没必要单独分配时间去学,直接拿来用就可以,现学现用。如果你发现你学什么成本都很大,那你真正该做的是夯实你的基础。我举个例子,当年 React 出来的时候,是很明显会成为明星项目的技术,因为提出了 vitural DOM 和 if(state) = UI 等概念(当然这些概念在 GUI 领域也很久了,但在前端第一次大范围应用),那么学习它就很有必要,而且重点不是学习它的语法,而是去看看它的原理。原理搞懂,所有框架在你眼里都会雷同,只是语法不一样罢了。

最后我感慨一下我开头所说的连续18个小时的边学边做,这种情况一般出现在这门新技术正好是那种踮起脚尖能够得上的。保证学习过程中输入和输出比例的同步是快速学习的关键。

我其实很早想写一篇关于自己是如何学习技术,一步步走到今天的,不知道有没有人感兴趣。晚安。