A Hungry Fool

Author: hxy9243 Page 4 of 5

关于程序员的记忆卡片

最近开始尝试使用 Anki 记忆一些我认为重要的知识碎片,也是刚刚上手。记忆卡片软件不止 Anki 一款,但它是个不错的例子。在此分享一些心得并尝试着回答这个问题:为什么一个程序员(或各行脑力工作)需要有一个记忆卡片软件?

Anki 是什么

Anki 是一款记忆卡片软件,最早于 2006 年发布,应该算是记忆卡片软件中历史最悠久,最具影响力的。其名来源于日语的“暗记”,意思就是“记忆”。Anki 本身的概念其实非常简单:正面写上单词或是你需要记忆的概念,背面记上单词的释义或是概念的详细解释。如果你能够看到正面能够准确地回想起背面,那么表明你记住了这个卡片,Anki 就会隔更长的时间再次问你(比如一个星期),否则它会缩短间隔的时间(比如一天)。

记忆卡片背后的科学原理也很简单,就是大家熟知的,大名鼎鼎的“艾宾浩斯”遗忘曲线。当你尝试记忆一个单词或是概念,你对它的记忆会成指数型下降。而当你反复间隔一段时间重新记忆它之后,你对它的遗忘速度会下降,你对它的有效记忆时间也更久,从而达到更高的记忆效率。这个知识对学生和脑力工作者是一个福音。

Anki 是开源软件,在移动端也有 App,非常适合通勤等碎片时间中使用。它功能强大,可以插入 HTML 网页,图片,音频等富媒体。

关于思维导图

又是周末了,简单写点碎碎念。

为什么用思维导图?

最近时不时会关注一些关于高效学习的文章,“思维导图”是一个非常经常被提到的词。我之前会偶尔在纸上随手画画,但是从来没有系统地研究和使用过。我从最近的一些阅读里所理解的思维导图,基本上就是从一个话题发散,并分叉出很多子话题的大型树状图。有些变种还支持不同子话题的联系,可以用一条虚线连接(如图),这样就更像计算机算法中描述的“图”了。

v2-c311da71765f3f00e01ff41d59f317d9_720w

我对思维导图帮助学习和消化的理解是:人的短期记忆是有限的,因此很难线性地去理解一整个话题。一个思维导图能够简单明了地高度概括一个话题,阐明不同子话题之间的关系。之前可能需要 O(N) 定位的一个概念,可以在 O(logN) 时间定位。自己建立导图的这个过程也是一个有力的学习和消化的过程,因为导图在这个过程中会引导你厘清不同概念之间的关系。树状的结构能够符合很多概念之间的关系,也符合人在理解和学习时的思考方式。

在我看来,通常一本技术书的目录其实就是一个简单,高度概括的思维导图:目录和子目录解释了一个话题包含的各个概念,只不过是一条条罗列出来的。思维导图就是将他们以视觉上更友好的方式呈现出来并加以更多的解释。

另外,思维导图还有支持小组内头脑风暴,协助长期的复习和记忆的功能。我在看一些技术博客的时候也会遇到有不少博主会将一个话题的学习以思维导图的形式展示。说明思维导图还是很受欢迎和承认的。

论文阅读:对现实世界中 Go 的并发 Bug 的研究

论文链接:https://golangweekly.com/link/59972/b208593eda

最近在订阅的邮件中看到的一篇论文,来自宾州大学,第一次系统性地研究了几大 Golang 的开源软件中的由并发带来的 Bug。他们研究了以下几个软件的提交历史:Docker, Kubernetes,etcd,gRPC,CockroachDB 和 BoltDB,并得出了一系列很有趣的结论。

研究方法

这次研究的重点是并发相关的 bug,他们的研究方法是(扒了这些项目的黑历史):搜索了这些项目的 Github 提交历史,搜索“race“,“deadlock”,“synchronization”等关键字,或是和 Golang 特有的同步原语的关键字,如“context”,“once”,“WaitGroup”,等等,找出对同步 bug 的修复,甚至对某些 bug 进行了复盘和重现,并将这些 bug 归类为“阻塞”或是“非阻塞”。

不同项目中的bug数量及类型

调试一个Go应用的死锁Bug

上一周几乎花了一整周的时间调试这个头疼的死锁 Bug。死锁 Bug 很难重现,因此也很难调试。谨以此文纪念这个教训。

博客与文章推荐 2019/01/27

Augmenting Long-term Memory

http://augmentingcognition.com/ltm.html

我最近开始关注 Michael Neilsen 的个人博客,感觉像是发现了一座金矿。这是个非常有趣的计算机科学家,投资人,著名的 YCombinator 研究会员,他的研究方向是深度学习,量子计算,并涉足了人机交互等等话题。他的网站博客通常都很长并且很深入,需要有一定的理解能力耐心才能读完。

他这篇解释他如何使用 Anki 速记卡片软件的文章给了我很深的印象。尽管 Anki 并不是他的发明,也不是他最先使用,但是他将 Anki 发挥到了淋漓尽致。他的习惯是:每当读完一篇有价值有意义的文章,他会将文章分解为不同的问题,在卡片反面给出回答,然后定时回忆和复习所有的卡片(就像国内学生背单词一样)。

这样做的好处不仅在于你可以牢固地记住一篇文章的要点,你在拆解文章为问题的同时还加强了对这个问题本身的理解。而大范围的记忆知识对理解一个领域有着举足轻重的作用。

Are We Living in the Gilded Age 2.0?

https://www.history.com/news/second-gilded-age-income-inequality

美国目前又进入了一个“镀金年代”吗?科技的发展带来了生产力飞速的提升和一批一夜暴富的商人。上一次美国出现如此大规模的产业革命,是在 19 世纪末和 20 世纪初。洛克菲勒,卡耐基等等到如今都家喻户晓的名字就是在那个时代诞生的。但是一个时代华丽的外表下是严重的贫富分化,工人血汗被压榨,官商勾结,巨额的政治献金可以左右法律的平等。这个时代被马克·土温称为“镀金年代”。而今天的社会发展和那个年代有着诸多的类似。

The Writer Who Destroyed an Empire

https://www.history.com/news/second-gilded-age-income-inequality

索尔仁尼琴,被誉为“苏联的良心”。他的作品《古拉格群岛》首次揭露前苏联的古拉格流放监狱系统。他是一个真正敢说真话的学者。

It’s time for a Bill of Data Rights

https://www.technologyreview.com/s/612588/its-time-for-a-bill-of-data-rights/

数字时代的权益法案?作者提出,在 AI 盛行的当下,有必要提出新的法案,以保护数字时代网民不被监控,审查和操纵的权益。

  • The right of the people to be secure against unreasonable surveillance shall not be violated.
    人民不被不合理监控的权益应当得到保护。
  • No person shall have his or her behavior surreptitiously manipulated.
    没有人应该被暗中被操纵。(比如通过个人数据影响个人决策,如影响大选,等等。)
  • No person shall be unfairly discriminated against on the basis of data.
    没有人应该因为数据而被歧视。

工作三年记

不知不觉一晃眼已经从开始工作已经过去了三年多,有不少坎坷也有不少收获。目前还是一个初级码农,正努力朝着工程师的方向努力。借着跨年简单记录下这一年工作的感受。

Golang 初体验

最初接触 Golang 是因为工作需要。起初很不情愿地接手了一个 golang 项目,但是阴差阳错地喜欢上了这门语言。

“Weaving The Web” — — 读书笔记

最近因为机缘巧合,我找到并看完了这本“90后”的技术书 — — “Weaving The Web”。本书最早出版于 1999 年,作者正是万维网的发明人蒂姆·伯纳斯·李(Sir Tim Berners-Lee)。尽管是本非常老的书,但是内容确非常出乎意料地有趣,值得一看。

关于老罗

没错,做手机的那个老罗。

牛仔,作词家,诗人和自由的卫士

很惭愧,第一次听说约翰·佩里·巴洛(John Perry Barlow)这位伟大的互联网的先驱,是他最近的讣告。之后才了解他的生平事迹,了解他充满传奇色彩的一生和对互联网自由的贡献,知道了他是我一直关注的电子前哨基金会(Electronic Frontier Foundation, EFF)的共同创始人。

很惭愧,曾经想过写一系列的文章介绍 EFF 这个神奇的组织,想让更多人知道他们的工作和贡献,甚至翻译他们的文章,但都因为懒而耽搁了下来。

Page 4 of 5

Powered by WordPress & Theme by Anders Norén