昨天反思自己源码学习的两个问题:
- 1、深度不够,只是浮于表面的知道,但并没有真正地理解和掌握。还有一点,就是要思考总结,时常复盘巩固。
- 2、方法问题,不能先直接开始跟着敲,要搞明白自己的目的是什么,先直击重点,解决重要问题。
迅速调整方向,不为求全,而是重点突破,虽然还是在原有代码之上做调整,更多的是关注核心功能。尽管其他还有很多自己需要学习的地方,但是需要学习的知识无处不在,总要区分当下最需要的知识去学习。
走在海边,我们不能想着要把自己看到的所有贝壳就捡起来,只要挑选自己喜欢的就可以了。这样不仅可以不断向前,发现更多自己喜欢的贝壳,也不会因为要捡其它的所有贝壳浪费更多时间和精力。
其次,关于深度问题,调试完成之后,重新梳理知识点,做一个简单的流程总结,将各个知识点串联起来,重新回顾,加深印象。当前也只是做到这种程度,不过以后还是需要不断通过实践和复习来巩固的。已经学会的东西,再次拿起来就容易很多。今天要继续接下来的内容,不能再犯相同的错误,也要不断寻求更好的方法。
另外在继续学习的过程中,也有另外一些新的认识。
关于开源项目
既然是一个项目,就要客观地认清一个事实,它有着自己完整性。虽然大多数是主要功能部分,但是也有很多为之服务的附加内容,它会包含很多技术点和知识点。你想要的,不想要的,看过之后觉得有意思的,懵逼的,眼前一亮的,醍醐灌顶的,都有可能会有。所以就要时刻提醒自己,你首先想要从这个项目中学到什么,也就是重点。只有明确这一点,你才可以最有效率的完成自己最需要的知识点学习。
在达到最初目的之余,可以再次去看这个项目,寻找那些自己感兴趣的点,同样也要专注于一个点。最不可取的方式就是,看到一个亮点就去瞅瞅,关联到另外一个知识点也去看看,结果都没有掌握,而只是落得仅仅“知道”的结果。
其实就是,先解决主要问题,在解决主要问题之后,再去解决剩下的主要问题,分清主次,重点解决。
还有一点,开源项目也要耗费大量的精力和体力,可以的话,就给作者一些鼓励,哪怕只是star一下,动动手指的事情,就不要吝啬了。
关于学习的反思
之前曾告诫过自己,不要着急,不要贪心,但是前几天好像又犯了同样的错误。其实在学习别人的代码过程中,尤其需要注意这两点。
首先,回想一下自己要完成一个项目大概要多少时间?一个月?两个月?或许更多吧,这也要看项目的大小与复杂程度。
开源项目也是如此,它也是一个项目,有其完整的架构和逻辑,也会有很多觉得陌生的地方,这都很正常,所以在学习之前一定要摆正心态,抱着谦虚与请教的态度学习。
就像前面说过的,要解决重点问题,就是告诫自己不要贪心,虽然曾经告诫过自己,不过还是走了一段弯路,大概是之前的固有思维导致的。以后要更加警惕一些之前的习惯和解决问题的方式,不对的就要改。
不要着急的问题,前面也说了,一个完整的项目,有它自己的完整结构和逻辑,更有一定的代码量,所以轻浮的心态要不得。回想自己开发一个项目付出的脑力和体力,而作者想要提供开源项目只会比一般项目要更加费心费力。要尊重作者的劳动成功,也要正面认识到,一个项目并不是瞬间就能被你全部吸收的,学习需要一个过程,尤其是面对一个相对完整、庞大的项目,更要留有足够的耐心。
回想一下在学校的时候,老是会把知识点掰开嚼碎了给你,但你仍然需要通过课后复习、练习、测试才能掌握对应的知识点。学习源码也一样,虽然作者已经将他的知识呈现给你,但并不代表你就能立刻学会的,你不只是看,更是要学习、分析、实践、回顾、总结。这都是需要时间的,不要着急。
遇到苦难也不要着急,要么跳过,继续进行,要么先解决问题,再继续。就这两种方案,选一种就好,着什么急呢?
不要着急,低下头,让自己冷静下来,不要总是急于看到结果,只要方向没有错,就继续前进吧,千里之行始于足下,路要一步一步走才踏实。
网友评论