有时候会突然想,我为什么会学习技术,或许是为了工作,或许是为了钱,又或许,哪有那么多为什么?
我还应刻意追求技术吗?
这是最近一直在思考的问题,前端,实在是变得太快了,快到你都快忘了 前端
这个 title 仅仅都只出现了几年
似乎在每个醒来的清晨,人们的嘴里又多了几个从没有听过的 新潮词语
.
刚工作的 less
预处理,gulp
, 是的,在我刚听说 grunt
时,它就已经被淘汰了,
从再不学就找不到工作的 angular.js
, 到现在却成了一个人们不愿提起的 笑话
, 这也许本身就是一个笑话,很遗憾,我们很难判断一个新兴事物,它的未来是怎样,出于对技术的热爱,又或者我想成为在别人的眼中是一个喜欢追求技术的人?
于是我来者不拒,在很长一段时间,我认为这是最适合我也是最好的学习方法,是的,技多不压身,鲁迅说的,我开始学习了人们口中谈论的所有我不知道的技术,很难想像 React.js
竟然是 2013 年 的产物,它一度成为了 我赖以生存的 技术
当我还在用 tinypng , 在线压缩 js,css 工具 做着体力活时,
当我还在编写 gulp 的 task
, 向同事炫耀 pipe
的概念
当我还在用 $('.test').fadeIn()
时,发现已在 react
,vue
, angular
的三驾马车上
当我还在 苦恼 webpack
该用哪个 loader
和 plugins
减少 js bundle
的体积
当我还在吐槽 es6
的 箭头函数 好不习惯 React.createClass
不是好好的,为啥替换成 class App extends React.Component{}
如 新华字典一般的 es6 手册
, 眼花缭乱的特性刚熟练运用 es7,8,9,12345677
还在远处像我招手
开始用 flex
布局 写手机端 , grid
姗姗来迟
react-native
的 hello 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 api
到 GraphQL
从 express.static
到 nginx
从 sql
到 orm
是的,我罗列了好多好多的关键字,这都是我用到过的技术,不幸的是,我突然发现 我竟然没有想过 新兴技术的出现,解决了什么问题,三年前做前端到现在,我视乎都是 觉得哪个技术比较潮流,比较装逼 而去学习的,我发现我身上所谓的技术功底,或者说大部分人 都是 熟练运用一些 技术框架的 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
的文章,把每一个知识点讲的清晰通透。我明白了我与他之间的差距,我想 他不会的那些东西,只要他需要,分分钟就能搞懂。而我 为了让我自己懂得更多,分分钟去学习,而所收获的东西,也只能说上分分钟