凤凰架构
最近有时间重读了周志明老师的凤凰架构一书,惊叹于周老师的博闻强识,更学习到了周老师的两种学习方法:
-
从发展历史角度了解技术演变,有助于深入理解背后的原因。
-
对某个技术领域的知识要做到全面的覆盖,需要做到从学术界到工业界的全面掌握。
技术历史
很多技术人会有疑问,学技术有必要了解其发展过程吗?我又不是学历史的,其实不然,学习一项技术可以分为这么几个阶段:
-
安装与使用
-
了解使用场景,主要特性及api调用,把它当做黑盒
-
了解其底层实现原理,它为何是这样设计的?有什么优缺点?
-
了解其演变过程,它什么出现,是为了解决什么问题?和哪些技术竞争过?为何是它胜出?适用于哪些场景?
只有上面都完整掌握了我们才算真正彻底掌握了这个技术。
学术到工业
这也是一个很重要的思维模式,对于分布式早期重要组件zookeeper,本人只是使用过,耳闻zab算法,及了解主要api,知道hdfs,kafka,hbase等大数据组件都是基于zookeeper做的高可用,但对于学术界从paxos到zab协议其实不甚了解,在这一块的学习本人获益匪浅。
了解某个技术从学术到工业,从论文到代码,对深入理解一项技术非常重要。