共计 1862 个字符,预计需要花费 5 分钟才能阅读完成。
hi,
欢迎打开第 003 期超级马里奥。相比前两期,这期写的更快了,是个不错的进步。
读完今天的内容,需要 4 分钟:
- 保持专注
- 每天至少阅读 30 分钟
- 我是如何阅读开源代码的
保持专注
这几天每天睡觉时,脑子里总有两三个不错的想法让我有实现的冲动,结果越想越深,往往几十分钟过去才能迷迷糊糊睡着,第二天醒来后又赶紧将这些想法记录下来。今天看了这段时间记录的想法,陆陆续续积累了八九个,每个想法基本都需花费几个月时间不等。
偶然看了陈春成的《夜晚的潜水艇》,对《裁云记》这篇小说中的部分内容感触比较深。
这篇小说的主人公在云彩管理局工作,日常工作是修剪云彩、在云彩上打印广告等,工作之余想选一门学问作为毕生事业。主人公先研究了半年的海洋古生物,又花几个月去探究建文帝的去向后,然后又制造永动机。每次研究一个方向,主人公都怕再研究下去会永远沉迷其中而无法自拔。主人公说到:
这些年我像在洞穴中行走。我站在分岔处,前方有许多通道,每一条都深不见底。随手扔进一颗石子,数十年后仍传来回声。我知道随便选一个洞口进去,沿途都有奇妙的钟乳和璀璨的结晶,每一条通道都无穷无尽,引人着魔。但我就是下不了决心去选择。总是走了一段,怕再走就回不了头了,又毕恭毕敬地退出来。我不知道哪个最适合我,又无法逐一尝试。选择其一,就意味着放弃了无穷减一种可能性。于是我就在分岔处耽搁了许多时日,感受着所有洞穴向我吹来的阴风。
当读到这段文字时,有个词自然而然的袭向了我:专注!我需要又一些将想做但又不重要的事删除,需要精简每天阅读的各种信息渠道了。
每天至少阅读 30 分钟
Jim Rohn 在 How to Work on Yourself 中介绍了如何实现更好的个人发展,他提了三点建议:
- 找到事情是如何运作的。
如何去了解呢?你可以通过读书或聆听、观察来向成功人士学习。Jim 给了个建议:你可以请成功人士吃个晚餐,听听他们的想法,说不定某个想法就能改变你了。 - 对于这些事付诸大量行动。
啥?你打算先写 30 天文章再看看效果?别逗了,太少了!如果你要电话推销,先打几千个电话,如果你要敲门,先敲几千家。Jim 说成功的公式是好的 idea 加大量行动,这个说法和第一期中 300 Rules 类似,成功离不开大量的付出与行动。 - 不要试图挑战系统。
找到事情运作的最好方式并跟着执行,成为一个快速学习者。
这些建议能应用在生活和工作中的很多方面:了解事情的动作规律加大量行动。另外对于阅读而言,Jim 给的建议是每天至少阅读 30 分钟。学习有两种方式,一种是从自己的经历中学习,一种是学习别人的经验,不少成功人士将他们的经历、方法都写到了书中,碰到一本这样的书,你可能会节约 5 年时间。
我是如何阅读开源代码的
最近工作上遇到一个比较底层的问题,要解决这个问题的话,需要对相关的几个系统都有一定程度的了解,不巧的是了解这些系统最主要的方式都是阅读源码。所以这里说下自己平时是如何阅读开源源码的。
- 看该系统的需求文档、设计文档等
先了解项目和系统主要是为了解决什么问题,又是如何设计的,从宏观层面了解系统的背景。如果有 issue 记录,相关的 issue 可以参考下。 - 带着问题阅读
不要漫无目的的阅读源码,每次阅读都要带着问题,对于不相关的代码应该忽略。我经常的问题是某个组件有哪些功能、属性;某个流程从开始到结束是怎样的;系统的启动机制、恢复机制等是如何实现的。 - 多 debug
对于大型项目源码而言,一些复杂的流程和类让人望而生畏,此时使用 debug 大法来跟踪代码有奇效。 - 不要太沉迷于细节
不同人对同一功能有不同的实现方式,对于大型项目而言,一般都存在多种风格,除非是要修改这部分代码,否则大多数代码并不值得花太多时间去深究细节。 - 将答案以可视化的形式展示出来
通过类图、流程图等 UML 图或某种自己能理解的方式,将上述问题的答案以图形的方式画出来。以我的经验来看,如果只是在笔记中记录相关的流程和代码,几个月后再来看时,一般还是会头大。而以图形展示则非常直接。我经常使用的工具是 Excalidraw 和 draw.io。 - 和其他人多分享交流
可以和同事探讨,也可以网上发布文章或问题来和网友交流。多听取其他人的看法,帮我解惑了好几次。
最近做了什么
本周发布了两篇关于 Obsidian 的文章,分别是介绍了下 Obsidian 和 Obsidian 如何使用 github 同步,还有一些好玩的功能没时间。另外围观了下 6 月 21 日 Cloudflare 的 Outage。
每期内容都会同步到我的网站的 newsletter 页面,如果你喜欢我的文章,可以邮件订阅,或扫描关注下方的微信公众号来关注更新: