本文主要记录笔者阅读前辈高人的“学习金字塔模型”后的感悟和思考。笔者方才大学二年级,没有足够的实践经验和认识来支撑我发表感悟,因此只能发表一些自己的学习过程中的拙见。

高人前辈经验丰富,如罗翔老师,其箴言看法往往如高山看海,需要我等反复咀嚼,反复回味。故作此博客进行记录学习,供自己回读,供大家参考。

前言

个人的成长离不开思维的培养,如何养成个人独有的思维模型和方法论,一直是我现阶段探索的重点。

我始终认为,我们不应该局限于眼前琐碎的事情,而应当从大局出发,从长远出发,培养和构建自己的成长体系和思维框架,对于想要从事IT行业的人更应当如此。为此,在这个阶段,我有意识地开始培养自己的写作、自我管理、演讲和实践等各项能力,开始尝试冥想,开始构建自己的思维体系和知识体系,虽然现在仍旧一无所成,但我仍愿意为此付诸我的精力,而后静待花开。

俗话说的好,没有渐修,何来顿悟?

学习金字塔概况

学习的过程可以分为六个阶段:

  1. 不求甚解阶段:目标是了解概念模型。
  2. 找寻主干阶段:目标是找到知识的核心部分。
  3. 达成最小目标阶段:目标是做成一些demo。
  4. 构建完整知识树阶段:目标是完善整个相关知识体系。
  5. 可视化迭代学习计划阶段:将上阶段的知识结构分解到多个迭代周期。
  6. 突破关键临界点,达成从量变到质变的阶段。

两个重要的学习观

实践

人们永远都不可能通过思考养成一种实践习惯,而只能通过实践来养成新的思考方式

我们过去以及未来的所有方法论,肯定都是通过大量实践后的不断复盘和总结才得到的。在高中,我们通过不断的试错和复盘,形成了自己所谓的“方法论”,在大学,我们也将通过四年的时间,形成我们自己的方法论和个人的成长体系,这些都离不开实践。

我们绝不能止于思考,止于听课,止于看书,止于做题。从社科研究的角度来讲,我们要做研究、做调研、去走访、去调查以及去倾听;从工科的角度来讲,我们要动手,将学到的技术用于完成一个个小demo项目,等到以后要真正做大项目的时候,无非是这些小demo的组合和建构罢了。

迭代

增量是堆砌,迭代是雕琢。

不管是在先阶段的研究,还是在毕业后的工作阶段,当leader派发了一个任务后,我们不能以“我已经做了这么多”进行回应,因为这样leader实际上是无法知道你的实际进度和效果到底如何的,万一等你一点一点雕琢出来后,和实际的需求不一样呢,那是一件多么浪费时间和精力的事情啊!相反,我们应该做的是先做一个整体demo,再次基础上不断迭代优化改进,这样才能更好地和需求方进行沟通,及时调整方向和微调细节。

其实我过去的学习方式,都是走着“增量模式”,只有当被DDL所push的时候,才会不情愿的进入“迭代”。现在回过头看,我愿意称之为“为偷懒而存在的完美主义”,你通过“精雕细作”麻痹自己去正视问题,而是聚焦于一些小细节上,最终很大程度上会导致项目在预期时间内无法达到效果。

金字塔——不求甚解阶段

不求甚解,即黑盒思维。当我们刚开始学习某个领域的知识的时候,我们需要不求甚解的思维方式。

这种黑盒思维可以划分为两种,一种是动态思维,一种是静态思维。其目的是:从概念上明白

所谓动态思维就是说,从问题A能够到达最终解决问题的方案B,我们只需要知道这个方案能解决问题。所谓的静态的思维方式,是说我们知道一个东西他能够实现什么功能,能够提供什么能力,刚开始我们不需要关心他是如何实现的,他的内部原理是什么。

概念模型

概念模型是我们认知事物核心框架和基础逻辑的自我可理解的最简模型。强调一是对事物形成基础认知,二是最简单和最容易理解的模型。

比如说,我们要给一个不是计算机专业的人,不是研究Web开发的人讲明白一个网站的工作原理,我们就要保证所讲解概念没有多余的专业术语,而是能够对应到TA的认知领域。在《写作是一门手艺》中,作者也强调了这个点,对不同人讲解,要用他们听得懂的话术,认清楚他们的需求。而对于我们自己,刚开始肯定只能用我们已有的知识去尝试建构一个概念模型,用来理解这个新知识点。

金字塔——找寻主干阶段

找寻主干,我们在这个阶段开始打开这个黑盒。首先我们需要对黑盒进行静态拆解,先当于对这个黑盒的每个部分一个粗粒度的拆分,从整体架构的角度去理解它。这个阶段就不是从概念上明白,而是从原理上明白

比如开发一个Web项目的后端,这个静态拆解就是我们清晰每部分的功能,如OSS、数据库、服务层、网关......

动态拆解:我们要某个功能的流程是怎么走的,比如一个请求发过来,SpringSecurity是如何对这个请求进行权限校验和权限管理的,这就是一个动态过程。

注意,不管是第一阶段的不求甚解,从概念上明白,还是第二阶段的找寻主干去从原理上明白,都仍然是一个理论层面

金字塔——达成最小目标阶段

敏于行,而讷于言。

完成第一个阶段和第二段阶段的理论学习后,我们就要快速地、迫不及待地去实证这套理论,从而树立信心。比如开发一个前端网站,它可以拆分成UI界面、事件处理、发送请求、渲染数据等等,我们以发送请求为例,当我们研究清楚了axios的封装后,我们就可以自己写一个CRUD的小demo对这部分内容进行实证,从而下次项目有需求的时候,我们就非常有信心去实现这个需求了。

Demo的作用不在于其实用价值,而在于对整个系统、整个理论、整个框架各个部分之间的协同的基本了解。没有场景,就自己构想一个场景,去实现这个过程。

需要注意的是,这个阶段我们可能会按照别人的文章和指导去完成了一个demo,但这还不够,我们还需要自己重新去反刍,去搞清楚你写的东西的逻辑搞明白。比如前端axios发送请求,就需要把一个请求从拦截到发出去,再到接收,到响应,都搞明白,把这些搞明白才叫做原理上证误

从第一个阶段到第三个阶段,即所谓的闻、修、悟。这个时候通过这些demo的完成,我们会有一种小成就感,已经能看到效果并理解一些原理了。

构造完整知识树

会当凌绝顶,一览众山小。

路漫漫其修远兮。

我们要追求真正的提升,就要构造完整的知识树。正如苏格拉底所说:“我唯一知道的就是我一无所知。”对于程序员而言,如何能够摆脱CRUD,能够得到更加广阔的发展,就取决于你是否有深度钻研的精神。

我们内心要时刻清楚,任何一个知识领域,任何一个研究领域,任何一个业务领域,都是学无止境的!当我们经过了前面三个阶段后,这个阶段,我们要大量泛读,在业务领域,我们要大量阅读博客和文章,大量搜集资料,大量阅读相关代码,甚至购买相关书籍进行学习;在研究领域也是如此,写论文前不得先读个几十篇起步,才能把文献综述做好?

前面是在关键部分,核心部分上对知识点的掌握,到这个阶段是在一种全局上的明白和全局上的证悟。例如如果想走后端开发,就得对后端开发这颗大树进行一个梳理,包括编程语言、数据库、操作系统和计算机网络、Web框架和Web服务器、缓存和消息队列、安全和性能优化、分布式系统和微服务架构等等。

归类+抽象的能力:将零散的知识点进行归类为知识结构,自己能够更加理解,也能够更好地讲解给别人听。从知识到知识结构,会有一个单维度到多维度的过程。任何知识体系都存在动态和静态两个维度,两个关键维护一交叉才能构成完成的知识体系。动态维度可以理解为时间维度,静态维度可以理解为横向的维度。

金字塔——迭代计划

经过上个阶段的学习,我们会画出一颗苍天大树。这时候我们不需要慌张,而是要将上个阶段梳理的知识结构分解到多个迭代周期内去学习和迭代。同时,我们也要可视化自己的学习进度,静态结果可视,动态进度可视。

**知识树的迭代和演进始终是以解决问题为驱动的!面向问题,面向需求不断迭代价值。**刚开始,这是一颗知识结构,第二轮迭代时是解决核心主干(如开发中的SSH框架),第三轮迭代时就是专业岗位驱动(如后端开发的深入扩展),这是知识树某个主干的第二三层学完。后期知识树的演进叫做问题驱动,为了解决问题而去将知识树的某个分支弄懂。

金字塔——关键点突破

以终为始

渐修和顿悟:渐修是顿悟的实践,顿悟是渐修的启发。顿悟仅仅是下一次迭代的起点。

积累方法论和模式

  • 方法论:解决一个领域问题的方法、工具、技术和流程的集合。
  • 模式:形成适合自己的特定场景下解决特定问题的实践经验。
    • 适合自己
    • 针对特定的环境和场景

关键点突破的两个途径

  • 途径1:内化。什么是内化:不断进行知识的串接和融会贯通,条理化、结构化。
  • 途径2:与高人对话。但需要注意的是,高人点拨必须建立在你原来已经建立了大量的零散的知识点,高人是点拨,不是给你讲解知识点!

后记

本文所讲述的“学习金字塔”方法论可谓总结得精辟在理,我将在本学期正在做的几个项目中,实践和咀嚼这部分的思想精华,让学习更加高效,让思维更加通透。