最近几天把《JavaScript高级程序设计》看完了,而且一个demo不差的把书中的案例全部敲了一遍。敲完以后,觉得成就感爆棚,自己坚持把一本技术书的每一个知识点看完了而且理解了。这几天开始review,发现效果还好,没有遗漏太多。

但是,当我思考细节问题时,我有些模糊,不得不再次翻书弄清楚。然后,我陷入了沉思,我之前不是已经理解的很清楚了吗?时间仅仅隔了2-3天左右,为什么会模糊不清?我学的时候不够专注吗?我是为了应付吗?等等,我开始质疑我的学习方法了。

渐渐的我明白了,这都是应试教育的害。我们大多数人从小遭到应试教育荼毒,变得只看结果,不思考细节,老师勾选的考点,我们都要一个不差的学习完。最基本的课本都要挨着全部看完,因为如果看不完,我们会担心考试会不会考,我们会把细到一个很偏的考点上,然后不断刷题巩固。

我想起自己前段时间看这本书时,应是一字不差的看完,生怕错过某个看似高深的技术。在面试学校软件工作室时,我说程序员基本都是野生的,老师是交不出大牛的。谈到我的学习方法时,学长当场打住,说我这种学习方法不是很好。我当时应付了一下,心里没当回事,也不知道哪来的自信。

他说编程技术深似海,任何一个领域扎进去,十年半载都不能说非常精通。我现在不应该钻研那么细致高深的技术,而且钻研了,当时理解清楚,由于没有项目运用,很快就会忘。我目前这个阶段应该以项目为驱动去学习,这样才能快速上手。等会用了,有项目经验了,再去钻研会更加深刻。

现在想来,他的话很有道理。我应该一项目驱动去学习,而不是为了不遗忘书中的每一个知识去研究太细致的技术。由于得不到实际项目运用,以往特别快。毕竟学习编程就是为了做项目,而不是参加某个语言的考试。科班的C/C++/java除外,毕竟这样是为了打好基础。

通过这件事,我明白了一些道理。我们已经不是为了应试的学生了,我们在某种阶段下不一定要细致入微的不放过我们口中所说的知识。在工作中,往往是某件事需要你去快速推动,你没有时间去扣细节,你要快速学会它所需要的技能,然后运用它去完成某件事。

正如某句话:在某些领域更需要在短时间内得到85分的人,而不是花非常时间去得到100分。当然这并不排斥得100分的人,这告诉我们需要具备快速学习的能力,并且能学会马上运用。而不是等你什么都精通了再去做这件事。我曾经也想过一个问题:到底应该先学习知识学完后快速完成题目,还是边学习边完成任务?前者学习时间长,完成任务时间短;后者学习时间短,完成任务时间长。这二者谁的效率更高?从长远来看谁更有优势?

毫无疑问,我高中以前都是采用前者,做一道题,我会把题看了,然后把这章知识复习透。复习完一看题特简单,快速完成了。这种方式很适合应试教育,因为复习后,又得到实践,印象更加深刻。但读书时知识点就只有那几个,这种方法固然效率高。但是到了大学或者工作,你面对的可能你花一年半载都无法精通,你又急于完成某种任务,你只能大致看下知识,然后在项目中摸索,边学边做。这种效率才是最高的。

从今以后,我会以项目来驱动学习,不定期定项目题目,然后开发实践。我们应该先做花短时间得到85分的人,然后再做花长时间得到100分的人。