Skip to content

为什么一定要掌握自学能力?

1 / 44

一句话解释清楚

没有自学能力的人没有未来

有两个因素需要深入考虑

  • 未来的日子还很长
  • 这世界进步得太快

我有个观察

很多人都会不由自主地去复刻父母的人生时刻表

比如你也可能观察到了父母晚婚的人自己晚婚的概率更高父母晚育的人自己晚育的概率也更高……

再比如绝大多数人的内心深处会不由自主地因为自己的父母在五十五岁的时候退休了所以就默认自己也会在五十五岁前后退休…… 于是到了四十岁前后的时候就开始认真考虑退休在不知不觉中就彻底丧失了斗志早早就活得跟已经老了很多岁似的

但是这很危险因为很多人完全没有意识到自己所面临的人生与父母所面临的人生可能完全不一样 —— 各个方面都不一样单举一个方面的例子也是比较容易令人震惊的方面

全球范围内都一样在过去的五十年里人们的平均寿命预期增长得非常惊人……

拿中国地区做例子根据世界银行的数据统计中国人在出生时的寿命预期 1960 年的 43.73 增长到了 2016 年的 76.25 ,56 年间的增幅竟然有 74.39% 之多

python
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

png

如此发展下去虽然人类不大可能永生不死但平均寿命依然在持续延长是个不争的事实与上一代不同现在的千禧一代需要面对的是百岁人生 —— 毫无疑问不容置疑

这么长的人生比默认的想象中可能要多出近一倍的人生再叠加上另外一个因素 —— 这是个变化越来越快的世界 —— 会是什么样子

我是 1972 年出生的从交通工具来看我经历过出门只能靠步行大街上都是牛车马车机动车顶多见过拖拉机到有自行车到见过摩托车到坐小汽车到自己开车到开有自动辅助驾驶功能的电动车…… 从阅读来看我经历过只有新华书店到有网络上的文字到可以在当当上在线买到纸质书到有了国际信用卡后可以在 Amazon 上第一时间阅读新书的电子版听它的有声版到现在可以很方便地获取最新知识的互动版并直接参与讨论…… 从技能上来看我经历过认为不识字是文盲到不懂英语是文盲到不懂计算机是文盲到现在不懂数据分析的基本与文盲无异……

我也见识过很多当年很有用很赚钱很令人羡慕的技能突然变成几乎毫无价值的东西最明显的例子是驾驶也就是二十多年前的哥还是很多人羡慕的职业呢我本科的时候学的是会计专业那时候我们还要专门练习打算盘呢三十年之后的今天就算有人打算盘打得再快有什么具体用处嘛我上中学的时候有个人靠出版字帖赚了大钱 —— 那时候据说只要写字漂亮就能找到好工作可今天写字漂亮与否还是决定工作好坏的决定性因素吗打印机很便宜啊

这两个因素叠加在一起的结果就是这世界对很多人来说其实是越来越残忍的

我见过太多的同龄人早早就停止了进步早早就被时代甩在身后早早就因此茫然不知所措 —— 早早晚晚你也会遇到越来越多这样的人他们的共同特征只有一个

没有自学能力

有一个统计指数叫做人类发展指数(Human Development Index),它的曲线画出来怎么看都有即将成为指数级上升的趋势

python
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

png

社会发展越来越快你要面对的人生越来越长在那一段与你的直觉猜想并不相同的漫漫人生路上你居然没有磨练过自学能力竟然只能眼睁睁地看着自己被甩下且无能为力难道接下来要在那么长的时间里苦中作乐

没有未来的日子怎么过呢

我本科学的是会计研究生跑到国外读宏观经济学没读完跑回国内做计算机硬件批发再后来去新东方应聘讲授托福课程离开新东方之后创业再后来做投资这期间不断地写书…… 可事实上我的经历在这个时代并不特殊有多少人在后来的职业生涯中所做的事情与当年大学里所学的专业相符呢

纽约联邦储蓄银行在 2012 年做过一个调查发现人们的职业与自己大学所学专业相符的比例连 30% 都不到而且我猜这个比例会持续下降的 —— 因为这世界变化快因为大多数教育机构与世界发展脱钩的程度只能越来越严重……

python
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

png

绝大多数人终生都饱受时间幻觉的拖累

小时候觉得时间太长那是幻觉长大了觉得时间越来越快那还是幻觉 —— 时间从来都是匀速的最大的幻觉在于总是以为时间不够了” —— 这个幻觉最坑人许多年前有一次我开导我老婆她说,“得学五年才行啊?!太长了!” 我说

你回头看看呗想想呗五年前你在做什么是不是回头一看的时候五年前就好像是昨天道理是一样的五年之后的某一天你回头想今天也是一转眼五年就过去…… 只不过你今天觉得需要时间太多所以不肯学 —— 但是不管你学还是不学五年还是会一转眼就过去…… 到时候再回头想起这事的时候没学的你一定会后悔 —— 事实上你已经有很多次后悔过之前要是学了就好了’,不是吗?”

现在回头看开导是非常成功的十多年后的今天她已经真的可以被称为自学专家” —— 各种运动在她那儿都不是事健身可以拿个北京市亚军登上健与美杂志封面羽毛球可以参加专业比赛潜水潜遍全球所有潜水胜地到最后拿到的各种教练证比她遇到的各地教练的都多更高级帆船可以组队横跨大西洋爬山登上喜马拉雅……

都说人要有一技之长那这一技究竟应该是什么呢

自学能力是唯一值得被不断磨练的长技

磨练出自学能力的好处在于无论这世界需要我们学什么的时候我们都可以主动去学并且还是马上开始 —— 不需要等别人教等别人带

哪怕有很强的自学能力的意思也并不是说什么都能马上学会什么都能马上学好到最后无所不精无所不通…… 因为这里有个时间问题无论学什么都需要耗费时间和精力与此同时更难的事情在于不断填补耐心以防它过早耗尽另外在极端的情况下多少也面临天分问题比如身高可能影响打篮球的表现比如长相可能影响表演的效果比如唱歌跑调貌似是很难修复的比如有些人的粗心大意其实是基因决定的等等不过以我的观察无论是什么哪怕只是学会一点点都比不会强哪怕只是中等水平就足够应付生活工作养家糊口的需求

我在大学里学的是会计专业毕业后找不到对口工作只好去做销售 —— 没人教啊怎么办自学也有自学不怎么样的时候比如当年研究生课程我就读不完后来想去新东方教书 —— 因为听说那里赚钱多 —— 可英语不怎么样啊怎么办自学离开新东方去创业时代早就变了怎么办自学学的不怎么样怎么办硬挺虽然创业这事后来也没怎么大成但竟然在投资领域开花结果 —— 可赚了钱就一切平安如意了吗并不是要面对之前从来没可能遇到的一些险恶与困境怎么办自学除了困境之外更痛苦的发现在于对投资这件事来说并没有受过任何有意义的训练怎么办自学觉得自己理解的差不多了一出手就失败怎么办接着学

我出身一般父母是穷教师出生在边疆小镇儿时受到的教育也一般也是太淘气 —— 后来也没考上什么好大学说实话我自认天资也一般我就是那种被基因决定了经常马虎大意的人岁数都这么大了情商也都不是一般的差 —— 还是跟年轻的时候一样经常莫名其妙就把什么人给得罪透了……

但我过得一直不算差

靠什么呢人么一个都靠不上到最后我觉得只有一样东西真正可靠 —— 自学能力于是经年累月我磨练出了一套属于我自己的本领只要我觉得有必要我什么都肯学学什么都能学会到够用的程度…… 编程我不是靠上课学会的英语不是哪个老师教我的写作也不是谁能教会我的教书没有上过师范课程投资更没人能教我 —— 我猜也没人愿意教我…… 自己用的东西自己琢磨挺好

关键在于自学这事并不难也不复杂挺简单的因为它所需要的一切都很朴素

于是从某个层面上来看我每天都过的很开心为什么因为我有未来凭什么那么确信因为我知道我自己有自学能力

—— 我希望你也有。

准确地讲希望你有个更好的未来

而现在我猜此刻你心中也是默默如此作想的罢

自学是门手艺

One has no future if one couldn't teach themself.

作者:李笑来

特别感谢霍炬@virushuo)、洪强宁@hongqn) 两位良师诤友在此书写作过程中给予我的巨大帮助

python
# 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

CC-BY-NC-ND


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

具体步骤

请按照以下步骤操作

  1. 注册 github.com 帐号 —— 无论如何你都必须有 github 账户
  2. 使用浏览器访问 https://github.com/selfteaching/the-craft-of-selfteaching
  3. 在页面右上部找到 “Fork” 按钮将该仓库 Fork 到你自己的账户中
  4. 使用 git clone 命令或者使用 Desktop for Github the craft of selfteaching 这个你 Fork 过来的仓库克隆到本地
  5. 按照 Jupyterlab 的安装与配置 的说明在本地搭建好 Jupyterlab —— 如果在 Jupyterlab 中浏览本书的话其中的所有代码都是可以当场执行并且你还可以直接改着玩……
  6. 在阅读过程中可以不断通过修改文章中的代码作为练习 —— 这样做的结果就是已阅读过的文件会发生变化…… 每读完一章甚至时时刻刻你都可以通过 git commit 命令向你自己 Fork 过来的仓库提交变化 —— 这就是你的阅读工作证明
  7. 仓库里有一个目录my-notes你可以把你在学习过程中写的笔记放在那里
  8. 仓库里还有另外一个目录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

bash
git branch study
git checkout study

如此这般之后你在本地工作目录中所做的任何修改都可以提交到 study 这个分支之中

你每次在 Jupyterlab 中浏览 ipynb 文件 ^ + Enter 执行 code cell 中的代码的时候该文件都会发生一些变化你也可以随意修改文件中的任何地方比如添加一个 code cell,将某段代码从头至尾一遍也可以修改某个 code cell 中的代码看看执行结果有什么不同还可以添加或者修改任何 markdown cell —— 就当自己做笔记了……

总而言之当你阅读完某一章节并如上所说那样做了一些改动之后那个 ipynb 文件就发生了一些变化于是你就可以执行以下命令

bash
git add .
git commit -am 'my study result'
git push

如此这般 study 这个分支中就记录着你的学习轨迹

当然如果在这过程中你发现本书自身有需要校对的地方那么你需要切换到 master 分支执行以下命令

bash
git checkout master
git pull

而后再修改进而按照上一节的方法提交 Pull request。

未来 https://github.com/selfteaching 下我会专门设置一个 repo,用来自动扫描 github 上本书的学习记录 —— 这种记录在过往的书籍当中是不可能存在的然而现在却可以了在我看来将来这种记录的作用甚至有可能比学历还要重要

为什么一定要掌握自学能力? | Reborn