本文对《软技能:代码以外的生存指南》书中的“十步学习法”展开讨论,该书做者是John Z. Sonmez,一名程序员,书中有不少面试、专业等建议。有一些建议相见恨晚。某天在喵哥群里看到了本书的推荐,很是感谢推荐。程序员
本文末尾附上了John Z. Sonme推荐的书单(自我提高、软件开发、投资类),感兴趣的能够看一下。面试
虽然本书说的是“程序员必备的软技能”,但我认为这是全部职业都通用的软技能。该书中总共分红七个部分,分别是:职业、自我营销、学习、生产力、理财、健身、精神。我作了下面的思惟导图,能够归纳个大概,能够根据须要随意读取某个章节:
编程
本书总共71篇文章,能够把每一篇都当作一篇高质量的博客,也就是说若是你可以写出71篇高质量的博客,你也就可以出书了(手动狗头)。json
这位做者老哥很会玩,他有本身的youtube频道,网址youtube.com/jsonmez 我点进他的油管主页看了一下,好家伙,做者本人仍是个猛男:
设计模式
你是否是和我同样,学习知识的时候就喜欢拿着一本书“从封面到封底”仔细阅读,这样能够学到东西,可是效率很低。由于咱们每每只会用到书中的一部份内容而已,没用到的内容会迅速忘记。这是关键,没用到的内容会迅速忘记……经过不一样的方法,对于知识的掌握程度也不一样,能够参考下面这张图:
网络
仅仅经过阅读,学习信息的留存度只有10%。由于咱们并无掌握那些没被用到的知识。学到了某个知识,叫懂得;练习过学到了的知识,这叫掌握。掌握了的,不容易忘。编程语言
懂得不少道理,可是依然过很差这一辈子。——由于这些道理只是头脑上的懂得,但并无身体力行的掌握……学习
学习二字,学——头脑上的懂得,习——头脑和身体上的练习。练习中的体验,极大加深了该知识的记忆。咱们都有背单词的经历,但真正掌握这个单词的时候,仍是和这个单词在某个地方不期而遇时,好比某一天下午你在看国外新闻时,看到了这个单词,这个时候才发现这个单词还有这个用法。咱们学会了使用它,直接用它,也就记得了它。设计
十步学习法以下:
3d
不要被这么多步骤给吓到了哈,总共分红两个部分:
第一步到第六步:学习前的准备部分,即为前期调研以及设定目标。
第七步到第十步:学习过程部分,即这四步:学习-实践-学习-分享教授(Learning, Doing, Learning, and Teaching)
这些年有个很流行的认知的四个阶段:不知道本身不知道什么、知道本身不知道什么、知道本身知道什么、不知道本身知道什么。
“了解全局”就是从第一阶段到达第二阶段的过程。若是想要学习一门编程语言,那么首先得知道计算机的编程语言均可以作些什么,市面上有哪些编程语言,这些编程语言之间又有什么关系等等。关于这些咱们能够在网上搜索一些文章,或者请教相关的人,了解个全局。
等到咱们了解个差很少的时候,咱们终于知道了这些东西大概是个什么,可是具体是啥咱们是不知道的。这就进入了“知道本身不知道什么”的状态。
了解全局是必要的,以下面:
若是咱们按照图的上半部分,在没有了解全局,就开始精细地学,这样恐怕不会持久。
可是像下半部分那三张图同样,先了解一个模糊的大局,再逐渐精细地了解,这样的效果会更好
咱们大体了解全局以后,须要肯定范围。由于计算机知识浩如烟海,咱们没法掌握所有——穷尽一辈子也不可能。甚至就算单是学习一门编程语言,好比若是想要精通C++,那没个好几年是不可能的。可是我如今的学习时间只有一两周,那只能把范围缩小,这样的范围能够是,使用学习某个编程语言中的:
短期内咱们能够聚焦在以上三个主题中的一个。一个主题就是一个聚焦范围。
为何要聚焦,咱们啃知识的过程就想打怪。还记得《灌篮高手》里面,宫城良田是怎么把三井寿的门牙打掉的吗?其实三井寿是带兄弟围殴的,若是宫城不聚焦地去打三井,那么他就会被围殴的毫无还手之力。
咱们打知识也要聚焦,否则会被知识围殴地毫无还手之力。
肯定一个小范围以后能够定一个小目标,好比下面的任意一个都是小目标:
学习一个知识点的时候,最好不要就只用一本书,能够参考不一样各个书上的指定的章节,由于不少时候不一样的书都在描述同一个东西,可是描述的角度不同。
当咱们从A角度看某个东西的时候,可能会消除在B角度看相同东西时产生的那个疑惑。尽量寻找更多资源。
信息来源:
建立学习计划,就算咱们已经在第2步里面缩小了学习范围,可能这个范围内还有好比六个如A,B,C,D,E,F个知识点,而有些知识点是最基本的,好比知识点A,全部其余知识点B、C、D都依赖于A。这个时候咱们确定要学最基础的A,再学其余不那么基础的点。
就像上图中的螺旋上升的阶梯,往上的阶梯须要稳固的基础,也就是一个起点。
不少时候能够直接参考书的目录,基础的点都在前面,进阶的内容都在后头。
由于咱们在第4步的时候已经寻找了不少资源,那么这个时候能够进行筛选,去掉重复性比较多的,或者不太适合本身的那些书,找出最物超所值的那几本——能够看看网络上对该书的评价。
以上学习前的准备过程就差很少了,接下来就是学习过程,学习-实践-学习-分享教授(Learning, Doing, Learning, and Teaching)。
这一步的学习是为了下一步的“动手操做”。
这个时候咱们就要清楚地知道,为了下一步的操做,咱们须要的“最小量的启动知识”有多少。度很关键,学太多或者学太少都影响效率。
若是是学习代码,这一步能够按照示例代码本身试一遍,或者本身改一遍。
若是是学习英语单词,就使用这个单词造句、练习发音,并根据不一样的释义想象能够在什么场景下可使用。
以上过程也是根据不一样的例子来强化本身的记忆。我知道有一个挺有名的程序员章亦春,他喜欢在学习的时候,手抄代码。第一次听到这事的时候,我震惊了,手抄,那效率得有多低?后来我在刷leetcode的时候,遇到看不懂的那些题解代码,复制粘贴后上程序跑一遍仍是不懂。而后我就在纸上手抄这些代码,抄着抄着的过程,居然真的慢慢懂了,真香!
咱们可能会在上一步的操做过程当中遇到问题,这个时候能够回到资料里面,去寻找答案。又或者这个时候咱们再看以前看过的内容,也会有不一样的体会。
原书中是这样写的:
你能够用多种方式将本身所学教给他人。你能够写博客,也能够制做YouTube视频。你也能够跟本身的爱人探讨,将本身所学解释给他/她。重点在于,你要花时间将本身学到的东西从大脑中提取出来,以别人可以理解的方式组织起来。在经历了整个这个过程以后你会发现,有不少你觉得本身明白了的知识点,其实并无摸透。因而你会将那些之前本身没太明白的东西联系起来,而且简化本身大脑中已有的信息,将它们浓缩并常常复习。
费曼学习法也大概是这个意思,诺贝尔物理奖得主费曼说:“若是你没有办法用简单的语言表述你所学的知识,你就没有真正学会它。”著名的费曼学习法,推崇以教为学。
这段视频解释得至关透彻:为何费曼技巧被称为终极学习法
首先咱们经过练习大量的例子,从而总结出这些例子的通用规律。而后将这些例子以他人听得懂的方式表述给他人,在这个过程当中你再一次对这个通用规律进行了总结——或者说压缩。同时在表述的过程当中,进行了逻辑上的验证。
有时候,逻辑验证会出现卡壳,会发现有不少你觉得本身明白了的知识点,其实并无摸透。
这还没完,在表述给别人的时候,别人会产生疑问,这时候能够将别人的例子,套用在你已经总结出的规律中,进一步验证这个规律的准确性。
分享知识的途径:
只要善于总结,就超越了不少人。当年RTS游戏盛行的时代,WAR3(魔兽争霸3)游戏的王者,中国人皇SKY李晓峰。他当年在网吧接受采访的时候,秀出了他一个记满技术要点的小本子,这是他对很不少场对战的关键总结。说实话,字写得真的丑,写的句子也和“文笔”两字丝绝不沾边,但这并不能阻止他成为世界人皇。
最后,祝各位前程似锦。
文末附上原书《软技能:代码以外的生存指南》做者推荐的书籍汇总。各位也能够参考以上学习方法,选择某一主题的书,进行学习哈。