对一个新技术的入门零基础学习,至少要做到4轮学习法。
第一轮,初步了解新技术的背景、特性、解决场景,对它的作用有个宏观上的理解。
第二轮,深入这个技术的算法和原理,架构图、数据流向、角色特性等等,这是个相对漫长的过程,需要有一定的聪明才智和学习能力。
可以通过默写法来检验自己的掌握程度,在白纸上把原理和设计恢复出来,哪里有疑问就标注下来,回头继续去查。
目前为止应该掌握了80%了,但是有些细节通过理论学习还是不清楚怎么办?
第三轮,研究新技术安装和消费程序代码。安装过程中每一个操作步骤是在干什么,里面的配置是为了干什么,客户端代码里每一行代码,特别设计到端口配置项的都是为了干什么。这些可以弥补细节上的不明白的地方。
第四轮,实战中去碰壁,遇到问题后再慢慢研究吧。
设计思想的实现必定基于具体的技术,所以不要妄图绕过不懂的技术直接去看高大上的课题,学习上层技术时遇到底层技术的空缺应道立刻停止当前学习,先把底层的掌握好再回来继续,因为你根本看不懂别人为什么那么去设计。
这种学习思路适用于Linux系统下的一些组件:Hbase、Kafka、ELK、Redis、ZooKeeper等