指导原则:10000 小时定律
找时间:海绵学习法
早晨 30 分钟, 通勤 2 小时, 上班第一个 30 分钟, 睡前 30 分钟, 周末 2 小时,
学什么:三段分解法
第一段:分解“等级”
以跨越式职级为例,从 P5 到 P9,你经历的等级包括以下这些:
P5,职场新手,工作 1 ~ 3 年,需要别人带你完成任务。
P6,项目能手,工作 3 ~ 5 年,能够独立完成任务。
P7,团队专家,工作 4 ~ 8 年,能够带领小团队实现目标。
P8,领域专家,工作 8 年以上,能够带领多个团队实现目标。
P9,业务导演,工作 10 年以上,能够导演成熟落地的作品。
第二段:分解“技能”。专项提升某个技能的持续时间既不能太短,也不能太长,一般建议在 6 个月左右。
2021.01 ~ 2021.06:提升数据库水平
2021.01 ~ 2021.06:提升 Linux 水平
2021.06 ~ 2021.12:提升网络和网络编程水平
第三段:分解“行动”
1.5 个月:通读《UNIX 环境高级编程》
1.5 个月:通读《Linux 系统编程》
2 个月:通读《UNIX 网络编程 卷 1》
1 个月:Linux 常用命令实战,包括 tcpdump、ps 和 top 等
把 6 个月的技能提升目标进一步分解成 1 ~ 2 个月的具体行动目标之后,实施起来就简单多了。我每 1 ~ 2 个月只需要专注做好一件事,每次完成后都很有成就感,既感觉自己的水平有了提升,又佩服自己能够坚持按计划完成任务。这样的双重激励让我更有动力去完成下一个目标。
UNIX 和 LINUX 这几本书那么厚,为什么看的这么快?
作者回复: 这类书应该看三遍:第一遍通读,整体上掌握有哪些知识点,知识体系是什么;第二遍挑重点读,看看哪些是和自己工作强相关的,重点阅读和结合工作来理解;第三遍是复读,当有了踩坑或者落地及经验后,再来看对应的章节。
一般来说,P5/P6/P7 主要提升技术深度,P7/P8 主要提升技术宽度,P8/P9 主要提升技术广度。
怎么学:链式 & 环式 & 比较学习法
链式学习法适合提升技术深度,通过自顶向下逐步深入的方式,将关联技术逐一掌握。
链式学习法的第一步,就是要明确一项技术的深度可以分为哪些层。
画出了两张图之后,第二步就是要明确你自己要学到哪一层。
确定学到哪一层之后,第三步就是要明确每一层应该怎么学。
例如,如果我们要在 Linux 平台上基于 Netty 开发并发 10 万连接的高性能服务器,既要深入掌握 Netty 的技术细节,又要深度掌握领域深度相关的技术,包括:
Netty 技术细节:需要设置 Netty 的相关参数(ChannelOption.SO_BACKLOG,ChannelOption.TCP_NODELAY,ChannelOption.SO_REUSEADDR 等)。
Java 网络编程:调试的时候需要知道 Java 的网络编程 API 等等。
Linux 网络工具:需要使用 Linux 网络工具定位问题。
Linux 操作系统配置:需要修改 Linux 的最大文件句柄数、需要优化 Linux 的 TCP/IP 参数(net.ipv4.tcp_tw_reuse,net.ipv4.tcp_keepalive_time 等)。
比较学习法适合提升技术宽度,通过比较相似的知识或者技能,全面掌握单个领域的技术。
先用链式学习法掌握某个领域的一项技术,将这个领域的关键技术点整理成表格。
基于整理好的技术点,学习这个领域的另一项技术,将它们在技术点上的差异整理成思维导图。
找出差异较大的技术点,将背后的原理和对应用场景的影响整理成表格。
环式学习法适合提升技术广度,通过学习业务闭环流程中相关技术,全面掌握多个领域的技术。
构建一个完整的闭环过程,将多个领域的“鱼”一网打尽。
环式学习法更加适合业务系统相关的技术人员,而不太适合中间件(数据库、缓存、消息队列和服务中心等)相关的的技术人员,因为中间件的技术更加专注于深度和宽度,和具体的业务关系不大,对技术广度的要求并不高。
除了功能环以外,还有很多构建闭环的思路,比如业务上常见的“业务环”,它代表某个业务的处理步骤,以及管理上常见的“流程环”,它代表某件事情的处理步骤。
关于学习方法,最近看过一本书,书中有些学习方法别具一格,颠覆认知,书名——《认知天性:让学习变得轻而易举的心理学规律》。
这本书介绍了各种高效学习的方法,其中有几种方法,比较颠覆认知,书中认为学习时,应该有间隔的进行,而非集中式的重复进行,这样带来的好处是:能带来更长久的记忆,也就是长期记忆,而集中式练习则是短期记忆。花十分钟记忆十个单词所留存的记忆,不如分两次五分钟记忆十个单词所留存的记忆来得深刻。理由是:长期记忆的形成,需要有个巩固的过程,可能是数小时,可能是数天,在这期间,记忆痕迹得到加深,所学的新知识与旧知识建立连接,带来稳固的长期记忆,因此不要频繁的进行集中式学习,而是有间隔的进行,频繁的集中练习只会带来短期记忆,有间隔的学习所耗费的精力远大于频繁的重复式学习,使用这种方式,学习起来也更加困难,但也不容易遗忘。理论上来说,遗忘的越多,重新回忆起来的难度越大,但所保持的效果越持久,不过,还是不要等到所学知识遗忘的差不多了后再去重新学习,那样的话,你基本回忆不起来,只能重新从头开始,得不偿失,等到所学知识有点儿遗忘再去学会比较好。
书中建议:学习知识或技能时,通过自我检测的方式,代替重复学习,并且有间隔地进行自测,就拿学习算法来说,不要一遍接一遍地重复去学,而应该在学习完某一算法后,通过自测的方式来逼迫自己的大脑去检索所学,拒绝机械式的重复重复再重复,这样所学的知识会更加稳固,留存的记忆更持久,书中还提到:自我检测后的延迟反馈会进一步加强学习效果,也就是在进行自测后,不要立马查看答案,而是应该间隔一段时间再查看。
我最近刚看完这本书,里面提到的学习方法我自己其实一直就是这样做的。我会 3 ~ 4 个主题同时进行学习,每个主题每次都学 30 分钟左右,一段时间后又回过头来复习加深一下。 例如我最近同时在学:ClickHouse、Redis 专栏、推荐系统专栏、朝鲜战争、认知天性。
保证效果:Play 学习法、Teach 学习法
第一个常见困难是,如果平时不学,真正要用的时候又来不及临时学;但如果平时学了,可能要等很久才能在工作找到的实践机会,到时候技术可能都生疏了。
第二个常见的困难是,学完之后感觉学得不深,跟别人讨论的时候,或者在晋升答辩环节被问到的时候,就发现很多东西明明学过,却说不出个所以然来。
针对这两个常见影响学习效果的问题,我通过学习和实践,归纳提炼出如下两种学习方法:
Play 学习法可以用来解决工作中暂时没有实践机会的问题,学以致“玩”,通过“玩耍”的方式来应用。
所谓 Play 学习法,就是通过模拟实践中的场景来进行学习和训练。
比如为了验证 ZooKeeper 的集群选举功能,模拟的时候可以采取拔网线、直接杀进程、删除存储文件等各种非常规的手段。
Teach 学习法可以用来解决学得不深的问题,教学相长,通过“教学”的方式来加深理解。
所谓 Teach 学习法,就是通过教别人来提升自己。
写作,写作有助于系统地整理技术体系。**写作有助于了解细节。**
培训,培训材料的准备过程就是一个写作的过程,
首先,要完成一场培训,你需要写培训材料。培训材料的准备过程就是一个写作的过程,写 PPT 这类培训材料,跟写 Word 文档比起来,也更能够锻炼你的总结、归纳和提炼的能力。写作带给你的帮助,培训也可以提供。
其次,培训需要你在有限的时间内讲清楚一个主题,你必须对这个主题掌握到一定的程度才可以做到,这就会强迫你去思考跟主题有关的各种信息和可能的问题;
另外,培训过程中,你会和听众进行各种交流,这些交流本身既能够促进你对培训内容的理解,也能够锻炼你的临场反应能力。
除了以上这些作用,培训还有一个好处是其他所有学习方法都不具备的,那就是为晋升答辩积累现场经验。
很多人晋升答辩失败,临场表现差也是一个重要的原因,比如说话紧张,讲 PPT 的时候忘词,问答的时候没有听明白评委问题就急于回答等等。
有的人归结于自己天生口才不行,心理承压能力太差,其实没有那么严重,毕竟晋升答辩不是 TED 演讲,评委也不是来看脱口秀的。答辩的临场表现不过关,主要还是因为平时缺少训练。
我之前带团队的时候,对于手底下准备申请晋升的人,我基本上都会强制要求他们做几次培训。通过这种方式训练 3 ~ 4 次以后,他们就很少在答辩的时候出现因为表达和临场发挥的问题而失败了。就算还是有一点点紧张,但因为之前通过培训锻炼了心理素质,所以不会影响到答辩效果。
组合使用
如果你是 Java 后端 P5/P6/P7 级别,你的技术提升以技术深度为主,你可以采取“链式学习法”来学习 MySQL 以提升技术深度;
如果你是 P7/P8 级别,除了技术深度外,还需要提升技术宽度,你可以采取“比较学习法”来学习 PostgreSQL、MongoDB 和 Elasticsearch 等存储系统;
如果你是 P8/P9 级别,你可以采用“环式学习法”来学习跨领域的技能,比如学习 vue、小程序和人工智能等业务闭环流程涉及的技术领域。
最重要的就是保持长期学习的习惯,不一定非得每天都学习,可以一周 5 天。另外如果前期没有做过时间管理,先不要步子迈的太大,可以每天 30 分钟,到 1 小时在到 1.30 小时。
为什么我要花这么多时间去学习?人为什么要学习?
我发现,我看https://freegeektime.com/100064501/328367/ 评论中好多人超级努力挤时间的学习,也很有干劲,想多花时间学习技术知识。后来这个人的为什么学习的评论,让我离开了这种疯狂。我还是容易技术至上。
