很久以来,对分布式系统都比较感兴趣,但工作中却接触不到,“虽不能至,心向往之”,于是打算自己学。分布式系统领域概念很多,错综复杂,一些理论也比较难以理解,要想学习的话还是得下一番功夫。于是在来两个月前(6月5号)写了一篇文章《带着问题学习分布式系统》, 一方面是自己对如何学习的一个思考,另一方面是监督自己。但是很遗憾,目前看起来是失败的,因为我至少一个月没有再学习分布式领域相关的知识了。
为什么失败了呢,客观原因是最近一段时间工作确实比较忙,而且每个周末都有事。主观来说,导致学习终止的导火索是在学习Paxos的时候,看了好多资料都不明所以,没有真正理解;而本质原因在于没有具体的学习计划与deadline。回顾《带着问题学习分布式系统》一文,我仍然觉得一些观点是正确的:
第一:学习一门技术之前,首先思考技术本身(出现原因、适用场景等),然后思考这门技术对自己的价值(在职业规划、技能树种的位置)
第二: 先了解整体结构,在深入感兴趣的细节,带着问题学习。从整体上把握,了解各个知识点之间的关联,带着问题也更能把握重点
道理都懂,怎么失败了呢,直到前些天看到了SMART原则( 此SMART非奔驰smart),SMART原则我是早有了解的,但是并没有在在工作生活中主动使用过。直到最近遇到了问题 -- 为什么对分布式系统的学习终止了 -- 的时候,重新看到SMART原则,有种眼前一亮的感觉
首先看看什么是SMART原则, smart原则主要是用来做目标管理。提出之初是企业用于绩效目标管理,但用来做个人的目标管理也是很合适的
SMART原则:
- S(Specific):目标必须是具体的,要对标特定的工作指标,不能笼统;
- M(Measurable):目标必须是可衡量的,衡量的指标是数量化或者行为化的,验证这些指标的数据或者信息是可以获取的;
- A(Attainable):目标必须是可实现的,在付出努力的情况下可以实现;
- R(Relevant):与其他目标有一定的相关性,即有助于达成长期目标
- T(Time-bound):目标必须有明确的截止期限
在企业中绩效管理时,smart也有一些弊端,主要是Attainable(可实现的),当SMART成为了考核的标准的时候,“聪明的人”就倾向于设定简单容易实现的目标,而不是需要努力才能达成的目标,在这篇文章中有详细讨论。但用于个人目标管理,那就完全靠自己了,我觉得设定‘使劲跳起来’能够够得着的目标是比较合适的.
那么用smart原则来看看我对分布式系统的学习有哪些问题。首先,设定的目标是 “学习分布式系统基础知识”。这个目标是否明确不好说,但一定是不可衡量的,没有量化的指标:学习到什么程度,如何验证学习成果?另一个问题,并没有deadline,导致一拖再拖。
那么怎么制定一个符合SMART原则的目标呢: 在两个月内,掌握分布式(存储)系统基础知识,学习完CMU相关课程,掌握Paxos raft协议,产出一片分布式存储数据集相关文章、一篇分布式事务文章。
具体计划:
- 每两天,看一章CMU课程的ppt
- 一周时间,回顾之前整理的分布式系统资料
- 两周时间,掌握raft paxos协议
- 本月(2017 8月)之内完成分布式存储数据集
- 下月(2017 9月)中旬之前完成分布式事务文章