程序员成长离不开的技能
很多人,在学生阶段习惯了被动、填鸭式学习,进入社会后,不知道如何去自我学习,严重限制了提升自己的知识和技能的机会。
在这个飞速发展的世界里,做一个终身学习者,自我学习的能力越强越好。
最近看了一本书《软技能: 代码之外的生存指南》,里面的一个主题,讲述了技术人员如何在新技术发展日新月异的世界里,如何快速高效学习技术,以下是我整理的「十步学习法」笔记,供大家参考。
十步学习法的基本思想就是:
要对自己要学的内容有个基本的了解:了解自己不知道什么就足矣。然后,利用这些信息勾勒出学习的范围,即需要学哪些内容,以及学成之后又会获得什么。依靠这些知识,你可以找出各种资源来帮助自己学习。最后,你们可以创建自己的学习计划,列出要去学习哪些相关课程,筛选学习材料,只保留能帮助自己达成目标的优质内容。
一旦完成这些工作,你对自己要学什么和怎样学都了然于胸,你就可以把控自己的学习计划中的每个关键点,通过「学习—实践—掌握—教授」(Learning, Doing, Learning and Teaching,LDLT) 的过程,获得对该学科的深刻理解,同时你也向着自己的目标前进。
第 1 步 了解全局
unknown unknowns,即你根本不知道自己不知道。
在你打开一本新书开始阅读的时候,你对自己所不知道的一无所知。闷头往下看的话,会出现学费所需、力所不及的情况。
所以,在学习某一技术之前,至少要对其有所了解,对技术有一个全局的了解,这一点非常重要。
第 2 步 确定范围
充分利用第 1 步获得的信息,根据自己的需求,明确自己到底要学什么,确定学习范围。
这一步容易犯的一个错误:试图解决太大的问题而让自己陷入困境中。
可以将大的主题,分解小而聚焦的主题。
因此,学习范围务必大小适当,符合自己的学习理由,同时要保持专注。
第 3 步 定义目标
确定自己的学习目标,明确学习完成后应该达成的效果,根据简明清晰的目标,勾勒出勤奋学习后成功的图景。成功的标准应该是具体的,无二义性的。
第 4 步 寻找资源
尽可能的尝试多种渠道和方式收集与学习主题相关的资源。这个阶段,资源的质量无需考虑。
第 5 步 创建学习计划
打造自己的学习计划,一个好方法就是观察别人是如何教你感兴趣的主题的。通览你收集的全部资源,你就对自己需要哪些内容及如何组合这些内容有更清晰的认识。
第 6 步 筛选资源
对找到的资源进行筛选,挑选出最有价值的几项来帮助你实现自己的目标。
现在,你可以就你想要了解的一个主题,实际演练一下以上 6 个步骤了。
第 7 步 开始学习 浅谈辄止
大多数人,包括我自己,在学习的过程中通常会犯两类错误:第一类错误是在知之不多的情况下就盲目开始,即行动太快;第二类错误是在行动之前准备过多,即行动太晚。
这一步的关键在于避免过犹不及。开始学习时很容易失去自控力,深入学习计划学习中列出的所有资源。你要专注于掌握自己所需的、能在下一步动手操作的最小量的知识。
第 8 步 动手操作 边玩边学
在掌握操作动手最小量的知识的情况下亲自操作和亲身体验。
在探索和实践过程中,会产生的各种问题。这些问题会引导着你走向真正重要的方向。当回头寻找问题的答案时,不只是这些问题迎刃而解,而且你记得的东西比你学习的东西要多得多,因为你所学到的都是对你很重要的东西。
第 9 步 全面掌握 学以致用
好奇心是学习特别是自学的重要组成部分。
为了有效利用自己选择的资料,为了上一步生产的问题寻求答案(带着问题学习)。不用担心回头再去操作,付出更多,因为这不仅能够让你找到问题的答案,也能让你学习新东西。给自己足够多的时间去深入理解自己的主题,你可以阅读,可以实验,可以观察,也可以操作。试着把自己正在学习的内容与最终目标关联起来。
第 10 步 乐为人师 融会贯通
要想深入掌握一门学问,并且融会贯通,那么必须要做到能够教授给别人,在这一过程中,你要切实刨析并理解自己所学的知识,将其内化到自己的思想;同时,也要用能够让他人理解的方式精心组织这些信息。
在这个过程中,你会发现很多自以为明白的知识点,其实并没有你想象的那么透彻。这一过程会将那些以前自己没太明白的东西联系起来,并简化到自己的大脑中已有的信息,将它们浓缩并经常复习。