的时间我把它们都看完了。期间做了大量的笔记,每遇到一个疑问我都会在书上标示出来,注明日期。等以后明白了再来回答。自我感觉基础知识还是掌握的挺好的。基本上没有什么知识点遗漏。但是与我付出的时间精力相比我想收获还是有一定差距的。这引发了我一个思考:对于初学者,如何自学一门新的语言,才能保证花最少的时间获得最大的效果?
C++大学教程这本书很不错,介绍的很详细,使用了大量的篇幅引出本节的知识点。C++ primer 根是经典中的经典但是由于知识点太详细涉及到很多的细节。因此对于初学者来说存在一定的难度。所以对于初学者来说选择一本好的入门书籍很重要。我认为“好”,有以下几方面的含义,首先,语言简洁、易于理解。这是第一点,也是最基本的一点。我们无法在一本连基本的语言语句都不通顺的书上花费时间和精力。第二点,内容有条理,循序渐进。第三点,涉及语言的主要特性,不过分强调细节。这也是我认为C++ primer 不太适合初学者的原因。太多的语言细节很容易让初学者被众多的语言细节所拖累,无法很好的去理解语言的特性,结果就会出现看了很长时间却不知道书上到底在说什么的情况。好像什么都是重点,又好像什么都不是。另外对于初学者来说选择一门入门的书就行了,不要同时去看两本书,每本书都有自己的结构、层次,思想。。。与其同时看多本书不如静下心来仔细研究其中的一本。至于那一本则可参照以上几条做出选择。
选择了一本好书,接下来就是学习方法的问题了。对于初学者来说,由于是刚刚入门没有对所学知识有一个全局的把握,很容易陷入云里雾里的情况。一个好的方法就是不要太过注重于语言细节,语言就像一本大树。为了对这棵树有一个全局的把握,我们应该把这棵树的整体情况有一个总的认识,而不应该在树叶上花费太多精力,繁多的树叶琐碎的知识点很容易让人困惑,时间长了就会丧失对语言的学习兴趣。对于语言的认识,与你所处于的高度有很大的关系。初学就像是盲人摸象,让人遐想的空间很大,只知道有这么个东西但具体怎么用却全然不知。等你知道这原来是一头大象之后,再去摸腿的时候你就知道,哦,原来是条腿不是柱子啊!!当然理解起来也更容易。而你认识到他是大象的过程就是对语言有一个全局把握的过程。也就是说你对语言的认识是站在另外一个高度。这也是为什么我多次强调从全局出发的原因。
自学一门语言是困难的,刚开始可能豪情万丈,但是随着学习的深入知识点会越来越难,慢慢的越来越看不懂的时候就会出现厌学的情况。毅力好的可能会坚持下来毅力稍微差点的估计有放弃了。一段时间以后等想起来了又拿起来。循环几次能把书看完就已经很不错了。如何一次能坚持学下去,这是我们讨论的问题。我想学习过程中遇到困难是必然的。尤其是刚开始看的时候。以我的经验,一章内容,在阅读次数少于三次的情况下很难对内容有很好的理解。我所说的阅读是精读,逐字逐句,不漏过任何一个知识点。在这里向大家推荐我的一种学习方法,将遇到的每一个问题标记出来,注明日期。这问题也可以是自己突发奇想说,这样可以,如果那样的话可不可以呢。即使是非常小的问题都要标出。等自己看过觉得明白了再回来回答,并注明回答的日期。事实证明这种方法是很有效的,使我不会漏过任何一个知识点。刚开始第一遍看完不知所云,然后再看第二遍,稍微理解了一点儿。等第三遍的时候前边遇到的问题大部分都可以解答了。至于没有解决的也不用管他,随着学习的深入,等下再次来看的时候估计就有了答案。因为我们前面就强调过初学不要太深究语言细节。如果内容很生涩不容易理解以至于阅读了三遍以上还没有明白就可以跳过了。或许后面的内容会帮助你对这些内容的理解。因为很多的知识点的关系是网状的,一个知识点可能会与其他很多的内容有着细枝末节的联系,遇到这样的内容跳过即可。或许在看完后面的几章内容的时候你会发现原来的难点是那么的容易。
光看书是不够的,要加深理解就要实践。对于书中的代码要亲自敲一遍。不要以为内容明白了就好了,这个时候还存在很大的问题。或许隐藏在代码里也存在很多问题正是你在看书的时候所遗漏的。多写代码的好处我就不多说了。对于新手看书然后写书上的代码是很好的学习方法。比看完一本再看另一本却没有任何实践强很多。当对一本书或一门语言有了一个全局的认识之后,后面的任务就是查漏补缺,看看自己在那方面还有所欠缺,然后一针对性的复习下。之后学习的过程就是查漏补缺和实践。使对语言的认识慢慢的一点一点更上一个台阶。当你犯过所有的错误并解决所有的问题之后,你就可以自豪的说我是这方面专家了。
本文只是经验之谈,请广大读者本着拿来主义的精神阅读。如对您有哪怕一丁点儿帮助,本人深感欣慰。
各种知识的学习方法都是相通的,本文所阐述的一些方法对其他方面也是适用的。
文章如有错误与不足,请您不吝赐教!谢谢。