我学习编程的好的学习方法!
我发现了自己学习程序的一套好的学习方法:
在此和大家分享一下。 我们要看一些类或者一些好的算法是怎么实现的,但是又苦于他们的复杂与庞大,我们该如何学习,消化并掌握呢?
我的学习方法就是:
第一步. 首先:大致掌握它实现的原理机制,只求大概的轮廓。(好比老师在课堂上告诉我们二叉树是怎么实现的一样,一个模糊的概念)
第二步.其次:大致看看它的代码实现机制,也同样只求知道大致是如何通过代码实现的。(为什么说大致:因为我们上课时候看老师讲解代码也是觉得思路很清晰很明了,简单。但是课后却发现,自己不知道该如何下笔)所以这一步:到这个水平即可,因为有下面一些步骤。呵呵
第三步. 3: 这次,我们需要准备一本笔记本和笔了,这次我们可要动真格的去看这些代码是如何实现的了,不仅仅求知道个大致,还要努力的去分析为什么这一行代码要这样做,自己通过自己的判断,去解释一下:这样就可以加深我们的印象,理解得更透彻。(我说的抽象吗,好吧,我打个比方,如下:)
例如: list类,我们可以发现c++的list类中,大部分的函数之前的工作就是要判断 其size是否==0,如果==0,那说明我们的list内部链表指针是NULL,没有数据的。
但大家仔细思考:指针也可以用if(NULL == ptr)来判断是否为空,为什么不用呢? 原因就是list内部成员有个很好的统计数据的机制size ,这样我们就可以了解到:为什么list的成员函数要用size来判断而不用 指针==NULL 来判断了。(看似这么小的一个细节,如果大家不怎么去注意,去用自己的话理解一遍,可以到时候自己重新实现这么一个Stl的list类的时候,发挥不出这么一个size的作用了,也比较直观。呵呵)
如同上边一样,我们把每句代码都分析一遍,用自己的思维方式,加深印象之后,慢慢的一个编程的思路、手段也就这么的提高了。然后把自己从中感觉到的一些重要的编程思想给写到笔记本上边去,一遍日后复习个7-8次,我想:如此的认真,再这么复杂的代码你会搞不定? 别忘记了:要多练习,在练习中去理解,去排错更能提高自己。
分析完了,别忘记日后几天要加以复习,如果你想它成为自己的知识,那么这么干吧。过了这么一个阶段,日后忘记了,这次的分析也白费了。
第四步. 4 用自己的理解,总体的把这个 实现(类/算法) 概述出来,说说他的核心是什么,精华是那一个部分
第五步. 5不看例子,自己打出来。
[url=http://www.zghgj58.com/]治疗狐臭病[/url]
(其实以上五部分得有点细,大体就3步走,只是写文章的人写着写着又冒出一些新花样来,本来很简单的事情,又弄复杂了。呵呵)