为什么一定要掌握自学能力?
一句话解释清楚:
没有自学能力的人没有未来。
有两个因素需要深入考虑:
- 未来的日子还很长
- 这世界进步得太快
我有个观察:
很多人都会不由自主地去复刻父母的人生时刻表。
比如,你也可能观察到了,父母晚婚的人自己晚婚的概率更高,父母晚育的人自己晚育的概率也更高……
再比如,绝大多数人的内心深处,会不由自主地因为自己的父母在五十五岁的时候退休了,所以就默认自己也会在五十五岁前后退休…… 于是,到了四十岁前后的时候就开始认真考虑退休,在不知不觉中就彻底丧失了斗志,早早就活得跟已经老了很多岁似的。
但是,这很危险,因为很多人完全没有意识到自己所面临的人生,与父母所面临的人生可能完全不一样 —— 各个方面都不一样。单举一个方面的例子,也是比较容易令人震惊的方面:
全球范围内都一样,在过去的五十年里,人们的平均寿命预期增长得非常惊人……
拿中国地区做例子,根据世界银行的数据统计,中国人在出生时的寿命预期,从 1960 年的 43.73 岁,增长到了 2016 年的 76.25 岁,56 年间的增幅竟然有 74.39% 之多!
import matplotlib.pyplot as plt
import numpy as np
data = np.genfromtxt('life-expectancy-china-1960-2016.txt',
delimiter=',',
names=['x', 'y'])
da1960 = data[0][1]
da2016 = data[-1][1]
increase = (da2016 - da1960) / da1960
note = 'from {:.2f} in 1960 to {:.2f} in 2016, increased {:.2%}'\
.format(da1960, da2016, increase)
plt.figure(figsize=(10, 5))
plt.plot(data['x'], data['y'])
plt.ylabel('Life Expectancy from Birth')
plt.tick_params(axis='x', rotation=70)
plt.title('CHINA\n' + note)
# plt.savefig('life-expectancy-china-1960-2016.png', transparent=True)
plt.show()
# data from:
# https://databank.worldbank.org/data/reports.aspx?source=2&series=SP.DYN.LE00.IN
如此发展下去,虽然人类不大可能永生不死,但平均寿命依然在持续延长是个不争的事实。与上一代不同,现在的千禧一代,需要面对的是百岁人生 —— 毫无疑问,不容置疑。
这么长的人生,比默认的想象中可能要多出近一倍的人生,再叠加上另外一个因素 —— 这是个变化越来越快的世界 —— 会是什么样子?
我是 1972 年出生的。从交通工具来看,我经历过出门只能靠步行,大街上都是牛车马车,机动车顶多见过拖拉机,到有自行车,到见过摩托车,到坐小汽车,到自己开车,到开有自动辅助驾驶功能的电动车…… 从阅读来看,我经历过只有新华书店,到有网络上的文字,到可以在当当上在线买到纸质书,到有了国际信用卡后可以在 Amazon 上第一时间阅读新书的电子版、听它的有声版,到现在可以很方便地获取最新知识的互动版,并直接参与讨论…… 从技能上来看,我经历过认为不识字是文盲,到不懂英语是文盲,到不懂计算机是文盲,到现在,不懂数据分析的基本与文盲无异……
我也见识过很多当年很有用很赚钱很令人羡慕的技能 “突然” 变成几乎毫无价值的东西,最明显的例子是驾驶。也就是二十多年前,的哥还是很多人羡慕的职业呢!我本科的时候学的是会计专业,那时候我们还要专门练习打算盘呢!三十年之后的今天,就算有人打算盘打得再快,有什么具体用处嘛?我上中学的时候,有个人靠出版字帖赚了大钱 —— 那时候据说只要写字漂亮就能找到好工作;可今天,写字漂亮与否还是决定工作好坏的决定性因素吗?打印机很便宜啊!
这两个因素叠加在一起的结果就是,这世界对很多人来说,其实是越来越残忍的。
我见过太多的同龄人,早早就停止了进步,早早就被时代甩在身后,早早就因此茫然不知所措 —— 早早晚晚,你也会遇到越来越多这样的人。他们的共同特征只有一个:
没有自学能力
有一个统计指数,叫做人类发展指数(Human Development Index),它的曲线画出来,怎么看都有即将成为指数级上升的趋势。
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(10, 5))
lebdata = np.genfromtxt('life-expectancy-china-1960-2016.txt',
delimiter=',',
names=['x', 'y'])
hdidata = np.genfromtxt('hdi-china-1870-2015.txt',
delimiter=',',
names=['x', 'y'])
plt.plot(hdidata['x'], hdidata['y'], label='Human Development Index')
plt.tick_params(axis='x', rotation=70)
plt.title('China: 1870 - 2015')
plt.plot(lebdata['x'], lebdata['y'] * 0.005, label='Life Expectancy from Birth')
plt.plot(secondary_y=True)
plt.legend()
# plt.savefig('human-development-index-china-1870-2015.png', transparent=True)
plt.show()
# link:
# https://ourworldindata.org/human-development-index
# data from:
# blob:https://ourworldindata.org/44b6da71-f79e-42ab-ab37-871e4bd256e9
社会发展越来越快,你要面对的人生越来越长,在那一段与你的直觉猜想并不相同的漫漫人生路上,你居然没有磨练过自学能力,竟然只能眼睁睁地看着自己被甩下且无能为力,难道接下来要在那么长的时间里 “苦中作乐” 吗?
没有未来的日子,怎么过呢?
我本科学的是会计,研究生跑到国外读宏观经济学没读完,跑回国内做计算机硬件批发,再后来去新东方应聘讲授托福课程,离开新东方之后创业,再后来做投资,这期间不断地写书…… 可事实上,我的经历在这个时代并不特殊。有多少人在后来的职业生涯中所做的事情与当年大学里所学的专业相符呢?
纽约联邦储蓄银行在 2012 年做过一个调查,发现人们的职业与自己大学所学专业相符的比例连 30% 都不到。而且,我猜,这个比例会持续下降的 —— 因为这世界变化快,因为大多数教育机构与世界发展脱钩的程度只能越来越严重……
import matplotlib.pyplot as plt
labels = ['Major Match', '']
sizes = [273, 727]
colors = ['#E2E2E2', '#6392BF']
explode = (0, 0.08)
plt.figure(figsize=(7, 7))
plt.pie(sizes,
labels=labels,
explode=explode,
autopct='%1.1f%%',
colors=colors,
startangle=270,
shadow=True)
# plt.savefig('major-match-job.png', transparent=True)
plt.show()
# data from:
# https://libertystreeteconomics.newyorkfed.org/2013/05/do-big-cities-help-college-graduates-find-better-jobs.html
绝大多数人终生都饱受时间幻觉的拖累。
小时候觉得时间太长,那是幻觉;长大了觉得时间越来越快,那还是幻觉 —— 时间从来都是匀速的。最大的幻觉在于,总是以为 “时间不够了” —— 这个幻觉最坑人。许多年前,有一次我开导我老婆。她说,“啊?得学五年才行啊?!太长了!” 我说,
“你回头看看呗,想想呗,五年前你在做什么?是不是回头一看的时候,五年前就好像是昨天?道理是一样的,五年之后的某一天你回头想今天,也是 ‘一转眼五年就过去’ 了…… 只不过,你今天觉得需要时间太多,所以不肯学 —— 但是,不管你学还是不学,五年还是会 ‘一转眼就过去’ 的…… 到时候再回头,想起这事的时候,没学的你,一定会后悔 —— 事实上,你已经有很多次后悔过 ‘之前要是学了就好了’,不是吗?”
现在回头看,开导是非常成功的。十多年后的今天,她已经真的可以被称为 “自学专家” —— 各种运动在她那儿都不是事。健身,可以拿个北京市亚军登上健与美杂志封面;羽毛球,可以参加专业比赛;潜水,潜遍全球所有潜水胜地,到最后拿到的各种教练证比她遇到的各地教练的都多、更高级;帆船,可以组队横跨大西洋;爬山,登上喜马拉雅……
都说,人要有一技之长。那这一技究竟应该是什么呢?
自学能力是唯一值得被不断磨练的长技。
磨练出自学能力的好处在于,无论这世界需要我们学什么的时候,我们都可以主动去学,并且还是马上开始 —— 不需要等别人教、等别人带。
哪怕有很强的自学能力的意思也并不是说,什么都能马上学会、什么都能马上学好,到最后无所不精无所不通…… 因为这里有个时间问题。无论学什么,都需要耗费时间和精力,与此同时更难的事情在于不断填补耐心以防它过早耗尽。另外,在极端的情况下,多少也面临天分问题。比如身高可能影响打篮球的表现,比如长相可能影响表演的效果,比如唱歌跑调貌似是很难修复的,比如有些人的粗心大意其实是基因决定的,等等。不过,以我的观察,无论是什么,哪怕只是学会一点点,都比不会强。哪怕只是中等水平,就足够应付生活、工作、养家糊口的需求。
我在大学里学的是会计专业,毕业后找不到对口工作,只好去做销售 —— 没人教啊!怎么办?自学。也有自学不怎么样的时候,比如当年研究生课程我就读不完。后来想去新东方教书 —— 因为听说那里赚钱多 —— 可英语不怎么样啊!怎么办?自学。离开新东方去创业,时代早就变了,怎么办?自学,学的不怎么样,怎么办?硬挺。虽然创业这事后来也没怎么大成,但竟然在投资领域开花结果 —— 可赚了钱就一切平安如意了吗?并不是,要面对之前从来没可能遇到的一些险恶与困境,怎么办?自学。除了困境之外,更痛苦的发现在于对投资这件事来说,并没有受过任何有意义的训练,怎么办?自学。觉得自己理解的差不多了,一出手就失败,怎么办?接着学。
我出身一般,父母是穷教师。出生在边疆小镇,儿时受到的教育也一般,也是太淘气 —— 后来也没考上什么好大学。说实话,我自认天资也一般,我就是那种被基因决定了经常马虎大意的人。岁数都这么大了,情商也都不是一般的差 —— 还是跟年轻的时候一样,经常莫名其妙就把什么人给得罪透了……
但我过得一直不算差。
靠什么呢?人么,一个都靠不上。到最后,我觉得只有一样东西真正可靠 —— 自学能力。于是,经年累月,我磨练出了一套属于我自己的本领:只要我觉得有必要,我什么都肯学,学什么都能学会到够用的程度…… 编程,我不是靠上课学会的;英语,不是哪个老师教我的;写作,也不是谁能教会我的;教书,没有上过师范课程;投资,更没人能教我 —— 我猜,也没人愿意教我…… 自己用的东西自己琢磨,挺好。
关键在于,自学这事并不难,也不复杂,挺简单的,因为它所需要的一切都很朴素。
于是,从某个层面上来看,我每天都过的很开心。为什么?因为我有未来。凭什么那么确信?因为我知道我自己有自学能力。
—— 我希望你也有。
准确地讲,希望你有个更好的未来。
而现在我猜,此刻,你心中也是默默如此作想的罢。
自学是门手艺
One has no future if one couldn't teach themself.
作者:李笑来
特别感谢霍炬(@virushuo)、洪强宁(@hongqn) 两位良师诤友在此书写作过程中给予我的巨大帮助!
# pseudo-code of selfteaching in Python
def teach_yourself(anything):
while not create():
learn()
practice()
return teach_yourself(another)
teach_yourself(coding本书的版权协议为 CC-BY-NC-ND license。

01. 前言
想写一本关于自学能力的书,还真的不是一天两天的事,所以肯定不是心血来潮。
等我快把初稿框架搭完,跟霍炬说起我正在写的内容时,霍炬说:
你还记得吗,你第一次背个包来我家的时候,咱们聊的就是咋写本有意思的编程书……
我说:
真是呢!十三年就这么过去了……
不过,这次真的写了。写出来的其实并不是,或者说,并不仅仅是 “一本编程书”。
这本 “书” 是近些年我一直在做却没做完整的事情,讲清楚 “学习学习再学习”:
学会学习之后再去学习……
只不过,这一次我阐述地更具体 —— 不是 “学会学习”,而是 “学会自学” —— 这一点点的变化,让十多年前没写顺的东西,终于在这一次迎刃而解,自成体系。
以前,我在写作课里讲,写好的前提就是 “Narrow down your topic” —— 把话题范围缩小缩小再缩小…… 这次算是给读者一个活生生的实例了罢。
自学能力,对每个个体来说,是这个变化频率和变化幅度都在不断加大的时代里最具价值的能力。具备这个能力,不一定能直接增加一个人的幸福感(虽然实际上常常确实能),但它一定会缓解甚至消除一个人的焦虑 —— 若是在一个以肉眼可见的方式变化着的环境里生存,却心知肚明自己已然原地踏步许久,自己正在被这个时代甩在身后,谁能不焦虑呢?
实际上,这些年来我写的书,都是关于学习的,无论是《把时间当作朋友》,还是《通往财富自由之路》,甚至《韭菜的自我修养》,你去看就知道,背后都是同样的目标:学习、进步 —— 甚至进化。
这一次的《自学是门手艺》,首先,可以看作是之前内容的 “实践版”:
完成这本书的内容,起码会习得一个新技能:编程。
更为重要的是,可以把《自学是门手艺》当作之前内容的 “升级版”:
自学能力,是持续学习持续成长的发动机……
仔细观察整个人群,你就会发现一个惊人且惊悚的事实:
至少有 99% 的人终生都没有掌握自学能力!
其实这个数字根本不夸张。根据 2017 年的统计数据,从 1977 年到 2017 年,40 年间全国大学录取人数总计为 1.15 亿左右(11518.2 万),占全国人口数量的 10% 不到,另外,这其中一半以上是专科生…… 你觉得那些 4% 左右的本科毕业生中,带着自学能力走入社会的比例是多少?不夸张地讲,我觉得 1% 都是很高的比例了 —— 所以,前面提到的 99% 都是很客气的说法。
绝大多数人,终其一生都没有自学过什么。他们也不是没学过,也不是没辛苦过,但事实却是:他们在有人教、有人带、有人逼的情况下都没真学明白那些基础知识…… 更可怕的是,他们学的那些东西中,绝大多数终其一生只有一个用处:考试。于是,考试过后,那些东西就 “考过即弃” 了…… 不得不承认,应试教育的确是磨灭自学能力的最有效方法。
在随后的生活里,尽管能意识到自己应该学点什么,常有 “要是我也会这个东西就好了” 的想法,但基本上百分之百以无奈结束 —— 再也没有人教、再也没有人带、再也没有人逼…… 于是,每次 “决心重新做人” 都默默地改成 “继续做人” 而后逢年过节再次许愿 “重新做人”……
这是有趣而又尴尬的真相:
没有不学习的人。
你仔细观察就知道了,就算被你认为不学无术的人,其实也在学习,只不过,他们的选择不同,他们想学的是投机取巧,并天天琢磨怎样才能更好地投机取巧……
但他们不是最倒霉的人。最倒霉的人是那种人,也 “认真学了”,可总是最终落得个越来越焦虑的下场…… 经常有一些人指责另外一些人 “贩卖焦虑” —— 根据我的观察,这种指责的肤浅在于,焦虑不是被卖方贩卖的产品,焦虑其实是买方长期自行积累的结果。
别人无法贩卖给你焦虑,是你自己焦虑 —— 是你自己在为自己不断积累越来越多的焦虑……
然而,又有谁不想解决掉焦虑呢?又有谁不想马上解决掉焦虑呢?
于是,你焦虑,你就要找解决方案。而焦虑的你找到的解决方案,就是花个钱买本书,报个班,找个老师,上个课…… 这能说是别人贩卖焦虑给你吗?
自学能力强的人,并非不花钱,甚至他们花的钱可能更多。他们也花钱买书,而且买更多的书;他们也可能花钱上课,而且要上就上最好的课、最好的班;他们更经常费尽周折找到恰当的人咨询、求教、探讨 —— 所以,事实上,他们更可能花了更多的钱……
但自学能力强的人不焦虑,起码他们不会因为学习以及学习过程而焦虑 —— 这是重大差别。
而焦虑的大多数,并不是因为别人贩卖焦虑给他们,他们才 “拥有” 那些焦虑 —— 他们一直在焦虑,并且越来越焦虑……
为什么呢?总也学不会、学不好,换做是你,你不焦虑吗?!
生活质量就是这样一点一点被消磨掉的 —— 最消耗生活质量的东西,就是焦虑。
我相信,若是《自学是门手艺》这本书真的有用,它的重要用处之一就是能够缓解你的焦虑,让你明白,首先焦虑没用,其次,有办法也有途径让你摆脱过往一事无成的状况,逐步产生积累,并且逐步体会到那积累的作用,甚至最后还能感觉到更多积累带来的加速度…… 到那时候,焦虑就是 “别人的事情” 了。
自学没有什么 “秘诀”。它是一门手艺,并且,严格意义上来讲,它只是一门手艺。
手艺的特点就是无需天分。手艺的特点就是熟练程度决定一切。从这一点上来看,自学这门手艺和擀饺子皮没什么区别 —— 就那点事,刚开始谁都笨手笨脚,但熟练了之后,就那么回事…… 而已。
做什么事都有技巧,这不可否认。
自学当然也有技巧…… 不过,请做好思想准备:
这儿的空间,没什么新鲜……
—— 这是崔健一首歌里的歌词片段,但放在这里竟然非常恰当到位。
一切与自学相关的技巧都是老生常谈。
中国人说,熟能生巧;老外说,Practice makes perfect —— 你看,与自学相关的技巧,干脆不分国界……
—— 因为这事人类从起点开始就没变过 —— 每代人都有足够多的人在自学这件事上挣扎…… 有成的有不成的;成的之中有大成有小成…… 可有一件事同样不变:留下的文字、留下的信息,都是大成或者小成之人留下的,不成的人不声不响就销声匿迹。
并且,从各国历史上来看,自学技巧这个话题从未涉及到政治,无论是在东方还是西方都是如此。结果就是,在自学能力这个小领域中,留下并流传下来的信息,几乎从未被审查,从未被摧毁,从未被侵犯,从未被扭曲 —— 真的是个特别罕见的 “纯净的领域” —— 这真的是整个人类不可想像之意外好运。
这就是为什么一切的自学技巧到最后肯定是老生常谈的原因。
大部分年轻人讨厌老生常谈。
但这还真的是被误导的结果。年轻人被什么误导了呢?
每一代人都是新鲜出生,每一代人出生时都在同一水准…… 随着时间的推移,总是庸者占绝大多数,这个 “绝大多数” 不是 51%,不是 70%,而是 99%!—— 年轻人吃亏就吃在没把这个现象考虑进来。
也就是说,虽然有用的道理在不断地传播,可终究还是 99% 的人做不到做不好,于是:
讲大道理的更可能是庸者、失败者,而不是成功者。
人类有很多天赋。就好像我反复提到的那样,“就算不懂也会用” 是人类的特长。同样的道理,人类在这方面同样擅长:
无论自己什么样,在 “判断别人到底是不是真的很成功” 上,基本上有 99% 的把握……
所以,十岁不到的时候,绝大多数小朋友就 “看穿” 了父母,后来再 “看穿” 了老师…… 发现他们整天说的都是他们自己做不到的事情…… 于是误以为自己 “看穿” 了整个世界。
那时候小朋友们还没学、或者没学好概率这个重要知识,于是,他们并不知道那只不过是 99% 的情况,而且更不知道 “因素的重要性与它所占的比例常常全无正相关”,所以当然不知道那自己尚未见到的 1% 才可能是最重要的……
于是,99% 的小朋友们一不小心就把自己 “搭了进去”:
不仅讨厌老生常谈,而且偏要对着干,干着干着就把自己变成了另外一个属于那 99% 的另外一个老生……
这是 99% 的人终其一生的生动写照。
做 1% 很难吗?真的很简单,有时仅仅一条就可能奏效:
在自学这件事上,重视一切老生常谈……
很难吗?不难,只不过是一个 “开关” 而已。
当我动手写这本 “书” 的时候,是 47 岁那年(2019)的春节前 —— 显然,这个时候我也早就是一位 “老生” 了…… 并且,这些道理我已经前后讲了二十年!算是 “常谈” 甚至 “长谈” 了罢……
开始在新东方教书那年,我 28 岁;用之前那一点三脚猫的编程能力辅助着去写《TOEFL 核心词汇 21 天突破》是 2003 年;后来写《把时间当作朋友》是 2007 年,这本书的印刷版出版发行是在 2009 年;再后来陆续写了很多内容,包括没有纸质版发行只有在线版的《人人都能用英语》(2013);以及因为在罗振宇的得到 App 上开专栏,把之前写过的《学习学习再学习》重构且扩充而出版的《通往财富自由之路》(2017);甚至连《韭菜的自我修养》(2018)都是讲思考、学习、和认知升级的……
说来说去,就那些事 —— 没什么新鲜。
这中间也有很多写了却没写完,或者因为写得自己不满意扔在柜子里的东西,比如《人人都是工程师》(2016)—— 哈!我就是这么坚韧,有了目标就会死不放弃…… 3 年后的今天,我终于用那个时候完全想不到的方式完成了当时的目标,并且,做到了很多 3 年前自己都完全想象不到的事情。
在写当前这本《自学是门手艺》的过程中,我从一开始就干脆没想给读者带来什么 “新鲜” 的或者 “前所未见” 的自学技巧 —— 因为真的就没有,根本就没有什么新鲜的自学技巧…… 没有,真的没有 —— 至少,我自己这么久了还是真的没见识过。
然而,我算是最终能做到的人。知道、得到、做到之间,均各不相同。
二十年前,在拥挤的课堂里坐在台下听我讲课的小朋友们,绝大多数在当时应该没有想到他们遇到了这样一个人 —— 二十年后,刚认识我的人也不会自动知道我是这样的人。
但是,这些年里,看到我在一点一点进步、从未原地踏步的人很多很多…… 我猜,所谓的 “榜样”,也不过如此了罢。
不夸张地讲,这可能是当前世界上最硬核的鸡汤书了 —— 因为,虽然它就是鸡汤(李笑来自认就是个鸡汤作者),但它不是 “只是拿话糊弄你” 那种,也不是 “只不过是善意的鼓励” 那种,它是那种 “教会你人生最重要的技能” 的鸡汤,并且还不仅仅只有一种技能,起码两个:“自学能力” 和 “编程能力”…… 而这两个能力中的无论哪一种,都是能确定地提高读者未来收入的技能,对,就是 100% 地确定 —— 有个会计专业的人求职的时候说 “我还会编程” 且还能拿出作品,你看看他可不可能找不到工作?你看看他是不是能薪水更高?
#! —— 这是个程序员能看懂的梗。
关键在于,这个老生不是说说而已的老生,他是能够做到的人:
- 一个末流大学的会计专业毕业的人不得已去做了销售;
- 这个销售后来去国内最大的课外辅导机构当了 7 年 TOEFL/GRE/GMAT 老师;
- 这个英语老师后来同时成了很多畅销书、长销书的作者;
- 这个作者后来居然成了著名天使投资人;
- 这个投资人后来竟然写了本关于编程入门的书籍;
- 这本 “书” 最终竟然还是一个完整的产品,不仅仅是 “一本书”……
然而呢?
—— 然而,即便是这样的老生,也讲不出什么新鲜道理。
因为啊,历史上留下来的所有关于自学的技巧,都是人类史上最聪明的人留下来的 —— 你我这样的人,照做就可以了…… 现在你明白怎么回事了吧?
记住罢 ——
千万不要一不小心就把自己搭进去……
李笑来
初稿完成于 2019 年 2 月 27 日
02. 如何证明你真的读过这本书?
積ん読
日语里有个很好玩的词,“積ん読”(tsundoku):
指那些买回来堆在那里还没读过的(甚至后来干脆不看了的)书……
细想想,每个人都有很多很多 “積ん読”。小时候我们拿回家的教科书中就有相当一部分,其实就是 “積ん読”,虽然那时候掏钱买书的是父母,不仔细看、或者干脆不看的时候,也知道自己在偷懒…… 再后来就是 “主动犯罪” 了 —— 比如,很多人买到手里的英语词汇书是根本就没有翻到过第二个列表的,乃至于过去我常常开玩笑说,中国学生都认识一个单词,abandon,不是吗?这个单词是很多很多人 “决心重新做人” 而后 “就这样罢” 的铁板钉钉的见证者。
在没有电子书的时代,印刷版书籍多少还有一点 “装饰品” 功用,可是到了电子书时代,谁知道你的设备里有多少付费书籍呢?攒下那么多,其实并没有炫耀的地方,给谁看呢?据说,Kindle 的后台数据里可以看到清楚的 “打开率”,大抵上也是在 ¼ ~ ⅓ 之间,也就是说,差不多有 ⅔ ~ ¾ 的电子书籍被购买下载之后,从来就没有被打开过。
如此看来,付费之后并不阅读,只能欺骗一个对象了:自己。跟心理学家们之前想象的不同,我认为人们通常是不会欺骗自己的,至少很难 “故意欺骗自己”。所以,对于 “买了之后坚决不读” 这个现象,我不认为 “给自己虚妄的满足感” 是最好的解释。
更朴素一点,更接近真相的解释是:
那百分之七八十的人,其实是想着给自己一个希望……
—— 等我有空了一定看。嗯。
说来好笑,其实每个人共同拥有的目标之一是这样的:
成为前百分之二十的少数人……
然而,PK 掉百分之七八十的人的方法真的很简单很简单啊:
把买来的书都真真切切地认真读过就可以了。
这实在是太简单了罢?!可是…… 我知道你刚刚那个没出息的闪念:
那我少买书甚至不买书不就可以了吗?
你自己都知道这是荒谬的,却忍不住为你的小聪明得意 —— 其实吧,幸亏有你们在,否则我们怎么混进前百分之二十呢?
PoW
比特币这个地球上第一个真正被证明为可行的区块链应用中有一个特别重要的概念,叫做 “工作证明”(Proof of Work)—— 你干活了就是干活了,你没干活就是没干活,你的工作是可被证明的……
借用这个思路,我设计了个方法,让你有办法证明自己就是看过这本书,就是读完了这本书 —— 你能向自己也向别人证明自己曾经的工作…… 是不是挺好?
证明的方法是使用 github.com 这个网站以及版本控制工具 git。
具体步骤
请按照以下步骤操作:
- 注册 github.com 帐号 —— 无论如何你都必须有 github 账户;
- 使用浏览器访问 https://github.com/selfteaching/the-craft-of-selfteaching;
- 在页面右上部找到 “Fork” 按钮,将该仓库 Fork 到你自己的账户中;
- 使用
git clone命令或者使用 Desktop for Github 将 the craft of selfteaching 这个你 Fork 过来的仓库克隆到本地;- 按照 Jupyterlab 的安装与配置 的说明在本地搭建好 Jupyterlab —— 如果在 Jupyterlab 中浏览本书的话,其中的所有代码都是可以 “当场执行” 的,并且,你还可以直接改着玩……
- 在阅读过程中,可以不断通过修改文章中的代码作为练习 —— 这样做的结果就是已阅读过的文件会发生变化…… 每读完一章,甚至时时刻刻,你都可以通过
git commit命令向你自己 Fork 过来的仓库提交变化 —— 这就是你的阅读工作证明;- 仓库里有一个目录,
my-notes,你可以把你在学习过程中写的笔记放在那里;- 仓库里还有另外一个目录,
from-readers;那是用来收集读者反馈的 —— 将来你可以写一篇《我的自学之路》,放在这个目录里,单独创建一个分支,而后提交pull request,接受其他读者投票,若是达到一定的赞同率,那么你的文章就会被收录到主仓库中被更多人看到,激励更多的人像你一样走上自学之路……
当然,为了这么做,你还要多学一样反正你早晚都必须学会的东西,Git —— 请参阅附录《Git 入门》。
时间就是这样,我们没办法糊弄它。而有了 git 这样的工具之后,我们在什么时候做了什么样的工作,是很容易证明的 —— 这对我们来说真是天大的好事。
如何使用 Pull Request 为这本书校对
另外,在你阅读的过程中,发现有错别字啊、代码错误啊,甚至有 “更好的表述” 等等,都可以通过 pull request 来帮我改进 —— 这也是一种 “工作证明”。
(1) 使用浏览器访问 https://github.com/selfteaching/the-craft-of-selfteaching
(2) 点击右上角的 “Fork 按钮”,将该仓库 Fork 到你的 Github 账户中

(3) 创建一个新分支,可以取名为 from-<your_username>,比如,by git.basic.tutorial;之后点击 Create Branch 建立新分支。

(4) 在新分支下进行修改某个文件,而后提交 —— 提交前不要嫌麻烦,一定要在 Comment 中写清楚修改说明:

以上示例图片中是修改了 README.md 文件 —— 事实上,你应该提交的是的确有必要的校对。
另外,请注意:在创建分支之前,要将你的 Fork 更新到最新版。具体操作方法见下一节《如何在 Github 网站上将自己的 Fork 与原仓库同步》。
(5) 在页面顶部选择 Pull request 标签:

而后点击 Compare & pull request 按钮 —— 如果看不到这个按钮,那就点击下面刚刚修改文件的链接,如上图中的 “Update README.md”(这是你刚刚提交修改时所填写的标题)。

确认无误之后,点击 Create pull request 按钮。

(6) 随后,Github 用户 @xiaolai —— 就是我,即,the-craft-of-selfteaching 这个仓库的所有者,会被通知有人提交了 Pull request,我会看到:

在我确认这个 Pull request 修改是正确的、可接受的之后,我就会按 Merge pull request 按钮 —— 如此这般,一个修正就由你我共同完成了。

注意
提交 Pull request 的时候,最佳策略如下:
- 提交 Pull request 之前,必须先将你的 Fork 的 master 与原仓库同步到最新;
- 从 master 创建 新的 branch 进行增补、修改等操作;
- 尽量每次只提交一个小修改;
- 提交时尽量简短且清楚地说明修改原因;
- 耐心等待回复。
当自己的 Fork 过来的仓库已经被你在本地 “玩残” 了的时候,它千万不能被当作用来提交 Pull request 的版本。自己本地怎么玩都无所谓,但需要向别人提交 Pull request 的时候,必须重新弄一个当前最新版本到本地,而后再在其基础上修改。
如何在 Github 网站上将自己的 Fork 与原仓库同步
(1) 在你的 Fork 页面中如下图所示,点击 Compare 链接:

(2) 将 base repository 更改成当前自己的 Fork,在图示中即为 gitbasictutorial/the-craft-of-selfteaching:

(3) 这时候,页面会显示 There isn't anything to compare.,因为你在比较 “自己” 和 “自己”。点击 compare across forks 链接:

(4) 将 head repository 更改成 Upstream Repository(即,上游仓库),在图示中即为 selfteaching/the-craft-of-selfteaching:

(5) 稍等片刻,你会看到比较结果;而后你可以创建一个 Pull request —— 这是一个由你自己向你自己的 Fork 仓库提交的 Pull request:

(6) 而后你在 Pull requests 标签页里会看到你刚刚提交的 Pull request:

(7) 同意并合并之后的结果是,你的 Fork 与上游仓库同步完成了:

当然,有时会出现一些你无法解决的问题,那么,还有一个最后的方法:
将你的 Fork 删除,而后重新到 https://github.com/selfteaching/the-craft-of-selfteaching 页面按一次
Fork按钮……
如何使用 github 记录自己的学习过程
你可以在本地建立一个分支(branch),例如,取名为 study:
git branch study
git checkout study如此这般之后,你在本地工作目录中所做的任何修改,都可以提交到 study 这个分支之中。
你每次在 Jupyterlab 中浏览 ipynb 文件,按 ^ + Enter 执行 code cell 中的代码的时候,该文件都会发生一些变化;你也可以随意修改文件中的任何地方,比如,添加一个 code cell,将某段代码从头至尾 “敲” 一遍;也可以修改某个 code cell 中的代码看看执行结果有什么不同;还可以添加或者修改任何 markdown cell —— 就当自己做笔记了……
总而言之,当你阅读完某一章节并如上所说那样做了一些改动之后,那个 ipynb 文件就发生了一些变化。于是,你就可以执行以下命令:
git add .
git commit -am 'my study result'
git push如此这般,在 study 这个分支中就记录着你的学习轨迹。
当然,如果在这过程中,你发现本书自身有需要校对的地方,那么,你需要切换到 master 分支,执行以下命令:
git checkout master
git pull而后再修改,进而按照上一节的方法提交 Pull request。
未来,在 https://github.com/selfteaching 下我会专门设置一个 repo,用来自动扫描 github 上本书的学习记录 —— 这种记录在过往的书籍当中是不可能存在的,然而,现在却可以了。在我看来,将来这种记录的作用甚至有可能比 “学历” 还要重要。