晋升系列4:学习方法

每一个成功的人,都是从底层开始打怪,不断的总结经验,一步一步打上来的。在这个过程中需要坚持、总结方法论。

对一件事情长久坚持的人其实比较少,在坚持的人中,不断的总结优化的更少,所以最终达到高级别的人非常少。对于普通人而言,只要肯不断的坚持,已经能够在某个领域(公司、学校)崭露头角了。

特别喜欢王国维《人间词话》提出的治学方法:古今之成大事业、大学问者,必经过三种之境界

  1. "昨夜西风凋碧树,独上高楼,望尽天涯路" 此第一境也;
  • 做学问成大事业者,首先要有执着的追求,登高望远,瞰察路径,明确目标与方向,了解事物的概貌;也要能够忍受的了孤独寂寞
  1. " 衣带渐宽终不悔,为伊消得人憔悴" 此第二境也;
  • 以此两句来比喻成大事业、大学问者,不是轻而易举,随便可得的,必须坚定不移,经过一番辛勤劳动,废寝忘食,孜孜以求,直至人瘦带宽也不后悔
  1. " 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处"此第三境也;
  • 做学问、成大事业者,要达到第三境界,必须有专注的精神,反复追寻、研究,下足功夫,自然会豁然贯通,有所发现,有所发明,就能够从必然王国进入自由王国

一、学习方法大纲

  1. **时间从哪里来?**如果没有足够的时间投入,再好的理论也只是纸上谈兵。
  • 尊重10000 小时定律,用海绵学习法找时间
  1. **学什么?**找到正确的学习方向,明确了学习的目标,才能做到有的放矢。
  • 用三段分解法,将 10000 小时逐级分解,最终落实到可以实施的各项学习行动。
  1. **怎么学?**不同的学习目的应该有不同的学习方法,保证学习的投入产出比。
  • 链式学习法:适合提升技术深度,通过自顶向下逐步深入的方式,将关联技术逐一掌握。
  • 比较学习法:适合提升技术宽度,通过比较相似的知识或者技能,全面掌握单个领域的技术。
  • 环式学习法:适合提升技术广度,通过学习业务闭环流程中相关技术,全面掌握多个领域的技术。
  1. **怎么保证学习效果?**如何解决"学了用不上,学了就忘"两个常见影响学习效果的问题。
  • Play 学习法:可以用来解决工作中暂时没有实践机会的问题,学以致"玩",通过"玩耍"的方式来应用。

  • Teach 学习法:可以用来解决学得不深的问题,教学相长,通过"教学"的方式来加深理解。

二、时间从哪里来?

2.1时间的重要性

  1. 成为某个领域的专家,需要花费 10 年时间。

  2. 5000 + 5000 不等于 10000 。10000 小时定律所说的"成功"或者"成为专家",是指在某一个领域,而不是所有领域一通百通。所以专业聚焦对于 10000 小时定律的落地非常关键。看看自己所在的领域是哪个?

  3. 工作时间外也要主动提升。10000 个小时相当于连续 10 年平均每天投入 3 个小时,但重复的工作不算,要算有效提升时间。原因在于,工作中的很多时间都是在做一些重复的事情,只是让已经掌握的技能变得更熟练而已,边际效益是越来越低的。除了上班时间外,尽量保证每天能够有 1 个小时的主动提升时间。

2.2海绵学习法

鲁迅的名言------"时间就像海绵里的水,只要愿意挤,总还是有的。"海绵学习法的关键就是"挤时间"。它既不需要我们放弃所有的休闲娱乐,也不需要在累成狗的时候强行"打鸡血"逼着自己去学,而是让我们通过长期坚持的方式,达到"积少成多、聚沙成塔"的效果。

可以按照自己的情况,早起30分钟、通勤的时候学习、上班的前30分钟、睡前30分钟、周末找2个小时用来学习。

2.3一些感想

感觉很多事情都是相通的。

论语:"达巷党人曰:"大哉孔子!博学而无所成名。"子闻之,谓门弟子曰:"吾何执?执御乎?执射乎?吾执御矣。"

达巷这个地方有人说:"孔子真伟大啊!他学问渊博,因而不能以某一方面的专长来称赞他。"孔子听说了,对他的学生说:"我要专长于哪个方面呢?驾车呢?还是射箭呢?我还是驾车吧。"

孔子为什么这么回答?因为孔子怕弟子「专骛为博学」,好高骛远,不脚踏实地从一门学起,不能专精就不能成就。要学,一定要一门深入,一门学透了,再学第二门,这个是学的方法,否则终无所能,学不成。

对于海绵学习法,其实我一般也是通勤的时候看书、早晨到了公司看会、中午午休前看一下、睡前看一会、周末看一会,这样每年能看七八本书、写几十篇文章。其实30分钟,能看好多页,一本书,很快就能看完。而且我比较喜欢这种学习方法,我发现让我持续长时间看书反而效果不好,记不太住,相反单独拎出来的这些时间我能记忆很深刻。

大家可以根据自己的具体情况设置方案,真的是聚少成多。当然,最重要的还是意志力

三、学什么?

坚持十年达成目标很难,但坚持一两年达成一个小目标,然后十年达成大目标就要容易一点。

我们可以使用三段分解法,带你把"10 年成为大牛"这个大目标,分解成一个个可以在短期内达成的小目标。

3.1分解等级

先确定目标,然后确定为了达成目标可以分为哪些阶段。如在阿里如果想成为P9,那可以分为P5~P8好几个小目标。如果为了赚1个小目标,可以设置每年赚1000W!!!

3.2分解技能

从当前等级到达下一个等级需要哪些技能?要实现这一点需要两个前提条件

  1. 知道下一个等级的要求
  2. 知道具体对应哪些技能

这两个条件需要自己去进行搜索、咨询他人完成。其实在我们学习的过程中,可以维护一个技能树,能够更好的帮助我们了解技能范围。然后对这些技能做分解

  1. 分解的方法很简单,**哪里不懂补哪里!**比如你感觉自己现在的数据库水平很一般,只会写 CRUD 语句,其他的东西都不懂,那么你就专攻数据库这一部分,通过一段时间的专项提升来拿下这个技能。
  2. **专项提升某个技能的持续时间既不能太短,也不能太长,一般建议在 6 个月左右。**时间太短,容易陷入为了"完成任务"而去学的误区,没有真正得到有效提升。时间太长的话,其他技能就来不及提升了。

3.3分解"行动"

第二段分解之后,我们得到了 6 个月左右的技能提升目标,接下来要做的,就是通过第三段分解,将技能提升目标分解为具体要做的事情,然后按照计划执行。

那么,怎样才能提升呢?你可以上网搜索(知乎是个好地方),也可以去问有经验的朋友,把二段目标细化为 1~2 个月的三段目标。

如作者确定了"提升 Linux 水平":

  1. 1.5 个月:通读《UNIX 环境高级编程》
  2. 1.5 个月:通读《Linux 系统编程》
  3. 2 个月:通读《UNIX 网络编程 卷 1》
  4. 1 个月:Linux 常用命令实战,包括 tcpdump、ps 和 top 等

如你想提升数据库水平

  1. 1.5个月:通读《MySQL技术内幕:InnoDB存储引擎》
  2. 1.5个月:精读《MySQL实战45讲》
  3. 继续提升:《高性能MySQL》、《MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践》、源码

当然,大家要是想再狠一点,可以再细分到周。

3.4一些感想

有些人不需要了解这些方法,在生活中自然就按照这个方法在做事情了。我感觉我媳妇就是这样的,会给自己立个很大的目标,然后不断拆解为子目标,然后找时间行动。她是搞量化基金的,CFA持证人蛮有含金量,她就想考。这个证需要考三次,一级一级的考。她就买了对应技能的书,每天抽时间看,一两年考一次,已经考过二级了。

我觉得可能对于很多人来说,主要是没有设立十年的目标吧,没有去细细的考虑过这个问题,这应该对应人间词话的第一重境界。

四、怎么学?

一般来说,P5/P6/P7 主要提升技术深度 ,P7/P8 主要提升技术宽度 ,P8/P9 主要提升技术广度。我们怎么提升自己的技术深度、技术宽度、技术广度?

技术宽度和技术广度有点容易误解,宽度是相同领域的,如redis和memcache、mysql和mongodb等。技术广度是跨领域的,如前端、后端等。

4.1提升技术深度

最好使用链式学习法。所谓"链式学习法",顾名思义,就是学习的过程好像从水里拉起一根链条,拉出一环后面又接着一环,最后将整个链条全部拉出来。

其实在面试和晋升的时候都会遇到,从一个问题开始,不断的往下问,看看这个人学到了什么程度。

链式学习法能够促使我们主动提升,还能将知识和体系系统化。

  1. 明确一项技术的深度可以分为哪些层

第一种是自顶向下、层层关联,打通一项技术的领域分层。

第二种是由表及里、层层深入,打通一项技术的细节分层。


  1. 明确你自己要学到哪一层。学得太浅,达不到提升深度的目的;学得太深,又会耗费太多的时间和精力。按照自己的当前情况学习。
  2. 明确每一层应该怎么学。总的原则是,在上层投入更多时间,更关注细节和熟练使用,在下层投入相对少的时间,更加关注原理和简单应用。

4.2提升技术宽度

最好使用比较学习法 。所谓比较学习法,就是横向比较同一个领域中类似的技术,梳理它们异同,分析它们各自的优缺点和适用场景。

可以回答Why的问题,如为什么用redis不用memcache。

比较学习法能够学得快、学的全、学的深。

比较学习法的具体操作步骤如下:

  1. 先用链式学习法掌握某个领域的一项技术,将这个领域的关键技术点整理成表格。

  2. 基于整理好的技术点,学习这个领域的另一项技术,将它们在技术点上的差异整理成思维导图。

  3. 找出差异较大的技术点,将背后的原理和对应用场景的影响整理成表格。

以redis和memcache为例

4.3提升技术广度

最好使用环式学习法。所谓环式学习法,就是构建一个完整的闭环过程,将多个领域的"鱼"一网打尽。

技术上常见的闭环是功能环 ,代表某个功能的处理过程。环式学习法更加适合业务系统相关的技术人员

  1. 就是把闭环画出来。具体的画法是将完整的闭环分为几个关键的环节,然后标出每个环节的关键内容。
  2. 就是由近及远,逐步攻克闭环上的各个节点。根据自己的情况,选择合适的学习顺序。

环式学习法能够培养全局视野、避免盲目的广撒网却捞不到鱼。

4.4一些感想

自己写了好多文章,应该按照链式学习法、比较学习法、环式学习法给系统梳理一下,把点变成线、线变成面。

五、怎么保证学习效果?

大家经常会遇到学了就忘的情况。

5.1Play学习法

从科学学习的角度来看,学以致用的效果是最好的,光学不练学得不深,时间一长可能就忘记了。

所谓 Play 学习法,就是**通过模拟实践中的场景来进行学习和训练。**Play 学习法就是主动创造 Do 的机会来提升自己对新技能的理解和记忆。

它的做法比较简单,主要分为三个步骤:

  1. 按照链式学习法的方式学习某项技术。
  2. 列举常见的场景,搭建模拟场景。
  3. 在模拟场景进行测试、体验和练习。

比如为了验证 ZooKeeper 的集群选举功能,模拟的时候可以采取拔网线、直接杀进程、删除存储文件等各种非常规的手段。

5.2Tech学习法

很多人都有类似的经历:自己学习某项技术的时候感觉学的差不多了,甚至都已经在工作中具体实践了,但是一旦跟别人讨论,或者在晋升的时候面对评委的提问,又会感觉很多东西都没有完全掌握。这种现象背后的原因是,每个人的知识和技能都是有一定局限性的,不同的人理解会不一样,关注点会不一样,所以在讨论或者 PK 的时候自然会遇到各种各样的问题。就算你有实践机会,也不太可能一两次就把一项技术相关的知识全部用到,总会有认知的盲区存在。

所谓 Teach 学习法,就是通过教别人来提升自己

Teach 学习法包括两种形式,写作和培训。

  1. 写作能帮我们系统的整理技术体系。确实是这样的,写的时候,得思考整体的结构是怎样的。
  2. 写作有助于了解细节。确实是这样的,写的时候,经常会发现这个地方好像不太懂或者这个地方有问题,需要查一下。
  3. 培训需要写培训材料,能够锻炼总结、归纳、提炼的能力;让我们在有限时间内讲清楚一个主题,会强迫我们思考和主题相关的各种信息和可能的问题;和听众交流,能加深理解和临场反映能力。

总结

好的学习方法确实事半功倍,感觉自己以前花了很多时间,虽然有进步,但方法掌握的不好,进步的速度还是太慢了。好在确实是有积累的,现在需要把积累的这些内容,按照学习方法重新梳理一下。今后的学习内容,都向新的学习方法贴合。

上面这些学习方法是相辅相成的,你可以根据你当前的级别和实际工作内容,把它们组合起来使用,具体的方式如下:

第一步,无论你当前是什么级别,先用"三段分解法"来规划你的学习目标和计划。

第二步,使用"海绵学习法"来找到你可以用于学习的时间。

第三步,根据学习目标采取相应的学习方法。

  • 如果你是 Java 后端 P5/P6/P7 级别,你的技术提升以技术深度为主,你可以采取"链式学习法"来学习 MySQL 以提升技术深度;
  • 如果你是 P7/P8 级别,除了技术深度外,还需要提升技术宽度,你可以采取"比较学习法"来学PostgreSQL、MongoDB 和 Elasticsearch 等存储系统;
  • 如果你是 P8/P9 级别,你可以采用"环式学习法"来学习跨领域的技能,比如学习 vue、小程序和人工智能等业务闭环流程涉及的技术领域;
相关推荐
工一木子3 分钟前
【HeadFirst系列之HeadFirstJava】第16天之深入解析 Java 集合与泛型:高效管理数据的终极指南!(含代码实战)
java·集合·泛型
补三补四6 分钟前
Yashan DB 实例管理
数据库·oracle
yqcoder31 分钟前
Express + MongoDB + multer 解决文件上传 originalname 中文乱码
数据库·mongodb·express
Yuanymoon42 分钟前
【由技及道】统一封装API返回结果后String返回报错文件解决原理--Spring 消息转换器的层次图解与规则说明【人工智障AI2077的开发问题日志002】
java·spring
听风说雨的人儿1 小时前
ES6 class的继承概念
java·前端·es6
l_tian_tian_1 小时前
JavaWeb——Mybatis、JDBC、数据库连接池、lombok
java·数据库·mybatis
臣妾写不来啊1 小时前
使用dify的api连接外部知识库,dify连接ragflow的知识库(附java代码)
java·开发语言·spring boot
m0_748247801 小时前
Python连接SQL SEVER数据库全流程
数据库·python·sql
深思慎考1 小时前
Linux——进程间通信初解(匿名管道与命名管道)
java·linux·服务器
盖盖衍上1 小时前
2-002:MySQL 索引的最左前缀匹配原则是什么?
android·数据库·mysql