程序员如何构建知识图谱,让自己更值钱?现在这个时代,信息极大丰富,知识浩如烟海,每个人每时每刻都被各种各样的知识、信息轰炸着,如何有效的选择对自己有价值的知识,如何构建一个独属于自己的知识体系并让它为自己创造价值,变得越来越重要。
泛泛地讲,知识就是财富,信息就是财富,具体到个体身上,只有知识经过了你的选择和应用,内化为自己的隐性经验,纳入到你的知识体系中,才能真正地为你创造财富。
那么,怎样才能建立自己的知识体系呢?
构建个人知识系统的一般要经历下面这些过程:
选择方向,设定目标 学习、实践、输出、内化 同主题扩散 运用工具整理记录知识图谱 迭代与更新
一个一个来趴一趴。
有目标,才有知识体系
如果只能选择一个方向,你希望在什么方向上做到出类拔萃?
对这个问题的思考,会帮助你找到自己的方向。方向非常重要,没有目标,没有方向,你就不可能有效地去学习知识,更不可能建立起来有价值的知识体系。
所以,构建个人知识体系的第一步就是定位。
个人的定位,取决于你想成为一个什么样的人,取决于你想在哪个方向上建立优势地位。
比如你想成为像Linux内核创建者Linus Torvalds那样的人,在Linux操作系统方面做出卓越的贡献,那你就能迅速定位你的知识系统的大方向——Linux操作系统开发。
比如你想成为像秋叶大叔(秋叶PPT)那样的人……
比如你想成为像黄晓明那样的实力偶像派演员……
比如你想成为像马云那样的企业家……
每个人都会对自己的将来有所期待,也只有你对自己的将来有所期待,清楚自己想要成为什么样子,你才能建立人生的愿景,才能找到自己的定位,然后才能围绕自身定位来发现能够支撑你定位的知识,构建出符合你定位的知识体系。
定位决定了你知识体系的方向,所以,第一步,也是最重要的一步,先静下心来,思索自己想要成为什么样的人,考虑自己的将来,找到前进的方向。
这个过程可能很慢,需要几个月或者几年,也可能很快,只要一个瞬间。无论长短,最重要的是,你必须有想象力,愿意成为自己这艘即将远航的旗舰的舵手。
推荐几本书,有助于你的自我探索:
《发现你的天赋》《持续的幸福》 《你的生命有什么可能》
知识的内化
一个人的能力分三个层次:
资源,比如知识、技能、经验、时间、精力、金钱、人脉等 应用流程,即使用资源解决问题的能力,包括做事的方法、流程、策略等,它是你整合应用资源创造价值的能力。 价值取向,即你觉得什么事情重要,什么事情不重要。
我们在前面讲目标决定知识体系的方向,而目标实际上是由你的价值取向决定。价值取向是人最重要的能力,也是最高层次的能力,它决定你一生的走向。
你的价值取向决定了你的定位,定位决定了你愿意学习的知识。而知识是一种资源,是固化的,是死的,必须经过你的应用流程,才能内化为自己的经验,帮助你解决工作与生活中的问题,为你创造价值。
只有知识,不懂应用,那是书呆子。
像神仙姐姐王语嫣,牢记每一种武林秘籍,但是一招也打不出来,与人对战只有被秒杀的份儿。
像《围城》里的方鸿渐,也学习了很多乱七八糟的知识,但赵辛楣评价他说:“你是个好人,但一无是处”,这也是因为他涉猎很多都不能落地应用创造价值。
我也见过一些软件开发者,说起编程语言里的某个知识点,哪哪儿都清楚,但让他写程序,就是一团麻乱,根本想不起来要用什么,要到处问,List怎么用,StringBuilder怎么用,ListView该怎么用,问半天也还是不会用……
所以我们一定要把显性的知识内化为自己的隐性知识,变成自己的能力。
遵循下面的过程,有助于完成知识的内化:
学习 实践 输出
很多知识都经由前人的总结显性化了,固化在书本、网络、视频等载体上,我们就从这些载体上开始学习。这是第一步,它让我们知道有这样一个知识、这个知识是什么、这个知识可以用来解决什么问题。
不要停,你到了这一步千万不要停,要接着去琢磨:
这个知识对我有什么用? 我过往的工作与生活中,哪些经历、经验可以和这个知识关联起来? 在将来,这个知识能怎样帮助我改善自己的工作?
只有你经过了这样的有意识的思考,一个显性的知识才具备了转化为你自己的隐性知识的可能。
很多人看书、看视频、听演讲,根本不琢磨,只是被动接收,只是“浏览”到有这么个东西,“哦”一声就过去了。所以,他们很难有进一步的收获。
当你经历了思考过程,就来到下一步:实践。
实践对从事某些职业的人来讲是自然而然的事情,因为他们的工作就是与信息和知识打交道,用知识创造价值。比如软件开发工程师,比如金融分析师,比如基金研究员,他们必须把学到的东西应用起来解决实际的问题,自己才有价值。而对于某些职业的人来讲,多数知识往往很难应用到实践中去,比如销售,比如挖掘机驾驶员,因为看不到知识应用到实践中能带来什么价值,就容易停留在“浏览”然后“哦一声”这种状态。
注:工作可大致分为三类,第一类是操作性的,比如车工、钳工、园艺;第二类是与信息(数据)打交道,通过对信息(数据)的加工、分析、创造来产生价值,比如软件开发工程师,财务分析师;第三类偏重与人交互,工作的重点在人际互动,比如销售、市场、保险代理人等。
这再一次说明方向的重要性。如果一位销售员看《世界上最伟大的推销员》、《销售就是要玩转情商》这类书,一定能找到应用到实践中的知识。
当你在实践中运用知识创造了价值,这个知识对你来讲就有吸引力,你就会去琢磨:
它还能用在什么情景下? 它还有没有其他用法? 它还能带来什么价值?
当你习惯了使用知识后不断地这样思考,你就成了一块吸铁石,各种各样的知识都会飞到你身边,成为你的。
这就是内化的过程,内化是由“实践–思考–实践–思考”这样的循环造就的。
现在我们很多人过度依赖搜索引擎,比如ListView不会用,Google一下,拷贝粘贴一段代码来解决自己的问题。但是解决之后往往就放下了,不再琢磨这段代码为什么能解决问题、我为什么没想到、下次我怎样才能自己来解决问题,这样做的后果就是,遇到问题永远在问搜索引擎,永远也培养不出独立思考并解决问题的能力。
所以,实践、思考、再实践、再思考,直到某个知识内化为自己的隐性知识和经验,才算真的学习到了。
如果你能够把自己应用知识解决问题的过程,收获的经验,再转化出来,分享给别人,帮助别人解决问题,那你对知识的掌握将更进一步。
这也是CSDN上很多博主的做法:用输出倒逼输入。也是我的做法,我的公众号“程序视界”每周发布三篇原创文章,就是一种倒逼机制,我要逼着自己通过输出的方式来内化知识。现在形成习惯,基本上没什么压力了。
输出是内化知识的最有效的途径当你准备输出时,会考虑很多很多,比你自己使用知识时考虑的要多很多,比如怎样讲明白、比如怎样让结构清晰、比如怎样设计示例辅助说明、比如这个知识点与哪些关联、比如哪些关联的知识点必须讲清楚……所有这些,会让你进一步思考知识,会让你系统化你的知识,最终会加深你对知识的理解与应用。
同主题扩散
很少有知识是孤立的,也很少有哪个方向只需要一种知识就可以真正解决问题。
比如你做桌面客户端产品开发,选择C++语言作为主要开发语言,但C++语言本身绝对完成不了这个任务,你必须在同一个主题内寻找其他的支撑,比如Qt,比如MFC,比如wxWidgets。
这正是我们构建知识体系必须要经历的过程:在同一主题不断挖掘相关知识,完善你的知识图谱。
比如我曾画过一张学习C++的图谱:
\
从图上就可以看出来,C++是知识的中心,围绕着它有很多相关联的知识。
那么,怎么发现同一主题内还有哪些知识需要学习呢?
多问问下面的问题会有帮助:
**为了解决A问题,除了这个知识,还需要哪些知识、工具? 这个知识是由什么知识发展来的? 这个知识有什么新的发展? 关于这个知识,有哪些书? 讲述这个知识的书中推荐了哪些书?参考了哪些书和资料? 在这个知识领域,有哪些大咖,他们在学什么? 关于这个知识,还有哪些是我不知道的?
如果你能不断思考这些问题,就能不断找到需要进一步学习的知识,就能不断扩大自己的学习区,最终就能不断地丰富自己的知识体系。**
好啦,到现在为止,我们介绍了构建个人知识体系的三个基本的步骤:
确立方向 内化 同主题扩散
接下来我们介绍让我们的知识库持续发展永葆青春的两个步骤:记录与迭代。
使用工具固化你的知识库
大脑容量有限,必须借助工具将我们的知识系统记录下来。有非常多的工具可以使用,比如:
笔记类软件 博客 wiki 脑图 各种知识库系统,如CSDN知识库 图书 电子书 ……
在上面这些工具中,其实图书更多时候是你系统化自己知识的一种产出物,比如我在CSDN博客发布的文章多了,就结集出版了几本书:《Qt Quick核心编程》、《你好哇,程序员》。电子书也是类似的。
在选择工具系统时,遵循下面的原则:
易用,多终端同步 便于检索 能呈现知识系统的结构
每个人都可能使用不同的工具来固化自己的知识库,不必追求与别人一致,只要你选择的工具满足你的需要,用着顺手,这就行了。
我目前使用有道云笔记、CSDN博客、CSDN知识库、脑图、图书等工具来记录知识。
脑图工具我用的是XMind的社区版,免费,强大。
下面是学习Qt时绘制的:
\
下面是我2015年绘制的我的知识图谱:
\
脑图的好处是你可以很方便的记录、分支、补充,也能很好体现知识的关联。但它不方便的地方在于,你往往只能记录一些关键词,大量的知识或者系统化的文章不太方便体现。
那后者,其实可以使用CSDN博客与CSDN知识库的组合来完成。我就在CSDN博客上发表文章,分享我对某方面知识的见解,然后使用CSDN知识库把这些文章链接起来,整合成一个系统。这种方式的好处显而易见:方便,多终端同步,系统化,利于更新迭代。
迭代与更新
当我们将自己某方便的知识构建成库、系统化之后,记录在某个载体上,接下来面临的就是知识的更新。
每一种知识都可能会不断发展、更新,都可能随着时代的发展而变得过时,所以我们要不断更新自己的知识体系。
比如你原来在C++方便积累了一些知识,使用的是C++98的标准,但现在C++11在普及,C++17马上出来,你就需要更新。
比如你原来做广告,走传统的电视、广播、杂志、报纸等媒体,积累了很多知识和经验,可是现在互联网时代,微信公众号、微博、头条号、映客、花椒各种新媒体层出不穷,你就要更新针对这些媒体的知识和经验。
如果我们不能定期更新自己的知识库,那我们就会慢慢落后于时代,越来越没有价值,也会失去很多机会。
举个简单的例子,学Java的朋友们,当2007年Google发布Android系统时,有多少人抓住机会,把Android开发框架纳入到了自己的知识体系中?如果你那时开始做Android,就赶上了移动开发的大潮,现在不是大神也是大咖。
再举个简单的例子,滴滴和快的出来时,很多出租车司机不相信他们会给自己派单会给自己补贴,不愿意装相应的APP,结果不但少赚了非常可观的补贴,也错失了优化拉客效率的机会。
四象共赢
前面我们讲了构建某个领域知识库的过程,那其实呢,一个人可能会在很多领域建立自己的知识体系,因为我们的生活本来就是多元中心的。
一个平衡的人生包含四个象限:事业、家庭、社区、身心与精神。
我们应当在每个象限中都确立一些关键目标,为这些关键目标配置资源(时间、精力、金钱、人脉等),在每个象限中建立自己的知识图谱。
比如你是软件开发工程师,在事业领域,你构建软件开发相关的知识图谱,你还有家庭,可能会围绕夫妻、两性、婚姻、育儿、情感管理、亲密关系等构建出面向家庭的知识体系。
再进一步,不同象限的知识,其实是可以交叉融合的。
我们以软件开发中的Scrum为例,来说明不同领域的知识体系如何相互融合。
使用Scrum模型来辅助产品开发时,先会抽象出一个Product Backlog(PB,产品需求列表),然后会从PB中挑选一部分需求,纳入到一个Sprint(冲刺,一般是为期2~4周的迭代)中来实现,每个Sprint有启动会议(主要选择要实现的需求或Story)、每日站会、任务看板、燃尽图、演示会议、回顾会议等方法来保证Sprint的顺利进行。
这里面的流程简化下来就是:确定大的目标–>拆分出阶段性小目标–>可视化进度,用站会、燃尽图等反馈促进行动–>回顾总结。
这个流程和思想,完全可以用来指导家庭的目标实现。比如夫妻准备生孩子,那生孩子就是大目标,可以拆分出身体调整、备孕、怀孕、生产、坐月子等小目标,然后就可以梳理每个阶段的SB(Sprint Backlog),在这个阶段集中精力完成SB。比如备孕,可能需要吃叶酸、需要根据排卵期确定同床时间,比如要禁酒禁烟避免劳累,这些事情都可以被管理。夫妻双方还可以参考站会的做法,每天总结昨天的进展、问题,规划今天怎么做。一个阶段结束后,通过简单的家庭会议来回顾上个阶段做得怎么样,然后再开下个阶段的启动会议,明确重要的目标(Sprint Backlog)……
甚至某一个具体的方法,也可以运用到别的领域。以Scrum的站会为例,就可用于每一天的生活,无论是家庭还是工作。以我为例,每天早上我都会想今天要做什么事情,每天晚上会想今天完成了什么、什么没完成、遇见了什么问题、明天做什么,这种习惯就来自Scrum的站会,能极大提高你每一天的生活质量。
当我们经常思考一个领域的知识怎样才能应用到另一个领域时,我们就开始了融合、创新的过程,进入了更高境界。
如果你不断地找到了交叉地带,融合了各个领域的知识,那最终,你就可能将你所有的知识体系打通,统合出独属于你自己的和谐完整的知识图谱,帮助你实现平衡和谐的人生。
小结
遵循下面的步骤,可以帮助我们更好的在某个领域建立自己的知识体系:
定位 学习、实践、输出、内化 同主题扩散 运用工具整理记录知识图谱 迭代与更新
实际上我们构建自己的知识体系时,还遵循了先深度后宽度的规律。
当我们在事业、家庭、社区、身心与精神这四个象限分别构建了多个知识库后,如果能多多思考如何融合各个知识系统,就可能实现四象共赢,构建出个人完整的知识图谱,实现和谐的知识体系与平衡的人生。
推荐阅读:
你的知识需要管理 精进:如何成为一个很厉害的人 程序员这样优化简历,一投制胜