
ON YOUR MARK
ON YOUR MARK
如何高效学习
学习的本质是坚持
永不退休的宫崎骏

比肩“动漫之神”手冢治虫的男人。
宫崎骏:十年一梦 生于1941年的1月5日,今年已经82岁了。他大学毕业后踏入动画制作工作,日后成为日本知名动画厂 吉卜力 的核心人物之一。其执导过11部长篇动画电影,多次宣布退休,2013年9月时是第7次宣布退休 ,2016年再度复出。现在,2022年,他又付出了。我们看下他的一些经典作品:
- 1986年:天空之城
- 1988年:龙猫
- 1989年:魔女宅急便
- 1992年:红猪
- 1997年:幽灵公主
- 2001年:千与千寻
- 2004年:哈尔移动城堡
- 2008年:悬崖上的金鱼公主
- 2013年:起风了
- 2024年:你想活出怎样的人生
宫崎骏因为其左翼政治立场的问题,经常受到日本右派的攻击。曾经明确的表示过,绝对不会为东京奥运会服务。什么都不会。实际上,日本大多数艺术家都是左翼人士,跟现在的日本相当不对付。
都是笨蛋

“在我看来,你们通通没有才能,一个个都是笨蛋,才能这种东西是需要靠自己挖掘创造的。我也不是什么天才,只是比谁都拼命工作,一步一个脚印走过来而已。最后回过头一看,背后一个人也没有,那帮懒惰的人在山脚下念叨着,山顶那个人真是天才。”
“开什么玩笑!”
“那些比我更有时间,精力,感性的人,为什么比我懒惰。既然你们都要浪费掉,为什么不给我?我还有好多东西想做呢。”
宫崎骏一生都在努力做动画,心思都放在工作上,忽视了家庭和孩子。导致他和两个儿子之间的关系很差。他的长子宫崎吾朗曾经说过: :::success 他是一个一百分的导演,但却是一个零分的父亲。 :::
首先是态度问题
我们人类在物理上是一个非常有趣的,吃甜食会开心,吃辣会很爽,唱歌跳舞谈恋爱会使心情愉悦。对于大多数人而言,有两件事情是逆人性的,是非常痛苦的。一个是锻炼,一个是学习。学习是一项长期的,痛苦的过程。人人平等,学霸也痛苦。
学习没有速成,只有态度+方法+时间。如果你总是想着速成,45天前端入门,30天掌握Go语言,那最好还是不要学了。
就像我们前面说的,职业素养从主观上决定你能在这一行干多久,学习态度决定着你是否能坚持下去。
给自己一个目标
我们要先给自己确定一个目标,周总理的为中华之崛起而读书,大多数人没有这样高的思想觉悟,所以我们做一个实在点的,简单点的:

先给自己一个小目标,挣他一个亿。方案的话,我可以养鸡养鸭,具体思路,你多长时间要做到什么规模,怎么做。
我们不妨把目标再小一点: 短期目标:找到一份1W+的工作,长期目标:长期目标:3-5年时,年薪50W+ 大致方案:
- 先满足找工作的基本要求,即:初级工程师的基本要求。
- 持续学习,满足高级工程师的基本要求。
具体思路:
- 学习编程语言和常用框架。
- 学习基础知识体系。
- 了解面试中常见的方案和套路。
如果我们没有明确的目标会怎么样?想想你们在大学的头几年,每天早上间歇性早起,持续性赖床;高高兴兴出去玩,上课如上坟;平常不念书,临考挂柯南。大多数人都这样,这是刻在人类DNA里的事情。最重要的问题是:我们总觉得自己很努力很爱学习,其实都是自己骗自己。千万不要自己骗自己。
很多人都认为自己爱学习,会学习,但是:
- 只想不做,缺乏行动。
- 没有目标,没有方向,没有标准。
- 不会自学,缺少技能和方法。
- 缺少实践,从不坚持。
毛主席长征到了延安后才开始读的克劳塞维茨的《战争论》,一直保持着良好的读书习惯。特朗普虽然不太靠谱,但是他相当自律。他对孩子们反复要求过:远离毒品,少喝点酒,不要抽烟,并且能够以身作则。如果你看过很多人的自传,你就会发现,成功人士普遍目标明确,非常自律。
主动与被动
:::success 主动和被动,即是态度也是方法。 :::
1946 年,美国学者埃德加·戴尔(Edgar Dale)提出了「学习金字塔」(Cone of Learning)的理论。之后,美国缅因州国家训练实验室也做了相同的实验,并发布了「学习金字塔」报告。

- 被动学习:如听讲、阅读、视听、演示,学习内容的平均留存率为 5%、10%、20% 和 30%。
- 主动学习:如通过讨论、实践、教授给他人,会将原来被动学习的内容留存率从 5% 提升到 50%、75% 和 90%。
这个模型很好地展示了不同学习深度和层次之间的对比。
你可以记住一个结论,这个结论在今后绝大多数的技术学习中都非常有效果: :::success
- 凡是别人给你讲的,给你演示的都不能有效提高你的技术能力和学习能力。
- 只有你主动开始思考,实践,总结并尝试向他人讲解时,才提高你的技术能力和学习能力。
:::
努力读书,考一个更高的分数。这是你们学生时代被反复灌输的观点。在学校里,它是对的,是有效的。在职场中,在生活中,它没有任何用处。读很多的书,做很多的练习题,考很高的分数不一定能帮你提高解决实际问题的能力,这是一种蛮劲儿。也不要去盲目追求读书的速度和数量,这是虚假的勤奋和目标。学习一门技术的本质是思辨和实践,归纳和总结,是结合自己的情况制定适合自己的方案。
学习本身在学校和职场后的本质是不变的,他们只是在不同环境下有不同的使用方法。归根结底,学习是为了:
- 了解世界。开拓眼界,这个世界上的事儿,究竟是怎么一回事,有哪些方法,又有哪些原理。
- 了解自己。对自己有一个清醒的全面的认识,有一个客观的,准确的判断。
- 改变自己。让自己活的更好一点,更舒服一点,更自由一点。
总而言之,学习是一个螺旋上升的过程,你知道越多,你不知道的越多,你不知道的越多,你就会尝试去了解更多。路漫漫其修远兮,吴将上下而求索。(需要画个图来演示) 历史必须知道的规律:历史总是曲折式前进,螺旋式上升_哔哩哔哩_bilibili
面对枯燥
计算机底层的知识是非常抽象,非常无聊,非常枯燥的东西,不要说看了,只要听老师在台上讲都能睡得很安详。 如果你发现一些知识点出现上面这种情况,不要慌:
- 这个知识点超出你目前的知识范围了,你肯定还没遇到过用到它的场景。
- 要么找一个场景,自己实践一下,有实操经验再去学理论知识。
- 要么找个大佬,捞你一下,直接给你讲清楚。
- 带着问题,反复学习。
这也是我反复和大家强调过的: :::success 我对于所有技术框架,项目实训,都是要求你们先自学,自己摸索,然后再给你们讲原理,抠细节,划重点。这样一开始会很慢,但长远来看,对你们而言效果是最好的。 :::
对于初学者而言,知识不仅枯燥还非常的多。这个多主要体现在两个方面:
- 需要学习的知识点非常多。
- 知识点之间的关系很复杂。
对于这种情况,也不要慌张,我们的策略是:小步快跑。
首先,知识是学不完的,肯定学不完的。优先学那些原理,理论等不容易发生变化的。学会一个知识点,就多一个能力。一定不要过多的花时间学哪些表面的,比如语法、花里胡哨的实现方式之类。用投资的思想来确定需要学习的东西。优先学习那些能带来长期稳定的知识和能力
其次,明确学习边界。学会每一个知识点之后,它延伸出来的,或者与之相关的其他知识点都可以了解一下,确定一下这块知识的位置和场景,为后续学习做准备。不要再某一个细枝末节上过度深究。先扩展广度,后增加深度。
最后,有明确的学习过程和记录。学习需要有一个尺度,否则很难看出来到底成长了多少。把字节学习的思考,写得代码,实现的过程都记录一下,半年到一年之后你会发现自己不知不觉间,已经走了好远好远。以后就再也不会觉得知识多了。
学习的方法
根据具体的目的不同,学习的方法也不同。针对我们程序员来说,推荐一个比较简单,实用的方法。
收集与鉴别信息
目前这个社会是自媒体泛滥的社会,人人都可以发表意见,人人都能传播知识,但是有价值的,有营养的非常少。 你们是不是也感觉到信息源非常多,意见非常乱,水平参差不齐。
我阅读中最讨厌的三件事:
- 标题党。取一个博人眼球的题目,内容灌水,骗点击。
- 说废话,车轱辘话。
- 剽窃他人作品,还不标明来源。
这也是目前各大信息平台的现状。所以,我对学生的要求:少看点短视频,少刷微博,少逛小红书和B站。少关注那些水平一般就敢对整个行业点评批评的人。
我们在学习过程中,完全不要看零碎的知识点,少看那种水平一般就到处搬运的Up主。多看一些优质渠道,优质UP的内容。如何鉴别优质内容:
- 能进入教科书的知识。教科书需要的知识点都是经过行业专家不断筛选和总结过的内容。
- 官方文档。任何语言,组件,工具的官方文档都是经过严谨的推敲和论证后放出来的。大部分是英语,不过语法和单词比较简单,借助翻译工具很容易理解。
- 经过实践的,论证,有数据支持的知识或者方案。最好是有业界大拿或者大公司生产系统多次迭代后的内容。一定不能是道听途说,或者野路子之类的内容。
- 一定是有作者自己的思考和实践后的东西,而不是照搬照抄,套模板,废话连篇的东西。
优质的渠道:
- 各大官方博客。
- 各大厂商的技术博客或者公众号。阿里技术,腾讯技术等,B站也有,但是质量一般。
- 业界大佬喜欢去的技术论坛或者社区。infoQ,极客时间,推特或者微博(大佬其实一般不喜欢在这些社交平台抛头露面)
- 业界自发组成的民间社区。GO夜读,技术集会。
- 大佬自己维护的博客。阮一峰,廖雪峰,面向信仰编程等等。
优质的UP主:有丰富的一线开发经验。
还有一些技术发展,职业规范,架构设计,职场经历类的信息,往往是非常难找到的,尤其是业界大拿的经历。钱不给到位,有些知识和方案,是绝对不会讲的。
知识地图
构建属于自己的知识地图。
一开始最好先不要去看大佬,或者高质量的文章系统,容易变成看天书。我们需要先搭建好自己的知识地图,这一阶段你最好去看那些入门级的UP主的文章和视频。学习技术不像在学校里读书,更像是考驾照: :::success 观察 ➡️ 模仿➡️ 学习理论 ➡️ 总结提高 ➡️输出给其他人 :::
就像我们上面讲的,学习分为主动和被动学习。一般情况下,我们都是被动开始学习的。这一阶段,我们主要目标是观察他是如何让代码跑起来的,具体都做了什么内容,哪些是关键节点。这一步其实没必要展开,此时我们的目的很简单,就是先看会,脑袋里形成整体框架,知道对应的知识点散落在那一块。
然后我们开始模仿。模仿其实就是实践的一部分,光看是看不会的,上手试过一两次,就知道哪些地方是难点,哪些地方自己其实没关注到。这时候就可以回过头来,把之前的视频再捋一遍。
学习理论,是对实践的补充。此时,你已经学会“怎么用了”,需要补齐“为什么这样用”。在围绕为什么这么用的基础上,需要知道哪些问题面试必考题,哪些是高频题,哪些是拔高题,哪些一般是不会考的题。
总结提高,这是最重要的一步。如果前面的步骤是吧知识地图的架子打起来了,这一步就是稳固,拧紧螺丝,并开始尝试把他链接到已有地图的某一块上。具体而言,就是把之前实践中不懂的地方搞懂,并且知道这一块知识点的用法和考察方法。用法可以提高你的技术水平,考察方法可以帮你顺利通过技术面试。
至此,知识地图的架子就搭起来了,后续的学习只需要顺藤摸瓜就可以进行了。以后就算没有人指引了,你也可以很清楚知道自己的知识体系目前是个什么情况,哪些地方掌握的还不错,哪些地方有短板。分享一下 作为初级工程师应该具有的知识地图: 有快7000字,大家可以看下面的原图。 ProcessOn Mindmap 有了这个地图之后,在遇到一些完全不懂知识点,就可以简单分为两类: :::success
- 这个知识点属于某一个我已知晓的模块,那就往这上面靠拢。
- 这是我完全没有了解过的全新领域,开辟一个新的模块。
:::
大家可以尝试画一下当前的知识地图情况。推而广之,目前自己整体的知识体系是个什么样子的。
常用学习方法
学习技巧
- **用不同的方式来学习某一个东西。**看书,听课,看博客,看别人学习记录,画图,实践等。举个最简单的例子:打游戏的时候看别人的录像来学习。
- 不要主动或者被动的打断。找个安静的,不容易被打扰的地方。耳机一带,谁也不爱。至少30分钟,不要去看手机。
- 一图胜千言。 多画图,画图本身就是对知识点的高度总结。
- 用已知去推导和关联未知。 我们常常说的“这不就是A和B的结合嘛”。这样可以快速对一个未知的知识点有一个整体上的认识。
- 勇敢的去分享。 每次和同事,朋友的分享都会让你对某个知识点有一个完整的认识,并且很容易发现自己对于哪一块掌握的还不熟悉。
- **多实践,多犯错。**实践是检验真理的唯一标准。实践难免犯错误,总结经验教训,你会认识得更深刻。但是,别人已经犯过的并且明确告诉你的地方,就不要再摔倒了。简单的低级的错误,绝对不要犯两次。
- **别记答案,记方法。**从小学唠叨到现在,以后你们工作后还会继续唠叨,只不过有了一个新的名词:方法论。
五步学习法
- 快速浏览一遍,大致知道所讲内容和知识点,以及分布情况。对整体有一个大概的认识。
- 带着问题,边看边想。是什么,为什么,使用场景,有没有其他方案。
- 无论简单与否,动手实践以下。加深印象。
- 理解内容,开始复述。讲一下每一段的大意和细节,越详细越好。能输出就输出,可以用语言转文字。查找知识空缺。
- 定期复习,常看常新。或者用到某一块的时候,就再翻翻看看。
学新技术时
举一反三
举一隅不以三隅反。举一反三是一门技能,需要着重培养。我们可以把举一反三拆分成三个能力:联想,抽象,思辨
- 联想。我们其实每天都在做。通过一个事想到另一个事情。
- 抽象。核心技能。需要你能够透过现象看本质,并且将本质抽象为一个模型,或者套路。后续的问题只要符合这个套路就都可以用这类思路来解决。
- 思辨。可以简单认为左右互搏。当你想到一个方案的时候,可以多角度,多立场的来观察,挑战以下,看看是否有漏洞。进而提高自己能够完整又全面的分析问题的能力。有助于以后做需求分析和技术方案。
训练方法:
- 设计一个场景,尝试提出各种各样的问题。
- 对于一个问题,尽可能想到多种解决方案,并熟知各个方案的优劣。(房谋杜断)
- 对于一个方案,要有各种测试和预案,使其健壮并完善。
:::success 举一反三,本质是方法论,是思考能力,可以间接提升学习能力。 :::
归纳与实践
归纳和实践可以认为是优化并丰富你的知识地图。学而不思则罔,思而不学则殆。
学完一篇课文后,老师都会让你进行中心思想的总结。这就是归纳的一种。最简单的归纳,是能够用自己的语言把事情复述一遍。 :::success 我们的知识体系越完整,内容越丰富,对知识进行归纳和总结也就越轻松。 :::
所以,不必一开始就想着去归纳和总结。一开始,我们应该是扩大自己的知识面,多阅读,多积累,开眼界。尽量多的去和别人交流,听别人分享,讨论然后思辨。闭门造车,吃独食这种,结果一定是落后就要挨打的。
如何归纳一门技术。可以有如下三步走:
- 对于整体有一个大致的认识,建立一个良好的大局观。
- 对整体进行解构,去掉包装,去掉表面,去掉多余的细节。找到规律,关节点,核心内容。
- 再重组。将每个小模块组装到一起,同时加入自己的理解。
这样就得到了一个属于自己的知识块,后续具体把他放到知识地图的哪一块,就看自己的理解了。如果可以,把自己的理解分享给其他人,听听别人的意见和想法。
归纳的能力会同时提升你的两样能力:抓重点和化繁为简。进而提高你的学习能力。
当你归纳能力训练的差不多后,你能很快读完一本小说,看完一部电视剧。然后讲给别人听。甚至可以从局中人的视角展开故事。
实践是检验真理的唯一标准。 Eat your own dog food(实践出真知), 如人饮水冷暖自知。很多场景,很多中间件,你不去理解,不犯错误,是很难很难理解的。尤其是刚开始的入门的时候。
如何学习源码?
文档,代码和博客
学习源码正常情况有这三来渠道:
- 官方文档。会写一些常用的场景,和入门教程。会教你怎么用。
- 源码。绝大多数的代码都是开源的,可以直接阅读源码的。源码里藏着所有的细节。
- 博客。博客内容里基本上也是两类:一类是多种场景下的具体用法。一类是对源码的解读。
:::success 没有什么对错,只有合适不合适。不同的阶段,看不同的东西,这样提升比较快。 :::
具体思路
先外后内。三个阶段:
- 先学会用。这个阶段多看官方文档和具体用法的博客。把这块技术或者功能的使用技巧掌握,知道它适用那些场景,不适用那些场景。
- 了解全局情况。这个阶段可以读书,也可以读文档,最好是读别人的博客。具体要求就是胸有成竹。知道这块源码的底层原理,核心模块。
- 看源码,抠细节。直接读源码,辅助以博客。重点是核心模块的具体实现方法,底层原理的实现方法。附带看一下代码风格,和一些代码小技巧。
无论怎么学,知识一定是一块一块的吸收的,既不是系统的,也不是结构化的,更别提什么融会贯通,举一反三了。随着学习的深入,你会发现,一块一块的知识点组成了一个整体,进而就有了一个全面的认识。这是一个过程,有始有终。
读源码的方法:(在你完全熟悉用法的基础上)
- 把基础知识,基础语法完全掌握。有些著名的开源组件,都是出自大佬的手笔。大佬们有一个普遍的思维:大道至简,大巧不工。一般用的都是基础语法,个别地方会用到高级用法。这是我们学习的一个点。
- 源码的组成。逻辑层,接口层,基础类型的定义等等,先把这些模块拆分出来。
- 核心模块的实现。在了解核心模块和底层原理的基础上,开始研究他的实现方法。此处可以学一下重点是代码的风格,编程的思维
- 边界问题。任何组件都有其工作场景,最难处理的是各种边界问题。重点:有哪些边界问题,怎么解决的
- 对于错误的态度和处理。错误不仅仅是错误,优秀的组件对于错误的认识和处理是可以借鉴,可以用在自己的工作中的。
- 核心算法的实现。同一个算法,不同的组件实现的方式也不太一样。可以扩展下知识面。
- 有条件的话,用编译器的调试工具跑一跑。
小技巧:
让生活越过越好
大家都有一种,明明懂得很多道理,还是过不好这一生。坦率讲有两个原因:
- 懂得还不够多。
- 对于什么算好,没有明确的定义。
个人感悟
我不敢说帮大家解决人生大事,但是有些人生感悟还是很想和大家分享分享的。
首先,不要骗自己。有时候我们会对自己说,你已经很努力了,休息会吧。你已经很久没喝奶茶了,今天来一杯吧。这种对自己的欺骗,会降低自律,会让你逐渐变得懒惰和懊悔。结局就是变成持续性垂头丧气,间歇性踌躇满志。
其次,不要被低级的乐趣迷惑。吃一顿美食,刷一会抖音,看一会搞笑视频,看一会综艺等等,这些带来的都是非常短暂的,非常低级的乐趣。如果快感来的如此简单,以后再也不会想着去获取更高层级的快感。比如通过持续的努力拿到高薪或者升职,或者拿到什么资质,又或者持续减肥,练出马甲线,腹肌之类,再或者读完一本名著,传记后那种复杂的情绪久久无法忘掉。其实大多数人早就丧失了获得这类快感的能力。
最后,不要把时间碎片化。我们一天只有24小时,抛开睡觉吃饭工作剩下的时间不足八小时,这八小时本身就是以碎片的形式穿插在各种事情中间的。如果我们再将大块的碎片,拆的更小,那我们这些时间能用来干什么?刷抖音,看微博,看会朋友圈。还会有时间去学习和提高自己么,还有时间去社交,去尽兴的玩,去外面兜兜转转看看风景么。明确的讲,连晒太阳的功夫都没有。碎片化时间越多,琐事就越多,生活质量就会下降。正确的做法是: :::success
- 提高效率。多思考那些东西可以提升工作,或者是办事效率。
- 尽可能将小的碎片时间凑一个较大块的时间。
::: 这样你会发现,自己一天能做很多事,还有闲暇时间充充电。
这“三个不要”千万别犯,因为你一旦开了口子,以后基本上就收不住了。
一些小建议
- 如果对某个电影感兴趣,直接去看原片,不要看片段剪辑或者快餐。
- 如果对某部小说感兴趣,直接看原著,其次是改变的电影动画,不要去听书,不要领读,不要带读。这些通通没有用。
- 如果对某项技能(比如锻刀大赛,模型,或者健身跳舞),尽可能去找业界大佬的分享和作品,不要看那些半瓶子的UP主的内容。
- 如果对某块知识感兴趣(比如天文地理历史文学等),可以先看相关的文献把基础知识补一下,或者看专门做相关知识分享的UP主,有一个自己初步的认识后再去看视频,纪录片等。
少看短视频,少看短视频,少看短视频。它讲的信息量又少又片面。
:::success 其实你不用做很多,你只要稍微改变一点点,就能超过百分之90以上的人。 :::
推荐
电影/电视: 《爆裂鼓手》 《后翼弃兵》 《legal high》 动漫: 《红猪》 《起风了》 《听到涛声》 《轻音少女》
一些优质的博客或者UP主: Home< 面向信仰编程杭电ACM刘春英老师的个人空间-杭电ACM刘春英老师个人主页-哔哩哔哩视频硬核课堂的个人空间-硬核课堂个人主页-哔哩哔哩视频代码随想录的个人空间-代码随想录个人主页-哔哩哔哩视频