1901020015-自学编程阶段性总结:终于找到“浸泡”式学习英语的机会,开启跨越自己的旅程

阶段性总结

写在前面的话:致所有看到这个文章的伙伴。请原谅我的自私,想要以书信的口吻写给曾经的(上一刻的)自己。如果你不禁笑出了声,感谢你的认同和感同身受。

Dear, 李浩天

想了很久,还是觉得以 “阶段性总结” 这个标题起笔比较好。我想你已经明白不管是Python还是自学能力,它就像英语一样是一个需要不断使用、不断强化和迭代的工具。那在今天这个时刻所需要跨越的我想也许就和财富自由一样,只是一个里程碑而已,跨越过去还有更多的事情要做,更长的路要走。

开始

还是想和你聊聊开始,但也许并不像你想的那样,开始真的不应该在完成选择的那一刻。

我知道最开始的时候,你一定觉得选择加入自学训练营还挺偶然的。但你有没有想过也许就像《The Secret》里面一样,这个世界好像有一个”Attraction law”。而这个Attraction的源头就是你自己的内心。

我想你一定还记的,在很早的时候你心里面就被种上了那颗种子。我真的已经记不清是什么时候了,只是隐约的记得那是某一次你的父亲带着你参加一个演讲的时候,在讲台上的老师说到的。 —— “ 一个人的学历代表他的过去,财力代表他的现在,只有学习力才能代表他的将来”

我想你一定笑了,因为你明白它已经在你的生命中生根发芽。我看的到,其实你并不过分的信赖所谓的“经验”和“资历”,但你会尊重并观察它们。你认为每一个经验的背后都有其自己成长的背景,也有值得学习和改善的地方。

还记得吗,在你刚毕业半年的时候。你加入一家广告营销咨询公司,开始的时候只是一个项目执行,然后一个月后涨薪,实习期过后升为SA,半年后带团队拿到部门70%的项目。我知道你当时很自豪,也很傲慢。会觉得是因为自己有“自学能力”所以可以快速超越

我想现在你一定明白了自己当时的傻逼,当静下心来,你才会想起很多的细节。其实你当时只是有学习的态度而已,当时的你真的不知道如何去体系化的、深入的去学习,只不过是有态度所以你的领导愿意带你,你真正感谢的应该是教你学会当时需要的东西的那个领导。啊……我想经过了这些年,你也一定会发现

仅仅有学习的态度,并且愿意花费时间和精力这一项粗浅的特质其实已经可以超越很多人,因为它会让你向前看让你不会离”鄙视链”那么近 (真的不敢说远离)

我们再来聊聊这次你认为的偶然吧。我记得当时的你很迷茫,想要找到一个机会可以以“浸泡”的方式来开启英语,而不是像之前那样反反复复只学不用,同时你也总是想拾起大学时学习的编程知识可也不知道应该从哪里开始。也许当时的你并没有想到可以有这样的一个结合。直到那天晚上:

女票发来消息说:这个东西你看一下,应该你会喜欢的。然后……你就报名了……

是不是回过头来,感觉好突然,似乎没有做什么迟疑和判断,所以你说这是一个偶然。但我想说 —— 不,这是一个必然。事情的发生其实和选择无关,相同的事情不同的人可能会做出相反的选择。而所有的选择都是根深蒂固在自己内心的观点和认知,所以我说这个的开始真的不是在完成选择的那一刻。

共同成长的14天

原本的小标题是“成长的14天”,但后来改为了“共同成长的14天”,因为这里面不仅仅是你和我的成长,我想更是和每一个一起走过着14天的战友们一起的成长。这里面不可能更不应该只有你的影子对吧。

我想对你来说,最难的应该就是开始的3天了吧。纯英的资料、没有接触过的工具、陌生的词汇,不仅仅对你的时间是一个挑战,更不断地,不断地,不断地打击着你的自信心,让你觉得“我怎么这么蠢,这东西怎么这么难”。我看的到,当时的你不断的在‘对未来的恐惧’、‘对自我的怀疑’、‘内心的自我安慰和鼓励’这三种状态中不断的切换,你想过放弃,但很庆幸你坚持下来了

请原谅我使用 “坚持” 这个词,我知道你并不喜欢甚至不认同。但我还是想说所有的“坚持”都是存在的,只不过在不同的情景下它转化为了不同的样子。当你以爱好开始那个坚持叫做“想知道”,当你以任务开始那个坚持叫“目标”,当你以被迫开始那个坚持叫“自我安慰”。但是我们都清楚,如果可以走的足够长或者做的足够好那这个坚持一定会被叫做 “根本停不下来”。它将成为你的标签,满足你的内心并支撑你的生活。

说到这里,我不禁想起了那天差点“玩坏微信”的你。应该是Day12,那天的作业是通过微信的文章链接,将文章内容读取出来并统计词频输出。

最开始是惊奇 —— 哇哦,原来还可以这样。然后你用wxpy获取了自己的所有的好友信息,还拍了个视频发给好些个好友,去解释为什么不要随便用微信扫一扫,并通过微信机器人和好友聊天,还发了个朋友圈去指点江山 —— “The code is the language of the age, and as open source requires more and more human nature”,我知道那天你玩嗨了,也真的是收了好一波存在感。

说这个并不是想怪你,其实真的没关系,我看得到因为这次玩嗨后,对后续的学习你多了些许热情。有的时候是需要用一些东西让自己找到它的用处,你才会真的用下去,这是一个自己释放的窗口。但是你要知道你是在做什么,因为什么在做,这就够了。

既然我们是在说“共同成长”,那我们再来聊聊战友好吗?

我猜你最想和我聊的一定是你们的教练对吗?我记得有一次你差点就放弃了,应该是Day11,那天你的SSL一直出问题,怎么都解决不了,你知道如果这个问题解决不了后面的作业基本上就都完不成了。当时猜测了很多种问题也尝试了多种方法,你甚至都想过要重装系统。我知道你可能最后都已经无奈甚至破罐破摔了,可是教练没有放弃,他帮你解决了。最后的问题是Anacanda自带的Python编译器启动不了系统的 SSL。一切的一切事后说起来都是这样的云淡风轻,但我相信看到这里你一定能回想的起来当时复杂的心情。

这件事情我知道是你记得最深刻的,但是还有一个事情,我觉得你不应该忘记。day10,那天需要通过pip安装jieba这个第三方库,最终你是通过issue上找到战友给出的方法解决的。我知道当时战友的issue让你多少有点惭愧,因为你发现一直标榜学习能力的你,在遇到这个问题的时候竟然没有做进一步的分析,甚至你都没有了解过pip是什么,就张口发文。你明白这种做法叫“索取”,没有人有义务被你索取,也许我说的重了点,但仅仅是想提醒一下你

孤独的旅程

在14天的旅程结束后,你便开始了另一个旅途,这段旅途多少有些孤独,但是它却给到你带来了一个惊喜:让你更多的体会到计划和完整性的重要性

当时你计划用一个月的时间读完笑来老师的《自学是一门手艺》。我看的到,开始你是比较随性的,并没有对自己的计划进行分解。因为之前读书一直如此,以将书本的知识运用到生活中为目标而并非速度。

但是很快你就发现这样不行,太过随意让自己丧失了目标。因为10天过去了,你却没有太多的进展,其实常常并不是自己没有时间,而是一种拖延和懒惰造成的。忘记是因为什么了,也不知道是不是巧合,当时的你竟然想到了一个历史事件,让你为之一惊:

那是在1911年的时候了。当时世界上还有一个地方没有人去过,它是最后一个大洲 —— 南极。

当时有两个竞争团队都希望最先到达那里。其中一个是挪威的阿蒙森团队,总共5人;另一个是北欧的莫斯特团队,17人。两个团队基本都是在1911年10月在南极圈外围做好了准备,但两个多月后也就是1911年12月15日,阿蒙森团队率先到达了南极点并在21个月后回到了原来的基地完成了这次探险。

而莫斯特团队不仅仅晚到了。最后也恰恰因为晚了,回去的路上天气非常差,路上遇到越来越多的困难,不断地有人掉队,最终全军覆没。队长莫斯特和另外两个队员冻死在了离他们最后一个储藏装备的地方大概10英里的位置。他们付出了生命的代价。

在后来通过他们的日记中分析得知,阿蒙森团队之所以可以胜利有很多原因。包括充沛的物资、充分的调研、对困难有足够的预料。但最重要的是 ———— 他们有一个策略的区别:

  • 阿蒙森团队做了一个有富余量的计划,并坚持按照计划完成。即,不管天气好坏,团队坚持每天前进大概30公里
  • 莫斯特团队比较随心所欲,天气好就走的非常猛,大家走的非常多,可能有40-50公里甚至60公里,但天气不好的时候,暴风雪的时候,他们就谁在帐篷里,吃点儿东西,诅咒恶劣的天气,希望尽快转晴

其实你明白,也许到今天我们已经不需要为没有达成付出生命的代价,但是这个经验教训依然值得借鉴

因为那天的思考,你开始为这个一个月的计划进行分解。当时你先买了糖果上笑来老师那个《自学是门手艺》的音频,了解了一下每一章的难度和目标,然后试读了两天看看自己的时间花销。最后在保障自己能理解的情况下,决定前两章以每天两节的内容阅读,特殊章节比如“字符串”一天只读一章。对于第三章的内容,每天一章完成。

最终,恭喜你,终于在一个月的时间点内完成了计划

恩,好像漏了点什么。其实中间还有一个插曲对吧?

当时是看到第三章了,在看到“拆解”之后,你多少觉得后面都是“鸡汤”了,就把节奏放缓了,同MIT 的Python课程一起学习了。

我想现在的你一定和庆幸,当时那个傻叉的自己仅仅是放缓了进度,而不是完全略过了。因为在读完后你明白:

读完才是最重要的

《自学是一门手艺》给到一个完整的心里建设,这对于后面的学习远比 “硬知识” 要重要 ———— 从最开始的时候老师告诉你它并不难学会,往后给到一些学习的方法和原则,比如耐心和刻意思考。再往后会给到达到一定程度的时候会遇到的坑,比如“装权威”。最后,基于完整性特质,引出了全栈工程师,告诉我们全面的路还有很长。而且人生很长,不必惊慌

阶段性总结

前面说了很多我们在这个过程中的感触和发现,最后还是要回归这封信的主题,一起来做一点抽象,进而总结这个阶段的收获

我想一定很惊讶,为什么竟然把学习MIT的Python课的过程略过去了。其实并没有。

在我看来 MIT的Python课更像是一个引爆点,它让你对 “计划” 的理解更加具象化,所以它应该是这个总结的一部分。

为什么这么说呢?首先因为这个过程有两个特点:

  • MIT的Python课虽然依然是自学,但有了一个社群,在这里大家会每天打卡,这个多了一个好处就是,当你看到别人打卡的时候你会不自觉的有一种代入感,不太容易被懒惰或者拖延所干扰
  • 但同时也带来了一个坏处,就是每个人都会有自己的发现和自己的想法,你很容易被带跑偏甚至陷入一种迷茫和焦虑

另外,也恰恰是两个特点,让你兴奋过也纠结过迷茫过。最终,使你清楚的认识到一定要自己动手制定一个富有余量的计划,并执拗地执行它

这个里面有三个重点自己动手富有余量执拗地执行

为什么要自己动手

为什么一定要自己动手,难道别人的计划不能直接用吗?当然不是不可以,但不是这里就是那里总会有些太合适,以至于最终的效果就是没有自己动手做的好。这里至少有两个原因:

  • 1.每个人的起点多少有些差别

起点的细微差别,它会直接导致在学习同样的内容的时候花费差异的时间。你肯定明白,从 MIT 的 Python 课程来说,至少会有两个明显的起点差别:编程英语

就拿自己来说,我的英语水平可以说真心烂,英语4级而且毕业后就再没用过,而编程水平多少还好一些。在整个过程中我就会发现,在两个地方是我最耗费时间的,一个是阅读 PDF 的时候需要查单词理解意思,另一个就是在看视频的时候特别是第一遍看视频的时候有些翻译总觉得不对我就需要去查单词去理解它。

同时,我也知道在一起学的小伙伴中已经有是翻译的小伙伴了,显然我们因为同样的东西花费的时间就会完全不一样。当然你明白这个没必要气馁也无需害怕,每个人都是从什么都不会走过来的,这只是在填自己之前坑而已,反正或早或晚总归要填的

当然起点的差别除了这两个显而易见的差别外,还会有很多隐性的难以直接体现出来的差别,比如思考能力、理解能力等。这些都会间接的导致我们在学习同样的内容的时候花费差异的时间

所以,起点的差别虽然不一定很大,但是多少还是有的。直接把别人的计划拿过来反正就会有些不舒服

  • 2.每个人的时间预算很难相同

什么叫时间预算?就是你每天最少可以在这件事件上花费多少时间,并且可以持续多久

其实在脱离的学校后,每个人的职业、社会身份、文化习俗的差异,都会对他的时间花销产生或多或少的影响,以至于每个人的时间花销会有所差异,最终落实到某个事情少的的花销,还和个人的价值观,以及对这件事情的重视程度相关,最终很难相同

就拿职业来说,按照《中华人民共和国职业分类大典》中的内容,我国职业归为8个大类,66个中类,413个小类,1838个细类。单单这一个维度上可能就是存在一个巨大的差别,哪怕由于社群的属性使得某些职业的群体会更多,但再加上其他维度后,差异依然是巨大的

除此之外,还有一个 最重要 的原因:自学是我们自己的事情

什么叫富有余量

所谓的富有余量,指的是计划中所花费的时间,比你可以给到的预算时间再少一些

其中 预算时间 - 计划时间 所剩下的称之为 “预留时间” ,类似于工程中的 “预留金” 一样。它的首要功能当然是应对风险,应对什么风险呢?两种:

  • 临时事件导致的 “预算时间” 不足
  • 由于自己的疏忽和遗漏,在看到别的小伙伴发现相关内容时,返工的时间

但是我觉得另一种功能更为重要:

  • 提供一个完善自己的计划的可能性

因为自学的方法这个事情,总是需要也总会不断完善的。可能你没想到或者没有发现的内容和方法会被别的小伙伴提出来。比如在学习 MIT 的 Python 课的过程中,就有小伙伴提出应该看 PDF 的方法,也有小伙伴提出 MIT 有原版书应该和课程一起学习,这个时候 “预留时间” 就起到了作用

其实完善计划是很耗费时间的,真的不是随随便便的并入就可以的。至少你要比较相似度、考虑时间的充裕度、并考察效果后,再决定是不是并入你的计划

在学习 MIT 的 Python 课程的时候,当小伙伴提出上面的方法时,我首先比较了原版书和课程本身的相似度。原版书一共有24个章节,前10个章节和课程相对应,可以部分匹配。之后我考虑了时间的充裕度,按照我的速度将原版书加入时间会拉长两倍超出时间预算,而将 PDF 阅读纳入学习中时间消耗并不多。最后我通过两节课程的学习考察了将 PDF 阅读后的效果,发现确实有明显的加强。于是将 PDF 阅读纳入计划中,并确定每节课程的学习方法:看一遍视频 - 读一遍 PDF - 再看一遍视频

也许你会问我,为什么不能不留 “预留时间” ,需要并入的时候改计划不是也可以?也不是不可以,就是差别会很大。如果你改了计划,由于时间的限制你可能会需要调整节奏甚至舍弃一部分内容。你甚至还要为此比较一下两种不同的情况下那种效率更高,然后进一步拖后计划

所以说,富有余量 很重要,它会在不太影响内容和节奏的情况下,给你提供一个完善自己计划的可能性

尽量保障计划的完整性

1.优先保障计划可以 “通读” 学习内容

我想我们不用着急一次把所有的内容都搞清楚,也不用着急把连带的内容都看完。我们应该优先 “通读” 学习内容:

  • 《自学是一门手艺》中笑来老师说:读不懂也要读完
  • 《通往财富自由之路》中笑来老师说:读书要先看目录
  • 甚至我的语文老师也教导过我:一定要先通读古文再拆解

其实这些表达的都是一个意思,当你 “通读” 完内容之后,你就会有一个大体的轮廓。你会知道谁和谁之间有关系,你会知道每个部分大概是怎么样一个内容。这样学习第二遍的时候就会更容易理解。当然真正的好书和好文章也不是一遍就可以读完的(这也是我开始第二遍读《自学是一门手艺》才知道的,好书就是一本宝藏,至少参考文献都够你挖好久

2.尽量保障计划覆盖最小单元

如果在一个连续的计划内,无法 “通读” 学习内容,那么退而求其次 —— 尽量保障计划覆盖最小单元

什么叫最小单元?就是可以拆分的相对独立的最小学习模块。一个最小单元有着内部内容的连贯性和相关性

而计划覆盖最小单元,强调的是连续性,这是因为考虑了记忆的特性,这样可以最大限度的降低我们学习和理解成本的方法。我们知道按照 “艾宾浩斯记忆遗忘曲线” 一天之后我们记忆的内容仅会剩余25%,如果隔了更久将会更少。即便我们有所记录或者总结,还是会有很多细节的东西我们会忘记。计划覆盖最小单元,就是针对连续性或相关性的内容最大限度的降低理解和学习成本

比如 MIT 课程 我将它分为了10个最小模块,1-7分别是7个模块讲了7个独立的内容,8-9是一个模块讲类及面向对象编程,10-11是一个模块讲效率问题,12是一个模块更偏向于算法

假设你先制定了连续3天的一个学习计划完成了 MIT 的第一节课程,中间停了两天,然后又制定了一个5天的学习计划完成了 MIT 的第二节课程和第三节的一部分。那么先制定的学习计划是满足覆盖最小单元的,而后制定的学习计划虽然覆盖了第二节这个最小单元,却没有完全覆盖第三节这个最小单元,所以是不满足的

另外,除上面的两点外,最重要的是:一定要做好整理和记录。因为不管是“通读”还是“覆盖最小单元”,都要面对一个问题,就是记忆的流失和不确定。而整理和记录是最好的应对方法

执拗地执行

其实前面我们聊明白了,“执拗地执行” 就是自然而然的事情,原因无非两点:

既然已经想清楚了,并作出了一个适合自己的富有余量的计划,有什么理由不执拗地执行呢?

如果是因为懒或者怕麻烦,那就算了吧。就像笑来老师说的 “活着就挺麻烦的”

最后,还是想说,很幸运。虽然未来自学的路还很长,但我们却都跌跌撞撞的走好了这“第一步”,愿未来一直有你并肩前行

祝好

李浩天

写于 201978