如何构建知识体系

大家好,我是Z哥。

不知道你有没有过这样的感觉,那些比你更厉害的人,在一件事中往往可以轻易地从一个「点」延展出一条「线」,甚至一个「面」的知识点。

对我们真实感受的冲击是,在大局观上被碾压,相比之下觉得自己总是考虑不周,甚至考虑的东西完全是错的。

其实这里的区别就在于我们在某个领域内的知识体系有多么健全。

举个例子,与近些年大火的Service Mesh相关。如果现在你恰巧负责进行技术选型,你会选istio还是Linkerd?还是Kuma、SOFAMesh、ServiceComb?

知识体系的健全性高低在这种「开放性」问题中表现的特别明显。

那么如何才能像那些厉害的人一样,打造自己的知识体系,并且让它更健全呢?这就是我今天想要和你聊的。

在我们当下这个时代,打造知识体系变得更容易,但从另一个角度来看,同时也更难了。

容易的是获取信息的途径更多了,收集信息的效率更高了。难的是大量的信息是碎片化的,如果无法纳入到自己的知识体系中,那么大概率只是看过算过而已。

常见的一个场景,你坐地铁的时候刷着手机,前一秒可能还在公众号看某篇技术博文,随后就被朋友圈的社会热点新闻给吸引,看到一半,又收到朋友转发来的一篇文章让你瞅瞅。

过几天,这些信息中的十有八九就被你抛到九霄云外去了,好像这些就没出现过一样。

久而久之,不但你的深度思考能力丧失了,而且整体的知识使用效率也在下降。

你的深度思考能力之所以丧失,是因为被一些文章中所得到的结论给替代了(先不论结论的准确性如何)。往自己大脑里丢进去的都是「因为A所以B」、「只要C就能D」、「有了E才能F」、「出现G即说明H」之类的“成品”信息。

知识使用效率降低的原因在于,不同信息之间的跨度太大并且关联性几乎为0,导致你接收到的每个信息都是孤立的,记都记不住,更别说后续的运用了。

你想象一下,给你一个长度为100的数组,里面是乱序的数字(1、873、56、……)更好记还是有一定规略的数字(101、1002、10003、……)更好记?

不过,哪怕是碎片化时间我们也有办法可以压榨它的价值,这个后面再说。我们先来说说大家在构建知识体系时的两个普遍误区。

01  “读万卷书,行万里路”

这段谚语是加引号的,潜在的意思其实是以「知识的收集为中心」的学习理念。

说实话,Z哥我自己曾经有很长一段时间也陷在这个误区里,初入职场的前两年也还没从这个误区里走出来。

可以说,“读万卷书,行万里路”这段话对陷入这个误区的人来说只看到了里面的两个“万”字。

每天热衷于各类知识的收集,比如在微信、知乎上看到好的回答就想点收藏,但收藏之后又不会多看一眼,潜意识里不愿花较多的时间在知识的消化上。但是又偏偏是收集成瘾,最终导致收藏夹大到自己都不想点开,最终在知识的海洋里迷失自我,看着很努力,实际是碌碌无为。

不管是我在知乎、头条、还是公众号的文章总是收藏大于点赞,也能看出这个端倪。(个人推测,不一定对,如果你有不同的想法可以留言告诉我哦)

这里的原因以我自己的体会来说就是:整理知识缺少了那种刚接触到一个未知的新知识时的快感,后者真的就如发现“世外桃源”一般的新奇,而前者却像是做家务那般的无味。

02  “实践是检验真理的唯一标准”

这句每个人都耳熟能详的名言,很多人的理解也是偏了。

比如有一部分程序员小伙伴拿到一个任务,就开始palapala代码敲起来,遇到不明白的地方的确也很有求知欲,会调试进源码看看里面是怎么实现的。

看似学习的很“深入”,实则是一个走到哪算到哪的行为过程。很有可能在半路才发现“哦哟,原来是路走错了,此路不通。”。

这些构建知识体系的误区背后其实就缺少一个东西作为指引,我将它称之为——“主干”。

那么什么才算是“主干”呢?

Z哥认为能够用来作为“主干”的主要是基于以下三种概念,在不同的领域可能有些不同。

  1. 范式。

  2. 定理。

  3. 本质。

具体的定义就不展开了,可以自行搜索,会有一些区别。但是它们有一个共同点,就是某个范式、定理或者本质,其实就是得到该领域内一部分群体公认的一个共识。这是确保你构建的知识体系不跑偏的基础

确定了“主干”之后,然后再开始往外延展,让它开枝散叶,形成一个相对完整的体系。

用「道」和「术」的理念来说,“主干”就是「道」层面的事情,而很多具体的方式、方法、理论,包括前面提到的两个误区中的行为都属于「术」的范畴。

「术」是基于场景而来的,所以理论上数量是无限的。只是单凭记忆力去记这些成千上万的「术」,哪怕你记得住,也用不起来。这和读书时候的死记硬背也能考出不错的成绩也不同,实际生活中的场景是千奇百怪,总有些不同,是无法预料的。

所以,我们应该先把“主干”确定好,再基于它延展“支干”。

这就好比,你打算周末做一顿菜给父母吃。首先你得先确定你要做什么菜,菜单得先出来,哪怕就一、二个菜。

而不是看到家里的冰箱里有什么就抓起来搞个大杂烩。

比如,你想做个佛跳墙,那么你就去网上搜寻做佛跳墙的文章,收集所需的原料和比例、搞清楚做的几道工序等等,然后再动手。当然,你也可以选择换一个菜“我去,佛跳墙太复杂了,我还是做番茄炒蛋吧。”。

其实我们在日常学习的时候出现的误区就类似于:知道了佛跳墙需要鲍鱼后就马上开始煮了,中途才发现缺了这个、缺了那个。

那么具体该如何从头开始构建自己的知识体系呢?

主要分为五个步骤。

01  找共识(范式or定理or本质)

这其实就是“建主干”的过程。

对于一个对你来说是陌生的领域,有一个笨办法就是,找到这个领域内被奉为经典的著作,并且多读几本在不同时期对同一个概念的解读。

从中发现那些不变的理念、思维模式或者视角,这就是“主干”。而那些随着时间的推移发生变化的部分知识其实是意味着它的“支干”正在更加的贴近现实,是一个不断纠错的体现。

如果开始比较难,可以选择一本《XX导论》、《XX概论》之类的书先打底,对这个领域内的一些基础的知识,专有名词有一些了解。

做好了这个步骤,可以确定下来几个大方向。这里程序员小伙伴居多,举个「构建分布式系统知识体系」例子(后续会一直用这个例子)。

假如,我们经过一番了解之后,确定了分布式系统的“主干”是传统计算机“主干”的延伸,也分为存储和计算,但是多了一个协调和管理方向。

好了,第一个环节的工作就完成了。

这个环节一定要给自己足够的整块时间,这是重中之重。否则是很难总结和提炼出一些抽象的东西的。

当然,这里有一个更高效的办法,就是请教这个领域内的建树明显高于你的专家。通过人来获得你要的信息可比你自己去总结提炼高效多了。

可能你会担心,万一对方说的是错的呢?我的观点是,假如连本质都错了,这个人大概率也成不了专家吧。

“主干”搞定了,接下去就是确定一些已知的“支干”。

02  不断在成长区扩张

如果说第一环节还可以通过请教专家走一下捷径,那么第二环节就无捷径可走了。

对很多人来说,在新鲜感的支撑下,短期还能往前走一走,长期坚持下去的人却不多。

我们知道,学习有一个「舒适区」理论。待在自己熟悉的地方(舒适区),是学不到东西的,你只是在不断重复;离舒适区太远(危险区),也很难学到东西,因为你完全不懂。

走出舒适圈是痛苦的,根本原因是因为你要靠自己将「不确定性」的事物变成「确定」的。这个时候不像你去去便利店买个东西,只要一手交钱一手交货,其他的不确定性,社会机制已经帮你解决了。你不用担心店员收了钱不给你东西,也不用担心他不认识你支付的钱等等。

让自己能持续走出舒适圈的关键在于,能不能沿着舒适区的边界,找到一个让你平衡的「成长区」,在这里探索,往“主干”上添加“支干”。

比如,当你开始在「分布式存储系统」这个方向往外延伸的时候,不要去研究什么Paxos算法,甚至是它的证明过程,这个对我们大部分人来说就是直接从「舒适区」跨越到了「痛苦区」,自然很难坚持下去。更好的办法应该是去找一个基于Paxos算法实现的存储系统,将「数据一致性」的常见场景实际模拟一下看看,会发生什么情况。

经过不断地在成长区往主干上添加支干之后,我们的知识体系就变成下面这样了。(用存储来抛砖引玉一下)

随着“支干”的逐渐丰满,我们开始逐渐进入越来越细节的地方,这个时候碎片化的时间在这里可以利用起来了。

碎片化的信息虽然不能用来「搭建」主干,但是用来「更新」和「补充」支干却非常适合。因为在主干和一些常见的支干确定之后,此时你接收到一个碎片化信息可以很快速的知道他属于哪一个支干下面或者该不该新起一个新的「根支干」。

整个第二环节就是体系化过程中最耗时耗力的环节。

接下去再在支干上弄上一些“触角”,像树上的“叶子”、“花”一样,让它与外界建立更多的连接点。

03  建立联系

我将建立联系的方式分为两种类型,“戴面具”和“做捆绑”。

先说说“戴面具”。比如3.1415926这个数字本身是没什么意义,但它和圆周率联系起来,就变得有意义了。圆周率就是这个数字的“面具”,让你可以更高效的想起它,认出它

还有我之前的文章《我珍藏5年的10倍速阅读法》中也举过类似的例子。

什么是“车”?你脑子里可能会先想起,马路上在开的汽车,又会接着想起它有4个轮子,有车灯,能鸣笛。然后自行车也算是车,不过它只有2个轮子。以及三轮车、大巴车、面包车等等,甚至是英文「car」、「车牌」、「变形金刚」这些。

ZacharyZF,公众号:跨界架构师我珍藏5年的10倍速阅读法

“做捆绑”的定义主要是用于两个知识体系之间,它是一个升维的系统化过程。就是从更宏观的角度,看到这整个知识体系与外界的关系

因为,孤立的知识点是没有价值的,也不会长存。所以由大量知识点组成的知识体系也不会是孤立存在的,它必然与其它的知识体系之间存在或多或少的共通之处。如果在用到其中一个知识体系的时候,顺带能牵出另一个知识体系,运用知识的效率是事半功倍的。

“做捆绑”的方法我在之前的《读再多书都没觉得自己变强?试试我这“5年陈”的方法》有具体展开,这里就不赘述了。

经过这个环节之后,我们的知识体系变成下面这样了。

这个环节中还有一些小细节可以留意一下。比如,

  • 遇到重复的知识,根据「奥坎姆剃刀原则」保留最简单的那个。越简单,越接近本质。

  • 遇到相反的两个观点,不要带着「二元思维」去判断到底哪个是正确的。因为只要各自的逻辑只要自洽,可能两边都是正确的,只是视角不同

04  内化

一个知识体系要能够更好的为你所用,离不开内化这个动作,否则只是停留在纸面上的一份文档而已。

而想要让内化的效果更好,还是不得不提一个老生常谈的话题,强行将你的理解进行对外输出,这会大大加速你对知识的内化。内化的过程也是一个不断根据外界的反馈不断重构你知识体系的过程。毕竟在构建知识体系的整个过程中充满着大量的未知,没人能一开始就设计出一个完美的“主干和支干”。

这里具体比较有效的办法是,做分享。关于做分享的小技巧,也可以看下我之前的一篇读书总结《想要走上巅峰?练好演讲也是必不可少的技能》

不管是面对一个人还是一群人,当你能让一个外行很快搞懂你要讲的东西的时候,就是你的知识体系大树v1.0竣工的时候。

如果是自由职业者或者由于其它原因,分享的机会并不多。可以选择像我一样通过写文章来进行对外输出。相比前者唯一的不足是,可能得到的反馈深度没那么好,但是随着时间的推移,反馈的数量会更多。

05   开放的心态

前面也说到了,没有任何知识体系是一尘不变的,随着时间的推移都会发生变化。

因为整个世界对我们来说有太多的未知,我们永远在不断接近的“内核”的路上,但从未真正触达过它。

许多人的弱点就在这里:笃信自己永远是正确的,却不敢直视他人的不同意见,更不敢推翻自己。

这就无异于断绝了新知识的来源,只会一直抱残守缺。

一句比较精辟的话是:

当一个人坚定自己代表真理时,真理就已经离他而去了

所以,一个能够接纳不同的观点,求同存异的心态显得至关重要。

有的人好奇心和求知欲特别强,会容易陷入另一个极端,在知识体系的构建中缺乏边界意识。

知识本身是无穷无尽的,我们每个人的知识体系只是整个知识海洋中的一部分。有人覆盖面积稍大一些,有的小一些。

如果让构建知识体系的过程过度地肆意遨游,那你的知识体系不但构建起来时间非常长,而且可能会发育不良,比如左高右低。

所以,要有边界意识,够用就好。

比如你想要了解某个领域的知识用来干嘛,这个是确定的。

然后你只要贴着这个边界去找寻信息就好了。否则,更多的空白部分都是浪费的。

最后分享一个我之前收藏的知乎网友总结的在知识体系成熟度的不同阶段所表现出的不同景象。

1. 没有知识体系。——哇,真棒!

2. 我要把它用“心”记下来。——我“好像”看过这个知识点。

3. 我把它记录在本子上了。——我要去看一下笔记本。

4. 能够用自己的话描述新知识。

5. 能够找到新知识与已有知识的内在逻辑关系。

6. 能够使用新知识解释过往的经验。

7. 能够将新知识应用到现实当中。

https://zhuanlan.zhihu.com/p/32731485

好了,我们总结一下。

这篇呢,Z哥先强调了构建知识体系对提升你的深度思考能力和知识的使用效率大有帮助。

其次,提醒你注意远离两个误区,「只追求学习的数量」,以及「蒙头向前,不问方向」

我们应该以「主干->支干->触角」的思路来构建知识体系,通过5个步骤进行。

  1. 找共识(范式or定理or本质)

  2. 不断在成长区扩张

  3. 建立联系

  4. 内化

  5. 开放的心态

希望每个人都能在知识的海洋中找到那个适合自己的位置,让知识发芽长大,形成你自己独一无二的知识体系。这也让你拥有了做更多选择的能力。

我又想起一个网上的段子。(出处在哪搞不清楚了)

当你看到下图夕阳余晖…你的脑海浮现的是“落霞与孤鹜齐飞,秋水共长天一色。”

而不是“卧槽,我靠,好多鸟,好多鸟,卧槽,真他妈太好看了!”

再如,“割韭菜”这个事情,本质上就是在某个领域高认知体系的人去套路低认知体系的人的过程。

推荐阅读:

  • 读再多书都没觉得自己变强?试试我这“5年陈”的方法

  • 想要走上巅峰?练好演讲也是必不可少的技能

原创不易,如果你觉得这篇文章还不错,就「在看」或者「分享」一下吧。鼓励我的创作 :)

如果你有关于软件架构、分布式系统、产品、运营的困惑

可以试试点击「阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 递增序列

思路&#xff1a; 这道题一开始想复杂了&#xff0c;其实这么小的数据量直接暴力求解即可。 参考代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; int m 30, n 50;bool checkL(int x, int y) //判断坐标是否超出边界 {if(x &g…

使用DbContextPool提高EfCore查询性能

长话短说上个月公司上线了一个物联网数据科学项目&#xff0c;我主要负责前端接收设备Event&#xff0c;并提供模型参数下载&#xff08;数据科学团队会优化参数&#xff09;。WebApp部署在Azure&#xff0c;模型参数使用Azure SQL Server存储。最近从灰度测试转向全量部署之后…

蓝桥杯 分巧克力 二分

#include<bits/stdc.h> using namespace std; typedef long long ll; ll n, k; vector<ll> width, height;bool check(ll length) //判断边长为length的正方形都否满足需求 {ll sum 0; //记录能切成的最大方块数 for(int i 0; i < n; i){sum (width[i] / …

[原]调试实战——程序CPU占用率飙升,你知道如何快速定位吗?

前言 如果我们自己的程序的CPU Usage&#xff08;CPU占用率&#xff09;飙升&#xff0c;并且居高不下&#xff0c;很有可能陷入了死循环。你知道怎么快速定位并解决吗&#xff1f;今天跟大家分享几种定位方法&#xff0c;希望对你有所帮助。如何判断是否有死循环&#xff1f; …

蓝桥杯 迷宫

参考代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; int e[55][55], vis[55][55]; //e矩阵表示障碍物信息&#xff0c;vis矩阵表示点是否被访问过 int m 30, n 50; struct node{ //定义结构体&#xff0c;用于存放点的信息 i…

ASP.NET Core基于K8S的微服务电商案例实践--学习笔记

摘要一个完整的电商项目微服务的实践过程&#xff0c;从选型、业务设计、架构设计到开发过程管理、以及上线运维的完整过程总结与剖析。讲师介绍产品需求介绍纯线上商城线上线下一体化跨行业跨商业模式从0开始&#xff0c;我们应该采用微服务吗&#xff1f;不适合采用微服务架构…

蓝桥杯 日志统计 尺取

参考代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; vector<int> v[100005]; //定义容器用于存放第i篇帖子被点赞的时间 int main() {ios::sync_with_stdio(false); int n, d, k;cin >> n >> d >> k;in…

2019 ASP.NET Core 之微调查报告,新鲜出炉

▼更多精彩推荐&#xff0c;上午11点到达▼在本周三的时候&#xff0c;因为直播没有找到合适内容的缘故&#xff0c;因此在我的公众号内发起了一波问卷调查&#xff0c;地址是&#xff1a;【壹个问卷】NetCore学习的知识点调查&#xff0c;当时就是想着有十来份儿就已经很给面子…

蓝桥杯 子串分值

参考代码&#xff1a; #include<bits/stdc.h> using namespace std;int main() {ios::sync_with_stdio(false); string str;cin >> str;int sum 0;int left, right;char s;int len str.size();for(int i 0; i < len; i) //依次循环每一个字符&#xff0c;…

基于 Blazui 的 Blazor 后台管理模板 BlazAdmin 正式尝鲜

简介BlazAdmin 是一个基于Blazui的后台管理模板&#xff0c;无JS&#xff0c;无TS&#xff0c;非 Silverlight&#xff0c;非 WebForm&#xff0c;一个标签即可使用。  我将在下一篇文章讨论 Blazor 服务器端渲染与客户端渲染的基本原理&#xff0c;对比服务器端渲染与 WebFo…

蓝桥杯 123 二分+打表

参考代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; ll temp[1500000], sum[1500000]; //temp数组记录序号和&#xff0c;sum数组记录前缀和 ll cal(ll n) //计算自然数求和 {return (n1)*n/2; }int main() {ios::sync_with_s…

.Net Core使用Ocelot网关(二) -鉴权认证

前言上一章.Net Core使用Ocelot网关(一) -负载,限流,熔断,Header转换 已经简单的介绍了ocelot的使用了,但是网关暴露的接口如果什么人都能访问的话安全性就太低啦。所以我们需要去鉴权和认证。这里我们使用identityServer4给我们的网关来鉴权认证。创建Identity服务我们创建一个…

蓝桥杯 k倍区间 前缀和

参考代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long long ll; int array[100005], t[100005]; //array记录每个元素值&#xff0c;t记录取余k&#xff0c;各余数对应前缀和的数量 int main() {ios::sync_with_stdio(false); ll sum 0, c…

Kubernetes 的2020年“野望”

Kubernetes是一个用于部署容器化应用程序的开源容器编排系统&#xff0c;由Alphabet的GOOGL Google部门设计&#xff0c;其发展势头强劲&#xff0c;这得益于全球企业以指数级的速度生成数据之大势。Kubernetes支持在单个OS上无缝部署多个应用程序并实现诸如监视、调度、扩展这…

微服务的时间和成本去哪儿了

2019 中国.NET 开发者峰会目前在国内的.NET社区还是很有影响力的&#xff0c;宣传的内容也都是比较新潮和前言的技术栈。有一个不争的现实是基本上主题都是关于.NET Core的&#xff0c;以及基于该主题之上的延展。比如ML.NET相关的机器学习&#xff1b;基于.NET Core的微服务实…

自定义滚动条(Custom ScrollBar)

时间如流水&#xff0c;只能流去不流回&#xff01; 点赞再看&#xff0c;养成习惯&#xff0c;这是您给我创作的动力&#xff01; 本文 Dotnet9 https://dotnet9.com 已收录&#xff0c;站长乐于分享dotnet相关技术&#xff0c;比如Winform、WPF、ASP.NET Core等&#xff0c;亦…

用ASP.NET Core构建可检测的高可用服务--学习笔记

摘要随着现代化微服务架构的发展&#xff0c;系统故障的定位与快速恢复面临着诸多挑战&#xff0c;构建可检测的服务&#xff0c;帮助线上保障团队时刻掌控应用的运行状况越来越重要。本次分享会讲解如何让 ASP .NET Core 应用与现代化云基础设施完美融合&#xff0c;提升服务的…

[功能发布]Excel催化剂2周年巨献-网页数据采集功能发布,满足90%合理场景使用...

转眼间&#xff0c;Excel催化剂推出已经两周年&#xff0c;在此之际&#xff0c;献上数据时代最刚需的网页采集功能&#xff0c;无需苦苦寻觅各种工具&#xff0c;借助Excel催化剂过往数据处理、清洗功能&#xff0c;加上此轮的网页采集功能&#xff0c;一点不输于市面上的各种…

.NET Core 微服务学习与实践系列文章目录索引(2019版)

Photo &#xff1a;.NET Core文 | Edison Zhou2018年&#xff0c;我开始学习和实践.NET Core&#xff0c;并开始了微服务的学习&#xff0c;以及通过各种开源组件搭建服务治理技术方案&#xff0c;并在学习过程中总结了一个.NET Core微服务学习与实践系列文章&#xff0c;涵盖了…

dapr微服务.net sdk入门

Actors入门先决条件.Net Core SDK 3.0Dapr CLIDapr DotNet SDK概述本文档描述如何在客户端应用程序上创建Actor&#xff08;MyActor&#xff09;并调用其方法.MyActor --- MyActor.Interfaces|- MyActorService|- MyActorClient接口项目&#xff08;\MyActor\MyActor.Interface…