学习新知识的时候会遵循一个5-20-2法则,
用5分钟的时间了解这个新知识的特点、应用场景、要解决的问题;
用20分钟理解它的主要设计原理、核心思想和思路;
再花2个小时看关键的设计细节,尝试使用或者做一个demo。
如果5分钟不能搞懂它要解决的问题,我就会放弃;20分钟没有理解它的设计思路,我也会放弃;2个小时还上不了手,我也会放一放。你相信我,一种真正有价值的好技术,你这次放弃了,它过一阵子还会换一种方式继续出现在你面前。这个时候,你再尝试用5-20-2法则去学习它,也许就能理解了。我学Hadoop实际上就是经历了好几次这样的过程,才终于入门。而有些技术,当时我放弃了,它们再也没有出现在我面前,后来它们被历史淘汰了,我也没有浪费自己的时间。
还有的时候,你学一样新技术却苦苦不能入门,可能仅仅就是因为你看的文章、书籍本身写得糟糕,或者作者写法跟你的思维方式不对路而已,并不代表这个技术有多难,更不代表你的能力有问题,如果换个方式、换个时间、换篇文章重新再看,可能就豁然开朗了。
一些比较厉害的同事,他们学习一样新技术的时候,不会到处乱找资料,而是直接读原始论文。通过原始论文掌握核心设计原理以后,如果需要进一步学习,就去官网看官方文档;如果还需要再进一步参与开发,就去读源代码。