有时候会突然想,我为什么会学习技术,或许是为了工作,或许是为了钱,又或许,哪有那么多为什么?

我还应刻意追求技术吗?

这是最近一直在思考的问题,前端,实在是变得太快了,快到你都快忘了 前端 这个 title 仅仅都只出现了几年

似乎在每个醒来的清晨,人们的嘴里又多了几个从没有听过的 新潮词语 .

刚工作的 less 预处理,gulp, 是的,在我刚听说 grunt 时,它就已经被淘汰了,

从再不学就找不到工作的 angular.js, 到现在却成了一个人们不愿提起的 笑话, 这也许本身就是一个笑话,很遗憾,我们很难判断一个新兴事物,它的未来是怎样,出于对技术的热爱,又或者我想成为在别人的眼中是一个喜欢追求技术的人?

于是我来者不拒,在很长一段时间,我认为这是最适合我也是最好的学习方法,是的,技多不压身,鲁迅说的,我开始学习了人们口中谈论的所有我不知道的技术,很难想像 React.js 竟然是 2013 年 的产物,它一度成为了 我赖以生存的 技术

当我还在用 tinypng , 在线压缩 js,css 工具 做着体力活时,

当我还在编写 gulp 的 task , 向同事炫耀 pipe 的概念

当我还在用 $('.test').fadeIn() 时,发现已在 react,vue, angular 的三驾马车上

当我还在 苦恼 webpack 该用哪个 loaderplugins 减少 js bundle 的体积

当我还在吐槽 es6 的 箭头函数 好不习惯 React.createClass 不是好好的,为啥替换成 class App extends React.Component{}

如 新华字典一般的 es6 手册, 眼花缭乱的特性刚熟练运用 es7,8,9,12345677 还在远处像我招手

开始用 flex布局 写手机端 , grid 姗姗来迟

react-nativehello world 刚出现在虚拟机上,别人的 PWA config 已经写好 Flutter run 也在 bash 上跑了起来

还在苦恼 php 为啥要配合 Apache 才能跑起来时,node app.js 不知道出现在了多少人的 package.json

express , 到 koa , 再到 nest.js

ssh root@xxx 老实巴交的 登录服务器部署服务端代码,再到后来的 docker docker-compose 打包部署,再到交给 CI CD 完成

从 小程序 再到 Taro 之类的转换框架

从 轮询 到 websockt

restful apiGraphQL

express.staticnginx

sqlorm

是的,我罗列了好多好多的关键字,这都是我用到过的技术,不幸的是,我突然发现 我竟然没有想过 新兴技术的出现,解决了什么问题,三年前做前端到现在,我视乎都是 觉得哪个技术比较潮流,比较装逼 而去学习的,我发现我身上所谓的技术功底,或者说大部分人 都是 熟练运用一些 技术框架的 api, 现在人们称之为 搬砖工

为了成为别人口中的大神?, 同事吹嘘的谈资?知道很多冷门的api? 毫无用处

是的 我有一点疲倦了。或者说 有点疲劳了。最骚的是,似乎还是我自己造成的,

我不需要知道一切

前段时间 我看了一篇文章 The Ultimate Guide to JavaScript Fatigue: Realities of our industry

这也是我为什么要在这里写下这些毫无头绪的文字的原因

当我写这篇文章时,NPM 有 489,989 个包,明天将有大约 515 个新包发布。

我们使用和抱怨的包装背后有我们必须理解的历史,以便理解我们为什么需要它们。他们都试图解决问题。

Babel,Dart,CoffeeScript 和其他的转换器来自于我们编写除 JavaScript 以外的代码但在浏览器中可以运行的必要性。Babel 甚至允许我们编写新一代 JavaScript,并确保它甚至可以在旧浏览器上运行

Webpack 本身实际上解决了更多的问题,因为它允许我们处理 CSS,图像和许多其他资源,就像它们是 JavaScript 依赖项一样。

PWA 的存在是因为它们创造了商业价值

对于任何患有 JS 疲劳的人,我的第一个建议肯定是要意识到你不需要知道一切。试图一次性学习,即使我们不必这样做,也只会增加疲劳感

我能深刻体会到这种疲劳感,为了学习而学习 视乎除了 让自己吹牛逼的时候更有底气,视乎没有其他的作用,新兴的事物,视乎一夜之间,就变得不那么 新鲜. 相反我应该花更多的时间 打好我的 javascript 基础,设计模式, 算法基础, 虽然我可能发不完这篇文章后 就进入了 召唤师峡谷 : )

是时候开始解决问题了

最初我有一个想法,从 0 搭建一个博客,花了三个月 用 react + node , 自费阿里云 就做出来,这很酷,当然也很累

我有了第二个想法,花了三个月时间 做了一个很多 bug 的 React UI 组件库, 没错,也很酷,当然,也很累

初次之外,我还花了很多时间 做了很多玩具,在线表情包制作器,处理图片的滤镜,上传图片的插件,生成 react 项目的脚手架,音乐播放器,没错,都很酷,当然,都很累

关键的是,它们似乎都没有解决问题,这时最致命的,当然,从学习技术的角度,我比很多人牛逼,我会拼命看 js 的新规范,新特性,各种炫酷的 api, 骚操作,但是工作中用到的机会很少,事实上 我发布到 npm 的 那些插件 也少有人问津,这恰恰说明了 没有解决问题 !

最近 看了 React 的维护者 Dan 的很多篇博客,无意中翻到了这篇 things-i-dont-know-as-of-2018 大致就是聊了他不知道技术,结果大吃一惊

HTTPS/SSL. 从未设置过。仅了解公钥私钥的概念,不知道它们是如何运作的。

GraphQL. 我会使用 query,但我真的不知道如何解释 node 和 edge 等东西,何时使用 fragment,以及分页的原理。

TypeScript. 我理解类型(types)的概念,可以看懂注释,但从来没有写过它。我试过几次,遇到了困难。

这样一个的大神 (至少对我而言) 发现好多新东西 他都不会 但是不妨碍他对前端工作者 做出贡献

他的 react-hot-loader, redux , 很显然,他在解决问题,看了他 很多关于 react 的文章,把每一个知识点讲的清晰通透。我明白了我与他之间的差距,我想 他不会的那些东西,只要他需要,分分钟就能搞懂。而我 为了让我自己懂得更多,分分钟去学习,而所收获的东西,也只能说上分分钟