最近陷入一个困惑,就是在参加面试的时候,很多学过的东西总是记不住或是记得不准确,从而在需要表述概念的时候,并不能很好的表达出来。我仔细分析了一下原因应该有两个,其一是语言表达能力,其二是对知识本身的掌握程度。
我特别想对第二点进行一个延伸的思考,以便形成一套自己的学习方法来辅助自己掌握知识。我一直相信勤能补拙,但我更相信学习是有方法论的,是有捷径的,有时候好的方法比盲目的努力更有用。
我理解的费曼学习法
回顾自己以前的学习生涯,其实我常常会运用“费曼学习法”,只是当时自己根本不理解那是一套比较科学的学习方法,那时候自己经常会去思考一个问题的本质,然后将问题和解答过程复述出来,或是给别人讲解,亦或是自己亲自去实际,去获得到一个反馈,从而起到查缺补漏,巩固知识的作用。
可针对近几年的学习情况来讲,我却渐渐地忽视了学习方法,而是沉浸在各种信息流中,缺少了独立的思考,缺少了反馈与实践。在这个信息大爆炸的时代,企图使用大脑去记忆所有信息,几乎是不可能的。即使有意识地去屏蔽一些无用的信息,刻意的去记住自认为重要的信息也是很做到的,因为没有练习和反馈。记得《刻意练习》那本书中提到过,要做有意识的训练,而且要坚持训练并有反馈,才能够形成一个完整的知识结构或是思维曲线。道理就是这样的,我们需要的是形成知识闭环,而不是单面的接受信息,因为那样的信息是无法融入自己的知识体系的。
仔细想想,费曼学习法应该是很有用的,我试图翻阅了自己以前的博客,当时在讲述内容的时候常常会深入到细节,并且有自己的思考和感悟,因此对于之前的一些东西还能够有所记忆。而后来的博客慢慢的变成了一种记录信息的工具了,企图用博客来记录知识,而解放大脑,虽然在一定程度上是有用的,但很多时候却适得其反,因为很多东西并没有经过思考,而是一种简单的复制粘贴,可怕的是自认为已经掌握了知识,起到了一种自我感动的作用。我想这大概就是造成我对于知识记忆模糊的主要原因之一吧。
总结来说,就是自己在学习过程中,思考的东西少了,复制粘贴的东西多,一方面是因为发达的互联网,自己过度依赖于网络解决问题。一方面却是知识的局限性,毕竟当处于一种知识结构底层时,很难甄别上层内容的正确性。也就是对于不了解的内容,你是无法判断其合理性的。这时候书本应该是一个了解信息的好办法,其次是官方网站,其次才是专业博客,最后才普通博文。
之前提到过软件开发是一种实施细节,而非是一种知识。这种实施细节对于开发人员是十分不友好的,因为技术一直在更细迭代,实施细节一直在变换,开发人员也要花费精力不断的去了解这些细节,因为如果不了解实施细节的话,是无法进行软件开发的。并且这些实施细节换一个平台,换一个工具可能就并不管用了。私以为,开发人员核心竞争力应该是学习能力,解决问题的思维方式,还有就是扎实的专业基础。这几个方面也是我一直试图去提升的能力。
Talk is cheap. Show me the code.
上面讲了那么多,其实只是一个关于方法论的思考。而事实上,Linus Torvalds的这句“Talk is cheap. Show me the code”才更加直观,能说算什么,给我看看代码这句话真的很实在,现实就是如此,能够代表一个人的不就是作品嘛,比起我会做事什么,更有用的是我已经做到了什么。
代码能力是一个开发人员的基础,在软件行业也不讲究什么花里胡哨,有能力就上,没能力就下,这是一个既真实又残酷的事实。所以多写一些有用的代码,少看一些没用的鸡汤。我个人的规划也是如此,如果以后写文章的话尽量附上代码,详尽内容细节。泛泛而谈确实没有太多意思。
以上。