大家好,我是Z哥。
不知道你有没有过这样的困惑,想学习某项新技能,但是很容失败。比如,出于职业发展的考虑,想学习一门新的编程语言,或者想了解一个新的技术框架;又或者看了某些综艺节目后想玩一玩滑板、练一下街舞等等。
在我看来失败的原因主要有两种:
要么不知道从何下手,然后拖着拖着就不了了之。
要么凭感觉随便找了一处下手,然后中途遇到困难,随后放弃。
也不用不好意思,反正这两种情况我自己都亲身经历过……
说实话,这个问题如果不解决,慢慢地你会觉得自己做啥都不行,开始进入到一个恶性循环中,逐渐把自己限定死在一个范围内,不想走出舒适区。
很多人都会告诉你,提前做一下规划就不会出现这种情况了。但实际上,不少人在规划这个步骤就卡住了,因为不知道如何规划。
你想一下,你对一个完全陌生的领域能做出规划吗?比如,让你规划一下如何才能将人送到火星?
很明显不能。所以,只有我们对某个领域有了一定程度的了解之后,才做得出规划。
那么到底要到什么程度才可以做规划呢?这就是Z哥今天要聊到事情。不过我分享的内容可不仅于做规划,而是能完全解决开头提到的如何掌握一项新技能的问题。
方法很简单,构建一个技能树,把掌握这个新技能所需的相关知识、信息等罗列出来。对,类似于魔兽世界里技能树那样。
因为构建技能树的过程,其实就是你将一片黑暗的陌生领域逐渐照亮的过程,只有眼前先看到前方有哪些路,你才能规划出前进的路径,不是么?
道理很简单,具体做起来也不难。
我的方法是,把你需要掌握的技能根据以下三个维度进行拆解,序号代表需要掌握的先后顺序。
概念(concept)
知识(knowledge)
技能(technique)
第一个维度的「概念」表示这个新技能所属领域内的“基本语言”。就是说,你要做这件事,首先得入这个门吧,入门的前提自然得懂这个领域内的人在说什么。掌握概念就是让你与其他人拥有共同语言。
比如,你要学编程,如果你搞不清楚什么是循环、什么是类型转换、有哪些数据类型,相信编程肯定学不好。
第二个维度是「知识」,它表示与这个新技能相关的前人总结的规则、规范、理论等等。这些东西更像是一种共识,是前人沉淀下来的精华,是为了让“后浪们”能少走一些弯路更快地接上“前浪”的班。
比如,还是拿学编程举例子好了,开闭原则、高内聚低耦合等等都称得上是「知识」。
第三个维度是「技能」,就是具体可操作的一些东西。
依旧用学编程举例子,熟悉某个IDE工具的使用、debug的技巧、服务器上的常用操作等,这些就是「技能」。
很多人之所以会半途而废,就是因为一上来追求的就是「技能」层面的事情。这些东西看起来最容易下手,但是如果前面两个维度的事情没做好的话,很容易囫囵吞枣的往前走,囫囵多了自然就吞不下去了。
如今,每当我遇到需要掌握一个新技能的时候,我会先通过搜索引擎去收集信息,将他们整理到思维导图里构建技能树。树的结构就是上面说的这三个维度。
然后呢,每搞定一个就给上完成标记,如果是一知半解的,先给上一个部分完成的标记,后续再花时间吃透。
在思维导图中做的这些标记只是一个参考,为的是让你能够一目了然的知道自己在这件事上到底有“几斤几两”。
如果你想让这个参考更具价值,更准确的话,你可以邀请对这个技能掌握的比你好,同时又对你的掌握情况有所了解的人来评估。
好了,总结一下。
这篇呢Z哥和你分享了我在学习一项新技能时的方法,主要是要先构建一个技能树,然后再花时间逐个击破就好。
技能树可以通过三个维度展开:概念、知识、技能。
希望对你有所启发。
当然,从技能树的结构来看,它是可以无穷尽的,叶子结点可以不断的增加和延展。这也意味着学习是无穷尽的,你需要不断地去更新你的技能树。赶紧动起来吧。
推荐阅读:
如何做一个懂产品的程序员?
分享几个亲测有效的高效工作技巧
原创不易,如果你觉得这篇文章还不错,就「在看」或者「分享」一下吧。鼓励我的创作 :)
如果你有关于软件架构、分布式系统、产品、运营的困惑
可以试试点击「阅读原文」