文章目录

  • 一、问题
  • 二、解法
    • 1.测试前置法
    • 2、十步学习法
    • 3、系统学习
    • 4、举一反三
    • 4、总结和归纳
    • 5、实践出真知
    • 6、坚持不懈
  • 三、QA
    • 1、如何理解系统学习与快速掌握的问题?
  • 四、参考

一、问题

1、如何快速在某个领域从0到1?
2、如何快速解决一个未知问题?

二、解法

1.测试前置法

1.这门课/这本书的标题xx,我认为它应该主要是谈什么问题的?
2.关于这个问题,在学习之前,我知道些什么?
3. 关于这个主题,在学习之前,我的观点是什么?
4.接下来我要开始学习,我最想知道的、最想通过老师解决的问题是什么

5、在学一个新技术之前,你有必要先了解这门技术出现的意义。
这样,你才能更好地理解:它是应用到什么场景的?
与同类工具相比,它的优缺点是什么?
什么时候用它比其它工具好(或差)?
……至少理解了这些,你才好说自己是真正掌握了这个工具,否则只能说是浅尝辄止,半生不熟。

2、十步学习法

第一步,了解全局。
也就是了解你将要学习的主题及其全局,如果有相关主题的书,你可以大概浏览一下目录,然后看一下其中的介绍性章节就可以了。不用在这一步花费太多时间,毕竟,这一步的目的只是为了对你想学习的主题的相关内容有一个全局性的了解。

第二步,确定范围。
也就是明确你到底要学什么。打个比方,在任何项目中,明确项目的范围都是至关重要的,学习并没有什么不同。在学习的过程中,大家很容易犯的一个错误,就是试图一下子掌握所有内容,结果把自己搞得不堪重负。比如,人工智能是一个大的主题,但你不可能在有限的时间内学会关于人工智能技术的一切。所以要明确自己的学习范围,比如先学习自然语言处理,再尝试构建一个简单的问题系统。这样就把 AI 这个宏大的主题,具体化了,也更容易上手入门。我们的精力、注意力和时间是有限的,一次往往只能高效学习一样东西,你可以学完这个主题之后再去攻克别的分支领域。

第三步,定义目标。
这一点我们在之前的 OKR 文章里讲过,不再复述。一个明确的、没有歧义的,可量化的目标,有助于我们快速达成效果,也更容易评估。

第四步,寻找资源。
这一步的关键是尽可能通过多种渠道和方式获取更多主题相关的资源,比如书籍、项目文档、源代码,极客时间的课程、电子书等等,除此之外,还可以把具备该领域经验的同事和朋友列出来,以备不时之用。在这一阶段,你不用去考虑这些资源的质量,后面的步骤会有涉及。

第五步,创建学习计划。
学习计划非常重要,好的计划可以为你指出正确的学习路径,以及路径中那些重要的地标。如果你不知道如何制定学习计划,可以看看别人是怎么做的。比如,你在第四步中收集了很多书籍、专栏等素材,你可以看看那些作者是如何规划自己的整体内容的,他们的目录是怎么展开的。如果有好几位作者都把内容拆分成类似的模块和顺序,那你就可以参照这种方式来制定自己的学习计划。

第六步,筛选资源。
通过前面两步,你已经知道自己要学什么,以什么顺序学,接下来就需要对你找到的资源进行筛选,挑选出其中最有价值的几个,来帮助自己完成学习任务。注意,很多资源的质量并不高,还有很多资源间的大部分内容其实是重复的,你需要自己筛选。

第七步,开始学习,浅尝辄耻。
现在你可以真正开始学习了。在这一步中,你的目标是先获取能够动手实践的信息。比如,对于编程语言或者框架类的技术,能够创建一个“Hello,World!”程序,或者设置自己的开发环境就好,并不用急着掌握更多更深的知识。不要急着消化你学习计划中列出的所有资源,学习的关键在于循序渐进。

第八步,动手操作,边玩边学。
大多数人会试图通过读书或观看视频来掌握某个主题,他们会提前吸收很多信息,然后再付诸实践。但边看边实践是更好的做法。在探索和实践的过程中,你的大脑会自然地产生各种问题:它是如何工作的?如果我这么做,会发生什么?我该如何解决这个问题?这些问题会引导着你走向真正重要的方向,而当你自己找到问题正确答案的时候,你记得的东西会比你光看书要多得多。如果你正在学习一门新的技术语言,那你可以先试着创建一个小项目,在实践的过程中学习。

第九步,全面掌握,学以致用。
好奇心是学习的原动力,在实践的过程中,你会发现不断有问题需要你去解决。这时就需要你利用之前收集到的所有资料,进行深入的学习,然后解答这些问题,同时学习新的东西。这时候,阅读书籍、观看视频、与人交流、再次实践都是必要手段。带着问题学习,更能让你沉浸在学习材料中,尽可能的汲取知识。另外,记得要把自己正在学习的内容和之前设定的最终目标关联起来。

第十步,乐为人师,融会贯通。
要想深入掌握一门学问并融会贯通,学完了并教会别人是最好的办法。所谓教学相长,就是这个道理。

3、系统学习

在学习某个技术的时候,我除了会用到上篇文章中提到的知识图,还会问自己很多个为什么。于是,我形成了一个更高层的知识脑图。下面我把这这个方法分享出来。当然学习一门技术时,Go 语言也好,Docker 也好,我都有一个学习模板。只有把这个学习模板中的内容都填实了,我才罢休。这个模板如下。

  1. 这个技术出现的背景、初衷和要达到什么样的目标或是要解决什么样的问题
    这个问题非常关键,也就是说,你在学习一个技术的时候,需要知道这个技术的成因和目标,也就是这个技术的灵魂。如果不知道这些的话,那么你会看不懂这个技术的一些设计理念。
  2. 这个技术的优势和劣势分别是什么,或者说,这个技术的 trade-off 是什么
    任何技术都有其好坏,在解决一个问题的时候,也会带来新的问题。另外,一般来说,任何设计都有 trade-off(要什么和不要什么),所以,你要清楚这个技术的优势和劣势,以及带来的挑战。
  3. 这个技术适用的场景
    任何技术都有其适用的场景,离开了这个场景,这个技术可能会有很多槽点,所以学习技术不但要知道这个技术是什么,还要知道其适用的场景。没有任何一个技术是普适的。注意,所谓场景一般分别两个,一个是业务场景,一个是技术场景。
  4. 技术的组成部分和关键点
    这是技术的核心思想和核心组件了,也是这个技术的灵魂所在了。学习技术的核心部分是快速掌握的关键。
  5. 技术的底层原理和关键实现
    任何一个技术都有其底层的关键基础技术,这些关键技术很有可能也是其它技术的关键基础技术。所以,学习这些关键的基础底层技术,可以让你未来很快地掌握其它技术。可以参看我在 CoolShell 上写的 Docker 底层技术那一系列文章。
  6. 已有的实现和它之间的对比
    一般来说,任何一个技术都会有不同的实现,不同的实现都会有不同的侧重。学习不同的实现,可以让你得到不同的想法和思路,对于开阔思维,深入细节是非常重要的。

4、举一反三

举一反三的道理人人都知道,所以,在这里我并不想讨论为什么要举一反三,而是想讨论如何才能有举一反三的能力。我认为,人与人最大的差别就是举一反三的能力。那些聪明的或者是有经验的人举一反三起来真是太令人惊叹。

我觉得一个人的举一反三能力,可以分解成如下三种基本能力。

联想能力。
这种能力的锻炼需要你平时就在不停地思考同一个事物的不同的用法,或是联想与之有关的其他事物。对于软件开发和技术学习也一样。

抽象能力。
抽象能力是举一反三的基本技能。平时你解决问题的时候,如果你能对这个问题进行抽象,你就可以获得更多的表现形式。抽象能力需要找到解决问题的通用模型,比如数学就是对现实世界的一种抽象。只要我们能把现实世界的各种问题建立成数据模型(如,建立各种维度的向量),我们就可以用数学来求解,这也是机器学习的本质。

自省能力。
所谓自省能力就是自己找自己的难看。当你得到一个解的时候,要站在自己的对立面来找这个解的漏洞。有点像左右手互博。这种自己和自己辩论的能力又叫思辨能力。将自己分裂成正反方,左右方,甚至多方,站在不同的立场上来和自己辩论,从而做到不漏过一个 case,从而获得完整全面的问题分析能力。

在这方面,我对自己的训练如下。

  1. 对于一个场景,制造出各种不同的问题或难题。
  2. 对于一个问题,努力寻找尽可能多的解,并比较这些解的优劣。
  3. 对于一个解,努力寻找各种不同的测试案例,以图让其健壮。

老实说,要获得这三种能力,除了你要很喜欢思考和找其它人来辩论或讨论以外,还要看你自己是否真的善于思考,是否有好奇心,是否喜欢打破沙锅问到底,是否喜欢关注细节,做事是否认真,是否严谨……这一系列的能力最终能构建出你强大的思考力,而这个思考力会直接转换成你的求知和学习能力。其实,我也是在不断地加强自己的这些能力。

4、总结和归纳

**我们积累的知识越多,在知识间进行联系和区辨的能力就越强,对知识进行总结和归纳也就越轻松。**而想要提高总结归纳的能力,首先要多阅读,多积累素材,扩大自己的知识面,多和别人讨论,多思辨,从而见多识广。

不过,我们需要注意的是,如果只学了部分知识或者还没有学透,就开始对知识进行总结归纳,那么总结归纳出来的知识结构也只能是混乱和幼稚的。**因此,学习的开始阶段,可以不急于总结归纳,不急于下判断,做结论,而应该保留部分知识的不确定性,保持对知识的开放状态。**当对整个知识的理解更深入,自己站的位置更高以后,总结和归纳才会更有条理。总结归纳更多是在复习中对知识的回顾和重组,而不是一边学习一边就总结归纳。

我们来总结一下做总结归纳的方法:把你看到和学习到的信息,归整好,排列好,关联好,总之把信息碎片给结构化掉,然后在结构化的信息中,找到规律,找到相通之处,找到共同之处,进行简化、归纳和总结,最终形成一种套路,一种模式,一种通用方法

5、实践出真知

这种思维方式,这需要我去做很多的编程工作才能真正明白,才会有斯科特·迈耶斯(Scott Meyers)那样的思维方式,这才是最宝贵的。

另外,实践出真知也就是英文中的 Eat your own dog food。吃自己的狗粮,你才能够有最真实的体会。那些大公司里的开发人员,写完代码,自己不测试,自己也不运维,我实在不知道他们怎么可能明白什么是好的设计,好的软件?不吃自己的狗粮,不养自己的孩子,他们就不会有痛苦,没有痛苦,就不会想改进,没有改进的诉求也就不会有学习的动力,没有学习,就不会进步,没有进步就只会开发很烂的软件……不断地恶性循环下去。

实践是很累很痛苦的事,但只有痛苦才会让人反思,而反思则是学习和改变自己的动力。Grow up through the pain, 是非常有道理的。

6、坚持不懈

当然,坚持也不是要苦苦地坚持,有循环有成就感的坚持才是真正可以持续的。所以,一方面你要把你的坚持形成成果晒出来,让别人来给你点赞,另一方面,你还要把坚持变成一种习惯,就像吃饭喝水一样,你感觉不到太多的成本付出。 只有做到这两点,你才能够真正坚持。

三、QA

1、如何理解系统学习与快速掌握的问题?

遇到问题,掌握要点即可,平时按照架构图慢慢掌握,注入要掌握本质,达到举一反三的水平,可看参考8。

在学习技术的过程一定要多问自己两个问题:“一,这个技术解决什么问题?为什么别的同类技术做不到?二,为什么是这样解决的?有没有更好的方式?”另外,还有一个简单的判断方法,如果一个新的技术顺应技术发展趋势,那么在这个新的技术出现时,后面一定会有大型的商业公司支持,这类公司支持得越多,就说明你越需要关注。

四、参考

1、03 怎样学得更快更好
2、第82期 | 十步学习法
3、掌握一门新技能,只用20个小时就够了
4、快速学习新技能的4个步骤
5、96 | 高效学习:端正学习态度
6、如何快速且深入地学习一门新技术?
7、98 | 高效学习:深度,归纳和坚持实践
8、用户故事 | 技术人如何做选择,路才越走越宽?
9、02 | 程序员如何用技术变现(下)
10、22 | 学习观:程序员如何定义自己的技术舒适区?

【方法】如何快速高效学习相关推荐

  1. python怎么学最快-怎么样快速高效学习Python

    怎么样快速高效学习Python.最近学习Python语言的伙伴越来越多,但大多数人都没有太多时间用在学习上.那么怎么样学习Python时间短又高效的方法就很重要了.下面我把我学习python的方法简单 ...

  2. 如何快速高效学习技术

    快速高效学习一门技术 认知.了解 主要掌握概念和方向 学语法.学用法 局部练习,小型实战,搭建环境 上手实际项目和完整的开源项目 认知.了解 主要掌握概念和方向 了解技术的定义,介绍 技术解决了什么问 ...

  3. 快速学python爬虫_Python爬虫丨应当如何快速高效学习

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云,作者:小小科 ( 想要学习Python?Python学习交流 ...

  4. 20 个快速高效学习 Java 编程在线资源

    1.MKyong:许多开发者在这里可以找到带文字说明和图解的示例代码.这是一个探索各种框架的平台.不管是否用于商业使用,你都可以从这里下载免费的工具.链接:(http://www.mkyong.com ...

  5. 焦虑的时代,工程师如何高效学习?

    介绍 最近群里内经常有工程师(尤其是工作经验浅的)会问我同一个问题:如何快速高效学习?大家似乎都很焦虑,渴望通过高效学习来提升自己,快速成长. 基于自己的实践和思考,我总结了这篇文章,希望对大家有所启 ...

  6. 高效学习方法探讨——如何做到高效学习

    方向一:高效学习方法分享 在现代社会中,学习是一个不可避免的任务.在学生时代,我们不得不面对课本.考试和被动学习:进入职场后,我们又需要持续学习.了解业内最新动态.如何做到学得更快.学得更好,成为了所 ...

  7. 如何高效学习UI设计的方法

    哈喽,小伙伴们,又到了我们的UI设计经验分享时刻,今天我分享的是四个超实用的UI设计方法,初学者必备哦!快来看看吧.这几个UI设计方法是比较基础的那种,要是想学习更多有关UI设计的经验教程可以持续关注 ...

  8. 学习方法论------《方法比技能重要》,《如何比别人快速的学习》

    第01课:高效学习方程式,你的学习到底是哪里出了问题 一.学习不好的原因 高效学习的方程式,最终的学习效果=时间*精力*注意力*目标*策略. 第一,为你提供在学习上改进的方向.当你把每个因素都提高了, ...

  9. 如何高效学习,如何快速掌握某种技能-刻意练习20200309读书笔记

    [美]安德斯-艾利克森  罗伯特-普尔  著:王正林 译:机械工业出版社  2016年出版: 引言  天才存在吗 莫扎特的完美音高 这显然意味着完美音高根本谈不上是只有幸运的少数人才拥有的天赋,而是一 ...

最新文章

  1. 【JAVA笔记——道】对象生命周期详解
  2. 软件开发环境-按模型及方法分类
  3. Android 虚线实现绘制 - DashPathEffect
  4. Scalaz(25)- Monad: Monad Transformer-叠加Monad效果
  5. NA-NP-IE系列实验实验15:RIPv2 手工汇总
  6. 至于你信不信,我反正是信了——以类为单位的编程思想
  7. 快速排序的原理以及Java代码
  8. Java笔记-spring-rabbit框架中消息中header的添加
  9. python-内置函数-数学函数
  10. Nginx工作原理及相关介绍
  11. numpy的where方法
  12. 清空select下拉框的方法
  13. python numpy数组切片_python中numpy数组切片实验解释
  14. 安装Wireshark时提示Npcap失败的解决办法(亲测)
  15. 一步一步教你如何写开发文档
  16. 记一次刷路由器固件的经历
  17. iOS微信分享及Universal Links
  18. 【ClickHouse】表引擎详解
  19. 计算机信息心得体会作文50字,考试感想作文50字5篇
  20. 前端案例——2.仿淘宝关闭二维码案例

热门文章

  1. 个人腾讯云服务器的搭建
  2. java 虚拟机 xms_JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别(转)
  3. 围剿苹果Siri:车载语音争夺移动终端
  4. hive时金额为科学记数法转为普通的数字
  5. 2022年京东双11和天猫双11预售时间介绍
  6. python初始化一个二维数组_二维数组初始化
  7. 友价T5商城系统一键生成SiteMap网站地图插件【chajian_sitemap_builder.php】
  8. oracle查看当前的数据库实例名称,主机名称
  9. Blender基础建模 | 大帅老猿threejs特训
  10. C# 盘古分词的使用