现在的人都忘了如何学习

老是看到很多人说,我看了很多书,但是不会写。或者是这个我之前研究过的,但是现在忘记了,又或者,这一年都没什么长进,他们说的我都懂,但我不会做。
等等类似的问题,各种技术群里几乎天天有人说。

以下仅代表个人观点,发发牢骚而已。

学习 是什么意思?

百度百科: 通过阅读、听讲、研究、实践等获得知识或技能,获得认知的过程。

其实这些东西,幼儿园的老师就教给我们了。
阅读、听讲,只是学习的学,而研究、实践,就是我们的课后练习和思考题这种类型的作业,这才是习的核心。
所以学习很简单,就是看书,然后抄一遍例子,然后思考这些知识点如何应用。

看完最强大脑后不敢这样断言了,那些大神真的不需要这样的学习方法,他们过目不忘,甚至睡觉的时候都可以想问题。
对于我们这样的普通人类而言,这样学习最实在,好记性不如烂笔头。

打基础

学习不能一步登天,不能好高骛远,要先把基础打扎实。
打基础就推荐《JavaScript高级程序设计》,把基础打扎实后,才能更好的学习后面的东西。

基础学习,不能求快,比如我刚学习js的时候,花了2小时看了w3school的js,就认为自己会了,就很牛逼了。
其实,那只是js的部分语法而已,根本不是实际应用的东西。

进阶 - 造轮子

当基础打的差不多的时候,你会遇到第一个瓶颈,会感觉什么都不懂,什么都不会,甚至感觉自己就是傻子一样。
这个时候最好的做法就是造轮子,哪怕是抄,也要多抄一些代码,只有不断的用代码打磨自己才能提升自己的实力。

造了不少轮子之后,继续看书,这个时候就看一些设计模式,框架设计之类的,来进一步提升。

这里有人收集的一些书籍推荐大家看看《前端读书路线图》,《javascript读书路线》。

写在最后

我现在感觉严重缺乏项目经验,于是各种造轮子,反正 github 里上千万的库,随便找些项目学习,自己学着造轮子。
也许你会说大部分库都非常大,根本找不到合适自己的。
其实很简单,比如在 npm 上找那些流行的模块,里面依赖的那些基础模块,代码非常少,从基础模块开始抄即可。
比如我这几天分析 ejs 自己造了个模版引擎轮子,学习到N多知识。