「Learnging」- 制定学习路径

  CREATED BY JENKINSBOT

知识结构

A0:是核心知识(L0),即我们需要掌握的核心领域;
Lx:是相关知识(L1),用于支撑我们对 A0 的把握;
Mx:是周边知识(L2),起到辅助与支架作用;
Wx:是外围知识(L3),属于工具系列,了解知晓即可;

知识的熟练度(深度)

初级:学习使用/解决问题
中级:理解架构/掌握原理
高级:扩展延伸/发展改进

补充说明:该部分表述的是学习知识所要掌握的程度,而非学习路线;

针对外围知识的学习(L3)

知识特征

该”服务软件“指我们在计算机行业中应用到的程序(诸如各种桌面软件、需要部署的服务等等);

该类型的知识内容属于工具类别(即其用于辅助我们解决其他重要问题),属于外围知识,无需甚解;

例如:在我们的工作场景中,Maven 对于我们来说仅是个构建工具,能用来完成项目构建管理即可,而无需学习全部特性,更不需要进行源码级学习;

学习内容

我们的主要学习方法是参照官方文档:

1)兴趣内的内容:提取并进行笔记,以便快速查阅,并围绕这些内容记录相关实践经验;

2)兴趣外的内容:仅进行简单阅读。在后续的使用过程中,我们井再进一步研读和探索;

句式:该部分的主要内容均来自于官方文档,但是提取出在各章节中我们关注的内容,让我们形成对 xxx 的整体认识;

学习方法

在阅读正式文档前:

1)理解功能特性,其所解决的问题、基本概念术语,能完成基本操作;

2)快速运行服务(测试环境、实验环境);

在阅读正式文档时:

1)以章节为单位,快速阅读官方文档或相关书籍,并进行重点标记(标记感兴趣的内容);

2)当章节结束后,将标记的重点整理到笔记中;

在阅读正式文档后:

1)回到我们最开始的问题,指导解决问题;

2)在笔记中,整理并记录我们的解决方案;

Q:为什么在阅读文档之前要形成对被研究对象的认识和理解?

A:在我们的实践过程中,我们发现,当对被研究对象有了基本认识之后,再阅读相关的学习资料反而更容易理解。或者这没有普适性,但是对于我们来说确实有效;

特定对象知识框架的建立方法

注意,这里讨论的知识结构是 针对某个特定对象 的学习,而并非整个知识体系的建立顺序;

我们认识事物有两种方式:

自底向上(Bottom-Up)

自底向上:从低级到高级,由底层具体信息的认知,逐渐到较高层次的整体理解;

以学英语为例,就是先学单词,再到句子,最终理解一篇文章。这种单词——语法——文章的次序就是自底向上;
数学的学习方法也属于 Bottom-Up 方法。如果从开始就学习高等数学,然后逐步展开到基础数学,这并不现实;

自顶向下(Top-Down)

自顶向下:整体入手,逐层向下,不断深入;

实践方法:
1)掌握框架:了解系统框架(体系结构),以形成整体的认识;
2)问题驱动:针对特定场景提出疑问,以逐步完善系统框架;

以提升英语阅读能力英语为例:
1)就是把文章看成一个整体,以句子为单位来理解,文章提供了上下文信息,陌生单词甚至可以猜出意思来。但是,我们仍然认为英语学习应该采用 Bottom-Top 方法(音标、单词、语法、句型、文章)。该实例,与其说是 Top-Down,不如解释为「在 Bottom-Top 后,对现有知识框架的进一步填充完善」;

在计算中,以学习 Kubernetes 为例:
1)鉴于我们侧重 Kuberntes 运维,而非 Kubernetes 研发。我们通常采用 Top-Down 的学习方法,先形成整体认识,再根据问题逐步探究细节;
2)如果采用 Bottom-UP 的学习方法,那我们先要学习开发 Kubernetes 的背景,然后从首个 Kubernetes 版本开始研究它是如何被创建的;

Bottom-Up vs. Top-Down

在学习的最开始,最好先确定是否要深入研究;

在计算机软件中:

如果学习目的并非深入研究(即非深耕领域,而是作为其他领域支撑支持),那么建议采用 Top-Down 的方式。对该部分内容形成基本认识即可,再根据问题逐步探究细节。在我们的工作场景中,针对 Kubernetes/etcd 运维,我们采用 Top-Down 学习方法;

如果要深入研究某个对象(即深耕领域,则需要丰富的背景支持作为支撑),那么建议采用 Bottom-Up 的方式。在进行相关知识储备之后,再进行该对象的研究;