极客时间已完结课程限时免费阅读

18 | 三段分解法:怎么利用10000小时成为大牛?

18 | 三段分解法:怎么利用10000小时成为大牛?-极客时间

18 | 三段分解法:怎么利用10000小时成为大牛?

讲述:安晓辉

时长11:30大小10.50M

你好,我是华仔。
10000 小时定律虽然理论上很简单,但真正要落地实行也并不那么容易。上一讲我介绍了怎么通过海绵学习法来获取你的 10000 个小时,但是就算有了时间,你也很难十年如一日地坚持学习。
能否坚持,当然要看你对自己的事业是否有“激情”。但如果只靠激情来支撑,持续 10 年依然是一个很大的挑战。因为我们的大脑在进化的过程中,已经形成了需要不断的正反馈才能保持兴奋的机制,也就是说,与其在第 10 年给一个大奖励,还不如每个月都给一个小奖励。所以除了激情,你还需要“先定一个能达到的小目标”。
那么,具体要怎么制定小目标呢?这一讲,我就为你介绍一个三段分解法,带你把“10 年成为大牛”这个大目标,分解成一个个可以在短期内达成的小目标。

第一段:分解“等级”

第一段分解,是在当前状态和最终的目标状态之间,分解出中间的等级。
10 年成为大牛这个目标虽然比较长远比较宏大,但并不意味着在成为大牛之前,我们一直停留在菜鸟阶段原地踏步。在菜鸟和大牛之间,其实有几个关键的里程碑,这些里程碑就是中间的等级。
大部分的专业领域都有比较正式的等级划分标准,例如钢琴专业从 1 级到 10 级,跆拳道从白带到黑带。对于互联网的领域来说,虽然没有通用的专业等级标准,但不同的公司都会有类似的职级体系,你可以直接以公司的职级体系来划分中间等级。
以跨越式职级为例,从 P5 到 P9,你经历的等级包括以下这些:
P5,职场新手,工作 1~3 年,需要别人带你完成任务。
P6,项目能手,工作 3~5 年,能够独立完成任务。
P7,团队专家,工作 4~8 年,能够带领小团队实现目标。
P8,领域专家,工作 8 年以上,能够带领多个团队实现目标。
P9,业务导演,工作 10 年以上,能够导演成熟落地的作品。
我们可以看到,虽然说至少 10 年才可能成为 P9 这个级别的大牛,但是你 3 年就可以达到 P6,5 年就可能达到 P7,8 年就可能达到 P8,在这个过程中,你一直在成长和提升,早就不是当初的菜鸟了。如果对你来说,不是非得赚它一个亿才算小目标,那么你已经可以活得比较滋润了。
分解出中间的各个等级之后,我们核对一下自己目前所处的位置,然后瞄准下一个最近的等级,继续第二段的分解。

第二段:分解“技能”

虽然朝下一个等级努力的时间是 2~3 年,跟 10 年比起来已经缩短了不少,但是这个时间还是比较长的。为了更好地利用这 2~3 年时间,我们需要进一步分解。
第二段分解的目标就不是等级了,而是技能,也就是为了达到下一个等级的要求,你需要针对哪些技能做专项提升。
如果你所在的公司已经有成熟的职级体系,你可以参考第 5 讲的 COMD 能力模型,整理出当前级别和下一级别的能力要求矩阵,这样就可以一目了然地看出具体的能力差距项有哪些了。
如果你所在的公司目前没有成熟的职级体系,或者你准备跳槽到某个心仪的公司,你也可以采取一个取巧的方式来明确能力项差别,这就是直接查看公司的招聘要求。
以阿里巴巴招聘网站上的“Java 开发专家”这个职位为例,招聘要求如下:
引自阿里巴巴集团招聘网站
可以看到,“Java 开发专家”(对标阿里 P7)要求的技能包括 Java、Spring、SOA、MySQL、Hibernate 和 Linux/Unix 等。多查看一些类似的职位描述(不同公司、不同业务线),你就能获得“Java 开发专家”的大概要求的技能范围。
但实际上,真实的技能要求会比职位描述更加细致,比如“熟练掌握 Java 编程技术”到底意味着什么,职位描述是不会写得特别清楚。我个人的习惯是将这些要求整理为一个思维导图,详细列出每个技术点。
注意,这张图只是一个示例,并不是说所有 Java 开发专家都一定是这个要求,比如互联网行业和电信行业的要求就不一样,你需要根据自己的行业和技术方向整理出适合自己的思维导图。
有了这样一个思维导图后,我们就可以开始真正进行第二段分解了。分解的方法很简单,哪里不懂补哪里!比如你感觉自己现在的数据库水平很一般,只会写 CRUD 语句,其他的东西都不懂,那么你就专攻数据库这一部分,通过一段时间的专项提升来拿下这个技能。
专项提升某个技能的持续时间既不能太短,也不能太长,一般建议在 6 个月左右。
时间太短,容易陷入为了“完成任务”而去学的误区,没有真正得到有效提升。例如我曾指导一个下属学习 MySQL,结果他就看了几个 PPT 就说自己学完了,其实还远远没有熟练掌握 MySQL 相关技能。
时间太长的话,其他技能就来不及提升了,要是你 2 年时间都用来提升数据库,那操作系统怎么办?网络怎么办?所以 6 个月为一个周期,基本上刚刚好。
举个例子,如果你目前岗位是 Java 后端开发,级别是 P5,如果晋升到 P6 需要掌握数据库、Linux 操作系统、网络编程的技术,最终的二段目标分解如下:
2021.01~2021.06:提升数据库水平
2021.01~2021.06:提升 Linux 水平
2021.06~2021.12:提升网络和网络编程水平
当然,二段目标的提升顺序并不是一成不变的,很多时候你还需要根据工作内容进行调整。比如主管最近正好安排你来负责优化系统性能,降低机器负载,那么你完全可以把“提升 Linux 水平”挪到“提升数据库水平”之前。

第三段:分解“行动”

第二段分解之后,我们得到了 6 个月左右的技能提升目标,接下来要做的,就是通过第三段分解,将技能提升目标分解为具体要做的事情,然后按照计划执行。
比如说你的二段目标是“提升 Linux 水平”。那么,怎样才能提升呢?你可以上网搜索(知乎是个好地方),也可以去问有经验的朋友,把二段目标细化为 1~2 个月的三段目标。
以我刚加入 UC 的情况为例,之前我在华为的时候,是在 Windows 平台上用 VC6 进行开发,而到了 UC 之后,是在 Linux 平台上用 C++ 开发。所以我当时就确定了“提升 Linux 水平”这个目标,然后通过上网查、找别人问等方法,最终将这个目标分解为 4 个行动:
1.5 个月:通读《UNIX 环境高级编程》
1.5 个月:通读《Linux 系统编程》
2 个月:通读《UNIX 网络编程 卷 1》
1 个月:Linux 常用命令实战,包括 tcpdump、ps 和 top 等
把 6 个月的技能提升目标进一步分解成 1~2 个月的具体行动目标之后,实施起来就简单多了。我每 1~2 个月只需要专注做好一件事,每次完成后都很有成就感,既感觉自己的水平有了提升,又佩服自己能够坚持按计划完成任务。这样的双重激励让我更有动力去完成下一个目标。
当然,在具体落地的时候,你还需要进一步分解到周,比如下周看完某本书的哪几个章节。但是在做计划的时候,我建议你先分解到月就可以了,因为一开始就直接分解到周还是比较耗费时间的,而且如果出现计划之外的事情,调整计划本身花费的时间和精力成本也比较高。
最后,我大约花了 2 年的时间将 Linux、网络和 MySQL 三个重点技能从一无所知提升到高级的水平。很多同事都问我,之前在华为是不是就是做这方面的,因为他们觉得短时间能达到这个水平是不太可能的。

小结

这一讲我跟你分享了三段分解法。虽然我举的例子都是技术领域的,但是这个方法在其他很多领域也都适用,比如说产品和运营等。
通过这个方法,你可以把宏大的目标逐步分解成可以落地的日常行动,一边“仰望星空”,朝着最终的方向前进,一边“脚踏实地”,一步一个脚印地去实现它。
现在,我们再回顾一下三段分解法的要点:
第一段是分解等级,参考专业领域的等级划分标准或公司的职级体系,在当前状态和大牛之间划分出 3~5 个中间等级,把 10 年的宏大目标分解成 2~3 年的一段目标。
第二段是分解技能,参考 COMD 能力模型和招聘网站的职位描述,整理下一个等级的技能需求,列出自己需要重点提升的 3~5 个技能点,把 2~3 年的一段目标分解成 6 个月左右的二段目标。
第三段是分解行动,参考同行在网上发布的经验和朋友的建议,确定提升单项技能的 3~5 个具体行动,把 6 个月左右的二段目标分解成 1~2 个月的三段目标。
虽然最终执行计划的时候要落实到周,但是制定计划的时候分解到月就行了,这样做的好处是,计划调整起来更加方便灵活。

思考题

这就是今天的全部内容,留一道课后思考题给你吧。以后端 Java 开发为例,P5/P6/P7/P8 都有“Java 编程技术”的相关要求,那我们为什么不在 P5 的时候就安排时间全部学完,彻底掌握这项技术呢?
欢迎你把答案写到留言区,和我一起讨论。相信经过深度思考的回答,也会让你对知识的理解更加深刻。
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 23

提建议

上一篇
17 | 海绵学习法:怎么找到你的10000小时?
下一篇
19 | 链式 & 比较 & 环式学习法:怎么多维度提升技术能力?
unpreview
 写留言

精选留言(31)

  • Monday
    2021-01-13
    很悲催现实,看技术书籍,啃得太慢。有些时候消化不了,硬着头皮看,为看完而看书。最终的结果是看完之后,不知道章节具体讲了什么。

    作者回复: 看技术书看的太慢主要还是积累不够,我开始也看的更慢,后来积累多了就会快,比如说我最近学习ClickHouse,里面的很多概念和技术我都看过,学起来就很快

    共 5 条评论
    31
  • Monday
    2021-01-12
    8年Java开发,以华仔放出的Java开发专家图对应,感觉还缺: 1、Java-诊断工具(刚学过的时候会用,但是工作中很少用又忘记了) 2、开源项目-Hibernate(基本上都是使用Mybatis)、Netty(几乎没玩过); 3、基础-网络(一直的痛)和安全 4、unix/linux-原理(只会一些常用的简单命令,进行简单的部署和日志查看) 4、 另外有几个问题: 1、 虽然所有项目都使用Spring,不清楚Spring要学到什么程度才算掌握? 2、纠结Unix/Linux的学习,想按照老师类似的分解来规划未来6个月的时间,又想穿插学习极客时间专栏《趣谈Linux操作系统》专栏 3、毕竟也不是新人了,自己一直很焦虑害怕被内卷淘汰。现在学还来得及么?
    展开

    作者回复: 首先我再次说明一下:我给的图只是一个参考,并不是说不管你什么岗位什么业务都要按照这个图来,你应该根据的工作背景和业务背景来整理适合自己的Java技能图谱。 Spring的学习程度:先看你们工作对Spring的要求,如果是核心技能,可以参考后面的链式学习法的细节分层方式来学习。 Unix和Linux:都可以,专栏只是一种学习形式,不影响你的学习计划,你可以根据自己的习惯来学习,例如我的习惯是非常成熟和通用的技术我一般看经典书籍,例如操作系统;新的或者偏实战的我就看专栏,例如推荐系统。 学习是否来得及:种一棵树最好的时机是10年前,其次是现在 :)

    24
  • Kvicii.Y
    2021-04-23
    我就想知道UNIX和LINUX这几本书那么厚,为什么看的这么快?

    作者回复: 这类书应该看三遍:第一遍通读,整体上掌握有哪些知识点,知识体系是什么;第二遍挑重点读,看看哪些是和自己工作强相关的,重点阅读和结合工作来理解;第三遍是复读,当有了踩坑或者落地及经验后,再来看对应的章节。 千万不要想着背住所有内容,事倍功半还没什么用。

    20
  • jss
    2021-01-19
    思考题: 作者在文中是不是有说明了 :-) 专项提升某个技能的持续时间既不能太短,也不能太长,一般建议在 6 个月左右。 时间太长的话,其他技能就来不及提升了,要是你 2 年时间都用来提升数据库,那操作系统怎么办?网络怎么办?所以 6 个月为一个周期,基本上刚刚好。 如果在P5阶段想一次性学完, 必然需要花费大量的时间, 造成其它同样重要的知识无法学习; 在学习的过程中, 我感觉很多知识都是需要再学习的; 随着知识的丰富, 看待问题的角度变得不一样了;
    展开

    作者回复: 文中只是说了单个持续时间不能太长也不能太短,思考题的答案不是这个。 就算你在P5阶段按照计划逐步来学,很多知识和技能没有积累,学也学不会,简单来说就是知识和技能都是迭代的,你在P5阶段就想学P9的内容,就算告诉你怎么学也学不会。

    13
  • 周平
    2021-01-09
    花6个月时间攻一项核心技能,进一步拆解成1~2个月,再拆解到每周,实在是厉害。 我现在的学习方法,只是在缺什么就补什么,并没有规划,只有坚持。这种闷头走路的方式,由于知识点是有限的,等学完的那一刻,突然发现,有走出山洞的感觉,那一刻的感觉非常美妙。 我现在的学习方式是这样的。虽然也在学,感觉如果有了规划,应该更高效一些。 后面会尝试一下。非常感谢。
    展开

    作者回复: 规划加坚持,效果会更加明显

    共 3 条评论
    12
  • 2021-01-26
    有多少个人明确自己十年以后还要做技术。

    作者回复: 所以真正成为大牛的人并没有那么多,你可能以为竞争很激烈,其实不一定 :)

    10
  • 逆风阿煜
    2021-04-28
    思考题:在什么阶段就把什么阶段的事情做好,欲速则不达。就像高考,分为基础强化冲刺阶段,如果基础还没有吃透想着我直接把冲刺的题做了,那冲刺的题就浪费了,刷冲刺题的时间也浪费了。 华仔,我其实有个焦虑点,就是比如我搜集了网络制定了计划:通读《现代操作系统》,但是我怎么知道通读完自己的水平呢?到底有没有提升?提升了多少?掌握程度怎么样? 如何制造让自己感到进步了的反馈呢?我每次就觉得看了,然后又觉得自己好像啥都没学...
    展开

    作者回复: 看看Play学习法,书中的案例和动手的地方都亲自实践一下,学习效果会好很多。 另外,纠正你一个错误的观点:总想着量化评估学习的效果!实际这是不可能的,你要相信看多了自然就有提升了,至于如何提高投入产出效率,请看“03 晋升原则”一讲的“价值原则”和“主动原则”。

    5
  • 寻觅
    2021-05-10
    最后,我大约花了 2 年的时间将 Linux、网络和 MySQL 三个重点技能从一无所知提升到高级的水平。 ---------------------- 请教一下华仔,从更具体来说,一个技能的所谓“高级”水平,是否可以与“等级”一样,有稍微更加细致的标准来衡量?

    作者回复: 你看一下04那一课末尾的基础,熟练,精通的解读

    2
  • 青见
    2021-01-29
    回答:在P5的时候你接触和所工作的事情,是在做熟练工;就像练功一样 欲速则不达。

    作者回复: 有道理

    2
  • 交叉路口
    2021-01-23
    华哥,我发现看过的东西经常忘,比如mysql看过了2-3遍,有些还是记不住,不太确定是方法不对还是自己记忆力下降😂

    作者回复: 请参考后面的Play&Teach学习法,就是为了应对你说的问题

    2
  • Monday
    2021-01-16
    再次拜读,认识到自己所处的位置

    作者回复: 加油 :)

    2
  • 杨杰
    2021-01-08
    学习JAVA知识是一个循序渐进,渐进明细的过程,需要一次次的迭代深入

    作者回复: 正解,就算你想学,一次就学完全部也是不现实的

    2
  • H
    2022-01-06
    我回顾一下我2021年的学习: 一月《MYSQL》 二月《Redis》 三月《RocketMQ》 中间4-9月之间实在太忙,没有专题学习 十月《Redis》 十一月《Redis》和《RocketMQ》 基本上,我每个月都会安排一门专门技术,但其实有一个问题,就是一个月没法很好地掌握一门技术,比如Redis,我一开始看的书籍是《Redis设计与实现》、《Redis运维与开发》,但是我现实中,虽然做的是JAVA开发,但是比较少用到Redis,因为业务实在没必要用Redis。因为学了后不练习,容易忘,当时学到的高级操作,也忘了。等到了十一月,我再次学习Redis的时候,我看的是极客时间的Redis,这一次,学得也比较浅。怎么说,感觉就是啥都点到为止,浅尝辄止,有点浪费时间的意思。目前我发现的问题是:一,学一门技术的周期,太短了,只有一个月,我一般是根据书籍或者专栏来学习的,感觉自己都没学透,就到下一个技术了。二,就是学了技术后,没运用到工作中,真的容易忘。 除了这2点,华仔还有什么建议吗?
    展开

    作者回复: 1. 学习不是为了一次就全部学会,学习是为了为将要出现的机会做好准备,比如说你学习redis,单纯靠看书看专栏,肯定不可能100%掌握的,但是你学了和别人没学,水平肯定有差异的; 2. 工作中暂时没用到,可以试试play学习法

    1
  • 阎晓静
    2021-04-15
    技能的成长也是阶梯式的,完成一个阶段才能在一个阶段更好的理解和学习。

    作者回复: 正解,好高骛远会适得其反

    1
  • Hesher
    2021-03-30
    三段分解思路很棒!个人其实用到了2、3,但忽略了1,导致曾经面试时才发现技能树点歪了,不符合市场需求,后面又赶紧去补,但岁月不饶人,被贴上年龄与能力不符的标签。 Java编程技术涉及的知识领域既有宽度也有深度,P5级别是增加开发熟练度的打基础阶段,冒进去增加宽度,必然会导致深度不足,而晋级P6最重要的是技术深度。所以参考架构设计三原则,P5阶段选择符合自己能力、精力、时间、工作需求的技术学习。当熟练度上去之后,再深入下去,不断演进,为晋级做准备。
    展开

    作者回复: 应该不是“架构设计三原则”,而是“晋升三原则”,是吧? 技能书点歪了,相当于方向错了,还是比较浪费的,所以三段分解法是环环相扣的。

    1
  • Harvey
    2021-01-08
    你好,华仔: 1.关于学什么这个话题,我的总结是要基于职场的技能体系和平常工作中的技能来确定要学什么。所以在学一个技能之前首先有一个该技能知识体系,然后把这个技能放在自己的职场体系中。至于怎么建立一个技能框架也需要自己花点时间研究,比如 用快速阅读 经典书籍的目录、技术官网。 2.基于知识体系和自己的环境,在制定学习目标。既然是目标,可以参考SMART和OKR的原则指导。 3.如果根据SMART的原则制定的目标,那么接下来就是任务分解,对于任务就是具体的行动,任务也可以参照SMART原则指导。分解的原则有:可衡量、时间限制、具体、阶梯(例如第一阶段入门,第二阶段熟练,第三阶段精通)等。 本节收获: 1.一段时间内只做一两件事情可以提升专注度,且可以巩固自己的记忆和提升理解力,避免混乱。 2.任务的时间不宜过长6个月左右。当然时间不要太短否则掌握深度不够,导致理解和记忆不足。太长也不行,避免时间和精力的过多损耗。可以把6个月当做一个标尺,灵活制定。 3.目标时间的分解月,周,日。比如6个月 每两个月可以设置一个里程碑,同时也可以给自己一个奖励 比如电子产品 、一场娱乐等。 4.目标虽然制定了,但执行才是真正的困难,也要及时更新你的目标 5.如果目标被打断我认为这也是难点,有可能一段时间很忙,比如10天。我想多数人可能就放弃了。为了避免这样的事情,可以事先给自己找一个支持系统可以是一个群,一个人。 不知道华仔怎么应对被长期打断的这种情况? 课程总结三段分解法:等级、技能、行动三个阶段,每个阶段又分目的,方法,结果。首先根据等级来分解当下需要提升的技能,在把技能细分成知识和行动,这里的行动应该包括学习书本知识,还要练习。
    展开

    作者回复: 即使再忙,每天都坚持,哪怕10分钟也可以,这样就能保持状态,不要小看10分钟,能看不少内容

    共 2 条评论
    2
  • 小祺
    2021-01-08
    时间就像英雄的技能点,不要全点在一个技能上,不然其它技能的技能点就不够了…

    作者回复: 如果你一定要加在这个技能点上,能提升上去么?

    1
  • 怀揣梦想的学渣
    2022-07-05
    通读后再细读,对我很有用。一开始就细读,会让自己头晕,通读一遍,了解目录结构,了解整体框架,然后再逐个了解,思路很清晰,学习接受也快。

    作者回复: 好书读三遍

    1
  • Geek_ef076f
    2022-03-31
    华仔,你好。我在一个互联网大厂工作,职级相当于阿里的p5,自己看了一些技术类的书籍,但是工作中基本用不了那么深,多数业务场景都是会用就行,然后长时间不用就又白看了,很痛苦,这个要怎么解决

    作者回复: 找个流行的开源的系统认真钻研,看设计方案,看原理,看源码;另外,P5把基础打好:操作系统、网络、编程语言、数据库、面向对象这几个。

    共 2 条评论
  • KK
    2022-03-10
    为什么不在 P5 的时候就安排时间全部学完,彻底掌握这项技术呢? 1 学透可能需要非常长的时间, 其他的技能就没有时间来提升. 2 学习需要反馈: 没有足够的实践场景, 要学会近乎不可能.

    作者回复: 对的,知行合一,光学不实践是不行的