Forwarded from codedump的电报频道 (老C)
#方法论
写技术博客时,我很喜欢画图来表达原理。也因为自己画的图多了,有了一层感悟:但凡能把技术原理通过画图清晰表达出来的,一般文章内容也不会太差。这是因为,画图不同于文字和简单的贴代码,是经过作者理解了原理再翻译成图形语言的。
按照这个推论,得到一个搜索优质技术文章的技巧:使用Google搜索技术文章时,以前是根据关键字搜索相信搜索引擎的排名,现在可以试一下切换到Google搜索中“图片”那一栏看看。图片这一栏可以在不用点击文章的情况下马上看到文章中的一些缩略图,根据画的缩略图能大体判断文章的质量。
写技术博客时,我很喜欢画图来表达原理。也因为自己画的图多了,有了一层感悟:但凡能把技术原理通过画图清晰表达出来的,一般文章内容也不会太差。这是因为,画图不同于文字和简单的贴代码,是经过作者理解了原理再翻译成图形语言的。
按照这个推论,得到一个搜索优质技术文章的技巧:使用Google搜索技术文章时,以前是根据关键字搜索相信搜索引擎的排名,现在可以试一下切换到Google搜索中“图片”那一栏看看。图片这一栏可以在不用点击文章的情况下马上看到文章中的一些缩略图,根据画的缩略图能大体判断文章的质量。
👍1
Forwarded from codedump的电报频道 (老C)
#编程
#方法论
Andrej Karpathy的一条推:
简单聊一聊我的理解。
数学视角,常见的就是算法视角,例如各种算法时间复杂度、空间复杂度的分析就属于数学视角。物理视角,考虑存储介质的特性、数据分布的局部性,我举几个例子。
* LSM类的存储引擎,写入WAL就认为写入成功,这利用了append操作比随机写操作更快的物理特性;
* btree类存储引擎,以页面(page)为最小存储单位,读写的时候以页面为单位,既利用了批量读写数据的特性,又利用了数据的局部性。
Jeaf Dean常说的各类存储的延迟数据,也是物理视角。
通常会发现,一个算法即使数学上很好,但是如果不考虑物理特性,也会丧失它的优势。
#方法论
Andrej Karpathy的一条推:
A major mistake I made in my undergrad is that I focused way too much on mathematical lens of computing - computability, decidability, asymptotic complexity etc. And too little on physical lens - energy/heat of state change, data locality, parallelism, computer architecture. The former is interesting; The latter bestows power.
(我在本科阶段犯的一个重大错误是过于关注计算的数学视角——可计算性、可判定性、渐近复杂性等,而太少关注物理视角——状态变化的能量/热量、数据局部性、并行性、计算机架构。前者很有趣;后者赋予力量。)
简单聊一聊我的理解。
数学视角,常见的就是算法视角,例如各种算法时间复杂度、空间复杂度的分析就属于数学视角。物理视角,考虑存储介质的特性、数据分布的局部性,我举几个例子。
* LSM类的存储引擎,写入WAL就认为写入成功,这利用了append操作比随机写操作更快的物理特性;
* btree类存储引擎,以页面(page)为最小存储单位,读写的时候以页面为单位,既利用了批量读写数据的特性,又利用了数据的局部性。
Jeaf Dean常说的各类存储的延迟数据,也是物理视角。
通常会发现,一个算法即使数学上很好,但是如果不考虑物理特性,也会丧失它的优势。