《自学是门手艺》读书笔记

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

笔记

从各国的历史上来看,自学技巧这个话题从未涉及到政治,无论是在东方还是西方都是如此。结果就是,在自学能力这个小领域中,留下并流传下来的信息,几乎从未被审查,从未被摧毁,从未被侵犯,从未被扭曲 ———— 真的是个特别罕见的“纯净的领域” ———— 这真的是整个人类不可想像之意外好运。
时间从来都是匀速的。最大的幻觉在于,总是以为“时间不够了” ———— 这个幻觉最坑人。
无论学什么,都要耗费时间和精力,与此同时,更难的是保持耐心。
过早引用:对当前知识点的理解,依赖于对以后才能开始学习的某个甚至多个知识点的深入理解。

自学者最大的感受是万物相通,他们经常会说起这么一句话:“到最后,都是一样的呢。”
那些能给我们带来新视野的,能改变我们思考模式的,甚至能让我们拥有一项新技能的内容才算是“有繁殖能力的内容”。
只靠阅读习得新技能是你唯一的出路。
有思想,能解决问题,是另外一门手艺 ———— 需要终生精进的手艺。
阅读官方文档跟“看说明书”一样,全都看了,真不一定全部看懂,但看总是比不看强,因为总是有能看懂的部分……
即便是结论正确,论证过程乱七八糟也不行。
充满了过早引用的知识结构,就不可能是一遍就读懂的。
从一开始就做好将要重复很多遍的准备,从一开始就要做好第一次只能读懂个大概的准备。“尽力消解了大量的过早引用”,为自己减少了极大的理解负担。
第一遍囫囵吞枣,用个正面的一点的描述,就是“为探索未知领域先画个潦草的地图”。
“只字不差地阅读”是所有自学能力强的人都会且经常使用的技能。
当你再一次“只字不差地阅读”的时候,你经常会“惊讶地发现”,自己竟然有若干处遗漏的地方!对,这就是一种需要多次练习、长期训练才能真正掌握的技能。绝对不像听起来那么简单。
面对“过早引用”常见的知识领域,好记忆力是超强加分项。
在绝大多数正常情况下,所谓的“记不清、记不住、甚至干脆忘了”,都只不过是懒的结果 ———— 若是一个人懒,且不肯承认自己懒,又因为不肯承认而已就不去纠正,那……那就算了,那就那么活下去罢。
读书一定要“总结、归纳、整理、组织”关键知识点。
小时候经常听母亲念叨,“怕麻烦!那活着干嘛啊?活着多麻烦啊!
不管怎么样,先用起来,反正,研究透原理,不可能马上用到,需要时间漫漫。
自学编程的好处之一,就是有机会让一个人见识到“规范”、“建议”的好处。也有机会让一个人见识到不遵守这些东西会吃怎样的亏(往往是现世报)。
只要你不断重复,你的大脑会在不自主之间把那些已经掌握的知识点与当前尚未掌握的知识点区分开来,前者处理起来轻松容易,甚至可以跳过;后者需要投入更多的注意力去仔细处理。
无论之前的“学”,重复了多少遍,一旦开始练,就注定体会到各式各样的笨拙。
人们缺乏耐心的常见根源就是“之前根本就没准备花那么多时间和精力”,所以当然很容易超出“时间和精力的预算”,当然相对更容易焦虑 ———— 就好像没多少本钱的人做生意常常更容易失败一样
绝对不做预算不够的事情
活到老学到老,在我这里不是空话,所以相对于别人,我这里只不过是预算太多,太充裕了而已。
手艺么,主要是靠时间……这里的“时间”,准确地讲就是“刻意练习”的时间,而不是任何时间。
那些看起来“一出手就是高手”的人,不仅仅花很多长时间刻意练习,还总是刻意思考在哪些地方尤其要刻意练习 ———— 就是这一点差别造成了那么大的差距。
不做刻意练习的人就是在混时间。
你要习惯,归纳、总结、整理的工作,从来都不是一次就能完成的,都需要反复多次之后才能彻底完成。
刻意思考哪儿需要刻意练习
一切自学能力差的人,外部的表现都差不多,都起码包括这一条:眼里没活。
遇到不遵守约定的人或事,直接过滤,不要浪费自己的生命……
知识就是知识,它没有任何义务去具备幽默生动的属性;手艺就是手艺,它没有任何义务去具备有趣欢乐的属性
能够耐心读完那么多在别人看来“极度枯燥”的资料,是自学者的擅长。首先,平静地接受了它枯燥的本质;其次,就是经过多次实践已然明白,无论多枯燥,总能读完;无论多难,多读几遍总能读懂……于是,到最后,只不过是习惯了而已。
既然知道了真相的你,以后就没办法蒙蔽自己了 ———— 这就是收获,这就是进步。
不用非得找人教、找人带 ———— 只有这样,前途这两个字才会变得实在。
在自学这件事上,失败者的死法看起来千变万化,但其实都是一样的……只不过是因为怕麻烦或者基础知识不够而不去读重要的文档。
事先想不清楚的,就不要去做。
“小”无所谓,“完整”才是关键。
你不会的东西,对你来说感觉上就不是刚需。
一旦掌握了某项技能,它只能是刚需。
要学,想学,那就自顾自去学吧,用不着征求别人的意见。
对任何一项技能来说,刚需是自学的结果,而不是自学的原因。
全面,是掌握一门手艺的基本。绝对不能只靠一本书。多读几本书。狠一点,就是多读很多本书。
《礼记·学记》:“学然后知不足,教然后知困。知不足,然后能自反也;知困,然后能自强也。故曰:教学相长也。”
那些“成功者”其实并不在意成功,因为到死之前成长不应该也不可能结束,因为那是他们的生活方式,学习、进步、探索、迂回,甚至折腾、挫败和迷茫,都是他们生活中必不可少的内容,这是最初不自觉的选择,谈不上什么“坚持”,谈不上什么“毅力”……说实话,对他们来说,不让折腾才真痛苦呢,不学习才需要坚持和毅力呢!
与有像样作品的人打交道,总是非常值得。
把“全面完整”放到最高优先级。一旦发现自己的注意力没有集中在这上面的关键之时,一旦发现自己的注意力已经漂移到其它当前并不重要的事项上,就马上纠正。
能管理好自己时间的人,学英语学起来更容易。
在求知的领域里,分享得越多,进步越快,且社交有效性提高得更多
书本,是历史上最早的远程教育形式,即使到今天也依然是最重要最有效的远程教学形式。
无论学会什么,都要进一步刻意思考:这东西我还能用在哪儿呢?
自学者一点都不苦,因为是自发去学的,原动力在于自己。

Python 学到的内容

在我们使用函数的过程中,我们常常有意忽略它的内部如何完成从输入到输出的处理过程。
列表中的元素可以是不同类型。不过,在解决现实问题的时候,我们总是倾向于创建由同一个类型的数据构成的列表。遇到不同类型数据结构构成的列表,我们更可能做的是想办法把不同类型的数据分门别类地拆分出来,整理清楚 ———— 这种工作甚至有个专门的名称与之关联:数据清洗。
Docstring 是写给人看的,在复杂代码的 Docstring 中,写 Why 要比写 What 更重要
print 函数的使用方法以及默认参数
ordchridhelp 方法
strisidentifier 方法
类的继承关系示例:class Running_Golem(Golem),括号中类则是父类。
List comprehension 可以嵌套使用 for,甚至可以加上条件 if。[2**x for x in range(8)]
生成器表达式必须在括号内使用 sum_of_even = sum(e for e in range(10) if not e % 2)
元组是不可变序列,没有办法从里面删除元素。但是可以在末尾追加元素。严格意义上,对元组来讲,“不可变”的意思是说,“当前已有部分不可变”。但是使用了 a += 3,5 之后,再使用 id(a) 查看时,实际上已经是不同的元组了。
由于没有 ‘{‘ 和 ‘}’,空的函数需要使用 pass 关键词标识。
没有返回值的函数,默认返回的是 None
更进一步了解了 lambda 函数。add=lambda x,y : x+y
闰年规则:满足余 4 为 0 时,若余 100 为 0 且 余 400 不为 0 时,不是闰年,其他都是闰年。
Decorator:函数也是对象

  • Decorator 最常用的场景就是用来改变其它函数的行为。
  • 装饰器的执行顺序是“由里向外”的
    正则表达式
    当写 Regex 的时候,如果需要搜索的字符不是本义字符,而是以上字符时,建议都直接加上转义符号 \ 来表示。
    类别原子:
    \d:任意数字 [0-9]
    \D:任意非数字 [^0-9]
    \w:任意文本字符 [a-zA-Z0-9_]
    \W:任意非文本字符
    \s:任意空白;[\f\n\r\t\v]
    \S:任意非空白
    边界原子:
    ^: 匹配被搜索字符串的开始位置
    $:匹配被搜索字符串的结束位置
    \b:匹配单词的边界:er\b 能匹配到 coder 中的 er,却不能匹配 error 中的 er;
    \B:匹配非单词边界
    ^$ 在 Python 语言中被 \A\Z 替代
    组合原子
    er:两个原子,’e’ 和紧随其后的 ‘r’
    [er] 是一个原子,或者 ‘e’ 或者 ‘r’
    (er) 是一个原子,’er’

我的总结

  • 从 15 年开始断断续续的学习 Python,但是从未真正使用起来。阅读完本书之后,我才知道我是有多么着急的想要掌握它,虽说在第一次学习使用 Python 时,我已经有三年的 C++ 经验了,可我还是太过将 C++ 的经验强加在学习 Python 上了,当然学习的效果特别差。差到感觉根本学不进去,直到 17、18 年开始使用 Go 语言,在痛苦了两三年之后,我才深切的意识到,每种语言的思想都有其侧重,用什么语言开发,便遵从什么语言的设计去做,其实是一件非常愉快的事情,所以我再也没有打算“为难”自己。
  • 随着年龄的增长,我越来越能沉下心来了。读完这本书,我更加能沉着应对这种学了很久,但是效果不明显的感觉了。
  • 2024 年我觉得我需要重拾一下 Python,工作中使用脚本的地方还是挺多的,Shell 脚本相比 Python 还是逊色了不少。