许多同学在学习js的时候找不到方向,不知道往哪方面学,东一下西一下的不得其法,导致学习了许久,依然进展不大。这时候难免会有抱怨、灰心的情况,会觉得别人学起来感觉好轻松的样子,怎么到了自己这里,简直就是不学原地踏步,学了反而倒退呢?
其实这种感觉也很好解释,你不学新东西时感觉还好,至少还会一些。而你一但学了一个新东西,就发现它会引出来至少10个相关的新知识点。
这时很容易出现的就是畏难情绪。完了,未战先败。在这种心理基础之下只会感觉越学越难,没有成就感。
这方面,现在回过头看,我个人主观片面觉得应该有三个关键点,如果想要达到一定的学习效果,至少得以下几个方面了。
给自己一个期限,三天、五天、最多不超过七天。跟自己说,要在限定时间之内达到什么程度?学会什么哪些知识点?将之量化。当然了,时间太长就没意思了。因为时限本身就带有一种压迫性与紧迫感。
那么只有时限行不行呢?当然是不够的,所以需要第二点,
什么意思呢?
就是说,原生JS的学习是长期的核心知识的学习,例如,this、作用域、prototype、constructor、call&apply、继承、...等,这些知识的学习与理解需要相当长的时间。而且这些知识的掌握与否,并不直接决定的此刻当下的开发能力。
也就是说,就算你哪天心血来潮,突击学了一整天的prototype、constructor、继承之类的知识,也不会让你当前的前端水平提高一个等级。
那怎么办呢?只能是做好长期学习它们的心理准备。有机会、有时间、有情绪、有条件,就学习一些方面提到的js核心方面的知识,哪怕是看一眼也好。因为这些方面的知识是靠积累的,时间到位了,对它们的理解也就到位了。
短期?怎么个短期?是说报个班吗?都不是。
我觉得吧,至少在前端领域,学习应该是分为理论层面和应用层面的。理论层面就包括我刚才提到的那些js的核心知识,而且还包括但不限于一些数据结构、简单的算法、http和tcp/ip协议...等方面的内容。
那么应用层面,我觉得包括jQuery、react、vue...等,这些东西,在我个人主观片面的看法里,它们不是技术,都是一些工具。既然是工具,那么在一个相对短的时间内,适当的学习并掌握它。多短呢?一周?半个月?都可以。
透过现象看本质,jq,vue,react,它们都可以算是对JavaScript的再封装,本质上都是工具类的东西。在js这门语言的层面上没有变化。
那么,可能会有同学说,一个星期?半个月?我学不会呀react、vue呀。
这怎么讲呢,什么叫学会?我现在也无法精通jquery所有的方法,我现在背着也写不出来react的那几个生命周期...,但我却可以用jquery、用react做出我需要的东西。
所以说,短期内学习它,不是为了精通它,而是通过学习来尽可能的了解它。学习某个东西其实是多次反复的结果。不能想着一次就学会它,如果一次没有学会就放弃了或是怀疑自己。
说到这里,其实长期的基础核心知识学习,和短期的前端工具的技能学习,这二者应该是并行的。此二者之间没有必然的完全的先后顺序,不存在先学会某某才能学会某某。
总体来说,就是有一个长期的学习战略,同时再加上不断的短期学习,这二者结合才能相互支撑共同进步。