最近在读一本书《软技能-代码之外的生存指南》,这是John Z.Sonmez写的一本关于软件开发人员自身发展的书。作者用职业、自我营销、学习、生产力、理财、健身、精神等七个篇章,阐述了软件行业从业人员需要掌握的“软技能”。

书中的建议都是作者从自身的工作与生活中总结出来的。读完以后觉得很有必要总结一下,早点接触到这本书或许能少走一些弯路。因此,我把书里我觉得重要的部分分享给大家。今天分享的是书中提到的十步学习法

1. 如何自学

  • 如果想成为最好的软件开发人员,你就必须学会如何自学。很不幸,学校并不会教你自我教育这项技能。无论如何,学会学习是自我教育的核心技能

  • 将自己所学的东西教给别人,你不仅能记住,还能理解得更深刻。与其他学习方式相比,主动学习是效率更高的方式

  • 如果你想学习一些东西,你应该聚焦在如何让自己切实参与,并且尽早付出实践。

  • 一旦你已经实践过,并积累了各式各样的问题,立刻回到书本当中。当你回去重读这些参考资料的时候,你有强烈的冲动去消化吸收其中的内容。因为你已经积攒了很多想要找到答案的问题,你对哪些内容更重要早已了然于胸

  • 然后,你可以把自己学到的新知识重新应用于实践

  • 最后,你可以将自己所学的打包教给别人。你要用自己的语言将这些信息组织起来,把你的思想表述给别人

  • 这个过程可以归纳为:学习——实践——掌握——教授。

2. 体系背后的逻辑

2.1 如何掌握一门技术

我发现,为了能够掌握一门技术,我需要了解以下三个要点。

  1. 如何开始

要想开始使用自己所学的,我需要掌握哪些基本知识?

  1. 学科范围

我现在学的东西有多宏大?我应该怎么做?在开始阶段,我不需要了解每个细节,但是,如果我能对该学科的轮廓有大致的了解,那么,将来我就能发现更多细节。

  1. 基础知识

不止在开始阶段,要想使用一项特定的技术,我需要了解基本的用户案例和最常见的问题,也需要知道自己学的20%就能满足80%的日常应用。

2.2 基本思想

“十步学习法”的基本思想就是

  • 要对自己要学的内容有个基本的了解。了解自己不知道什么

  • 然后,利用这些信息勾勒出学习的范围,即需要学哪些内容,以及学成之后又会获得什么。依靠这些知识,你可以找出各种资源(不局限于书)来帮助自己学习。

  • 最后,你可以创建自己的学习计划,列出要去学习哪些相关课程,筛选学习材料,只保留能帮助自己达成目标的优质内容。

3. 第 1 步到第 6 步:这些步骤只做一次

3.1 第1步,了解全局

  • 在这一步,你要做的就是了解自己将要学习的主题的全部。这个主题宏观上什么样?你能从中学到足够丰富的知识以了解自己所不知道的吗?以及自己所不知道的有多少?

  • 我们在这一步的目的不是要掌握该主题,只是对这一主题的相关内容有一个全局性的了解

3.2 第2步:确定范围

  • 根据自身的需求,决定学习的重点和学习的范围,在此阶段容易犯的一个错误就是:试图解决太大的问题而让自己陷入困境中。

  • 结合从第一步中获得的信息,明确自己的学习范围,尽可能的保持专注

  • 同时,也需要阐述自己的学习理由来帮助自己界定学习的范围。学习的范围务必大小适当,既能符合学习理由,又能符合自己的时间限制。

以摄影为例,你想学摄影,这个方面很广阔,现在知道了摄影分为风光摄影、人像摄影、人文摄影等等,现在你要明白你最想学哪方面的摄影。

比如,想拍好女朋友,拒绝直男称号的就想去拍人像摄影。这样我们就把摄影这样一个比较笼统的范围聚焦到了清晰的特定范围。

3.3 第3步:定义目标

  • 在全力以赴启动之前,明确“成功”的含义极为重要。

  • 在尝试学习任何东西之前,你都应该在自己脑海中清晰地描绘出成功的样子

  • 当你知道自己的目标是什么的时候,你就可以更轻松地使用倒推的方式,明确实现目标所需的步骤

【程序员必备软技能】之十步学习法_嵌入式

3.4 第4步:寻找资源

  • 对于学习编程来说,你可以在网上找到大量的资源(这里的资源包括书、教程、视频、代码等)。试着在百度,CSDN,博客园, Google搜索相关关键字,然后根据描述或评论选择资源。尽量选择系统性的教程或书。对于编程语言、框架和工具来说,官方手册一般都不会太差。

3.5 第5步:创建学习计划

  • 在介绍之前,我们先来想想,书籍的目录是否是被分解成一个章节一个章节的,各章也循序渐进。

  • 学习是一个自然的过程。从A开始,前进到最后到达Z。你需要找出在最短的时间内从A到Z的正确路径,并且到达沿途的重要地方。

  • 现在我们手里已经掌握了足够的资源,那么如何有效利用这些资源呢?

  • 你需要创建自己的学习路径。一个好的方法就是观察别人如何教导你感兴趣的知识。例如,所学书籍的目录。当然有些书籍结构略差,你可以根据自己所需内容进行调整。

3.6 第6步:筛选资源

  • 你现在知道自己该如何去学习了,具体包括要学习的内容以及学习的顺序。

  • 你需要对已经拥有的资源进行筛选,只留下 1~2 个品质最高的资源即可。

  • 对于书籍而言,我们可以看网上评论和别人的心得;教学视频一定要选择高清以上规格的,视频不清晰会影响你学习的心情。

  • 要选择适合自己的,包括老师的水平,讲课方式等都可以作为参考依据。能让自己学下去、坚持下去的才是最好的

4. 第7步到第10步:循环往复

4.1第7步:开始学习,浅尝辄止

  • 在学习过程中通常会犯两类错误:第一类错误是在知之不多的情况下就盲目开始,即行动太快;第二类错误是在行动之前准备过多,即行动太晚

  • 大多数人往往在没有准备的情况下,匆匆就开始了,等遇到了棘手的问题,往往手足无措,觉得难以入门难以学习,遂放弃。

  • 开始学习的这一步在于要适度。就怕野心太大,想要一口吃下整个蛋糕,已经知道了要学的所有内容,就想消化所有的资源。往往精力太过分散,导致各个部分内容均没有起色或成果很小,没有获得激励也就很难坚持下去。

4.2 第8步:动手操作,边玩边学

  • 单纯的学习书本、视频,进步往往很缓慢,一是动手操作的时候往往会出现各种各样的问题,二是看不到自己的进步,难以为继。

  • 这里的步骤是没有规则的,就是边学边做,将所学知识结合实际,达到学习效果最大化。纸上谈兵终觉浅,绝知此事要躬行。

4.3 第9步:全面掌握,学以致用

  • 好奇心是自学的重要组成部分

  • 根据你掌握的资源,解决你在实践中记录下的大量问题。同时深入了解各个主题。比如,阅读你要学习的语言、框架的源码。

  • 试着把自己正在学习的内容与最终目标关联起来。你掌握的每个模块,都应该以某种方式推动你向着终极目标前进。

4.4 第10步:乐为人师,融会贯通

  • 在这一步中,我会要求你走出自己的舒适区,将自己学到的知识教给别人

  • 要想确定你确实掌握了某些知识,这是唯一的办法;同时,在你将自己所学介绍给他人时,这也是查缺补漏的好办法。

  • 在这一过程中,你要切实剖析并理解自己所学的知识,将其内化到自己的思想;同时,你也要用能够让他人理解的方式精心组织这些信息。

5. 最后的思考

“十步学习法”并非一个神奇公式,能够让你瞬间变得聪明伶俐,但这种方法可以将你的学习过程更为结构化,而不是漫无目的地一头扎进浩瀚的知识海洋之中;这种方法通过利用人天生的好奇心来帮助你吸收更多的知识,而我们中大多数人正是在好奇心的驱使下才学到很多本领的。