基于递归学习法以及记忆化的学习方法论

基于递归学习法以及记忆化的学习方法论

递归学习法,即在学习一个东西A时遇到了不熟悉的知识点B,于是去学习知识点B又遇到了知识点C,……当学到了最底层的知识点X,return回到上一级,继续学习尚未学完的知识点W。

用代码表示就是

void learnA(){
	...
    if (!B.learn())
        learnB();
    ...
    return;
}

void learnB(){
	...
    if (!C.learn())
        learnC();
    ...
    return;
}

...
    
void learnX(){
    ...
    return;
}

这种学习方法花费较大时间的情况下学习知识点A。但是由于我们在学习知识点A的同时不断学习知识点A的底层,因此我们能够把握A的整个框架。但是,这种学习方法有两个很重要的缺点,学过递归的朋友们都知道,比起顺序学习来说,递归学习因为要不断地调用函数,因此会产生较大的时间损耗,另一个缺点是当一个函数在它内部调用了它自己,就down了,如何避免这种情况的发生呢?答案是:记忆化与查文档。

记忆化,在程序中表示成递归过程中,通过一个数组储存函数运行结束时的状态,这种方法在非线性动态规划中经常使用。但是我们人脑毕竟不是计算机,没有内存,怎么记忆化?我的方法是:写博客。这样在下一次学习时,遇到重复的部分可以跳过,达到所谓“记忆化搜索剪枝”的功能。

通过写博客,记录下自己学习某样东西的路程,这条路程有的时候会很曲折,绕了一个大弯,有的时候又自己调用自己,或者自己调用别人调用自己(说的就是你,CSDN),因此我们尽量通过官方文档的查阅来使得弯绕的少一些,小一些,并且官方文档中的调用较为完备,在一个较为完备的系统中学习更加有利于自己的学习路线。当遇到无法查文档,或者学的知识点没有专业的文档时,使用XMIND思维导图的形式来将知识点之间作串联处理。

因此,记忆化的核心两个步骤是:写博客,做思维导图。

此方法论正通过不断实践改进中。

posted @ 2021-10-15 00:04  Clo91eaf  阅读(291)  评论(0)    收藏  举报