【人生规划局 VOL.07】零基础如何快速入门自己想学的东西?

国王KING 2019-06-16 08:56:00

去年花了10小时零基础学习Python,输出《火焰杯》词云图的学习历程。

我个人很喜欢自学,因为学自己想学的东西,弄懂不会的知识,那种感觉真的太棒了。

2018年7月的广播

在这篇文里,我将说说自己的学习方法——零基础如何快速入门自己想学的东西。虽然文章主题都在说Python编程,但实际上你可以把这套方法套用到任何你想学的东西上。


Step-1 设定目标

先介绍一下个人情况:在一年前的时候,我算是零基础学习了一下Python编程。尽管大学时也有接触过,但参加工作后很久也没有用起,算是忘记得七七八八了,脑子里只有很小一部分的概念,对于操作之类的也很陌生。

当时的想法是,下班后想找点事情做,那就学习吧,学编程。

其实编程只是一个工具,我们的想法才是最重要的,只是一部分的想法得靠编程实现。

那段时间我喜欢“词云”这个东西,于是确立了一个目标,也让Python来分析一个文本吧,然后输出词云图片。

词云

分析什么好呢?

身为一个哈迷,自然想到了《哈利·波特》小说。于是项目再次修改:分析《火焰杯》小说,生成词云。

《哈利·波特与火焰杯》

一个是我想学的东西(编程),另一个是我喜欢的东西(HP),我将两者结合了起来,兴趣和效率可想而知。

为了让自己完成这个“火焰杯词云”项目,我给自己设定了一个时限:争取在两天内完成。

Step-2 学什么?

大概很多人来到这步时,都会稍微犹豫一下:对啊,要学什么呢?

那么多的资料,那么多的知识,那么多的书籍,到底要学什么,要看什么?

这种感觉有如“老虎吞天,无从下口”,但我觉得没必要这样,毕竟知识是学不完的,我们只把自己想做的项目完成就好了(至于要学什么、学到什么程度,你也得去想想)。

而我眼下的状况就是:我朦朦胧胧知道自己想要做什么,但我不知道自己该怎样实现。类比到拼积木的话,就是我连积木的影儿也没有看着。

快速入门陌生领域的方法,永远都是模仿。虽然以后你能利用“积木”拼出任何你想要的形状,但永远都不是现在。现在最要紧的是,是快速浏览一下“说明书”,以及别人是怎么“拼积木”的。

我找了一个类似的项目,也是用Python进行分词;再找了另一个项目,用Python制作词云,两者合并,就是我想要做的功能了。

更加取巧的方法是对比模仿,我可以模仿A,记录他的实现方法;再模仿B,再记录他的实现方法;再模仿C……

这样下来,就有三种方法能实现自己的项目了。对比ABC三者,实现方法上有何异同?有无更加便捷的方法?而三者“同”的那部分,是不是意味着这就是绕不开的基础知识点?

Step-3 怎样学?

我觉得编程有意思的地方有两个:

(1)分而治之。 把一个复杂的问题按一定的“分解”方法,分为等价的规模较小的部分,然后逐个解决。只要每个子部分都完成,那么整体就完成了——这也是模块化设计的体现。

我想做的项目“Python 分析《火焰杯》,生成词云”也是一个个子功能的集合。

看了相关案例后,我才知道,原来要实现我想要的功能,还得“对小说文本分词,分词后的内容存储到本地缓存文件里”、“将词性列表进行处理,转为词性字典,用于词性筛选”、“词频统计”……也就是说,我将这些子模块实现后,项目整体就实现了。

(2)可迭代。你可以先输出一个MVP(最小可行化产品),实现最简单最基础的功能,然后不断修改,添加更多的复杂功能。第一次可能只是一个简单的读取文本的功能,但只要实现了你就知道距离目标又近了一点;第二次迭代,你修改了代码,添加了分词功能,运行时出错?你知道,错误就在这个新增的功能上,只要仔细检阅代码并修改,就能实现分词功能,继续进入下一次功能迭代……

只要不断地进行功能迭代,对错误不断修改,程序的功能也会越来越丰满,不断地靠近你想要的最终功能。

这两个思想延用到学习里,就是:

分而治之——将自己想学的知识,想要实现的项目拆分为更小的模块、更小的单位,逐一击破;

可迭代——先快速学习基础知识,拉出大体的粗略框架,然后在日后不断去完善这个框架(关于框架学习这件事,可以参考👉【人生规划局 VLO.06】你40岁时会过着怎样的生活?)。

其他

在自学时,不知道你有没有这样的感受:好像我学到的都是别人的东西,我只是记住了,只是觉得自己会了,但实际上还是没有掌握住。

类比到拼积木上,就是你模仿别人,终于建起了一座自己理想的模型。但是当你出现下一个需求,可能要用这些知识建出新的模型,你又开始懵了,你还是没有学会运用。

我也有思考过这些问题,但我们需要的,真的只是这种简单的“记住”吗?我们要的是“应用”。

所以我从来没在意自己究竟“记没记住某个知识点”,记不住就再看一次呗。我觉得最重要的还是学习时你的分析和思考能力,知识无穷无尽,但你学到的分析和思考可以迁移到所有的学习上。

在这个项目学习时,我让自己弄清每一个模块的功能,以及它需要注意的点,然后自己默写一遍。当你开始自己手写,并且开始回忆时,才会注意到以往被忽略的内容,才会顿悟“原来如此”,才会按照自己的想法开始思考。

类似的方法是费曼技巧——选择一个概念,把它教给完全不懂的另外一个人,你可以通过口述讲解或者其他形式,反正要让零基础小白也能听明白你的知识,这些知识等于自己也过了一遍。

这时,别人的知识才会变成你的知识,因为之前的知识已经被你进行解构,被你的大脑重塑成你理解的样子


总结

step-1 设定目标:自己想学什么,要学到什么程度。最好把学到的东西用起来,怎么用呢,就是把想学的东西和喜欢的东西进行结合。本文是把编程应用到《火焰杯》进行词频分析,并设立了一个期限。

step-2 学什么:进行模仿。你想做的东西,肯定已经有人实现了,去模仿他们吧。然后对照着其他人实现的方法看,他们的方法有什么异同,那些相同的部分是不是要掌握的基础知识点。

step-3 怎样学分而治之——将自己想学的知识,想要实现的项目拆分为更小的模块、更小的单位,逐一击破;可迭代——先快速学习基础知识,拉出大体的粗略框架,然后在日后不断去完善这个框架。

* 与其去“记住知识”,倒不如去理解知识,你可以将知识口头说一遍,或者手写一遍,用自己的思考重塑知识,将别人的东西变成自己的;

* 学习时的分析能力更加重要,这种能力可以迁移到其他的学习上。

最后,这是当时输出的词云图:

学习真的是一件挺有意思的事情啊 : )


*关于【人生规划局】:

个人对生活、学习的一些思考,成长 / 学习 / GTD 等均有涉猎。往期整理 👉人生规划局

/ 你的一生计划定制指南 / 你40岁时会过着怎样的生活?/

/ 如何让生活变得好玩起来? / 如何玩好「生活」这款游戏?/

/ 构建你的计划与时间管理系统 / 分析你的人生:什么造就了现在的你?/

国王KING
作者国王KING
196日记 25相册

全部回应 13 条

查看更多回应(13) 添加回应

国王KING的热门日记

豆瓣
免费下载 iOS / Android 版客户端