学习做一个有品味的人

说实话，我现在还是感觉很难接受这样的事实，总有一种不真实的感觉。传说陈皓已经离世。

## 0 #

昨天中午的时候，就和之前好多好多个无聊的那个时间一样，我在路上刷着朋友圈去公司。一看一个哥们贴了个图。大致内容是“经过 XXX 确认，我们的挚友 XXX 突发心梗辞世”。

“啥？？？”

我发出了问询的回复，并且打开其它服务开始交叉验证。要让我知道这是一个假消息，看我不抨击一下这群胡乱说话的！但是看着这儿一些信息，那儿一些信息，沉默了。

掰手指头算了下，那天还是我的生日。和之前很多很多的生日一样，我在那个周六度过了风平浪静的一天。却完全不曾料想过，在那个时候，一位我尊敬的前辈已经到了另一个世界。

> 另外，我在至少45岁前不会出书，因为我觉得在那之前，我是不会沉淀足够的学识，没有资格出书。

犹记得陈皓叔叔在博客里这样的内容。所以书呢？所以就这样鸽了？不知从何而来的，从心中产生了这样一个莫名的想法。

## 1 #

我爸妈都不懂计算机。在我大学时候，计算机专业的我，接听老爹教诲，还老能收到这样的问询：“最近上网不？”，我总是没好气地回答，“上，24 小时都上着网。”在他概念中，“上网”就是等价于玩点各种网络游戏。

而我，作为一个手残，老实说玩单机兴趣有限，玩网游我是别人的体验。而在更早的之前，却对代码的世界感到了深切的迷恋。犹记得在很小的时候，家人送我一个文曲星，里面内置了一个 GVBASIC。没啥教程，只有一个内置的 API 文档，自己慢慢摸索。老师上课讲一元二次方程，讲求根，我自己看着 API 去做，感到无穷的快乐。哦对了，`RND` 和各种绘图指令也非常棒，我每次都会浪费一点行数，给自己画个开屏动画。

家人还送我过一些奇怪的关于黑客的书，我也很开心，感觉和《笑傲江湖》一样有趣。

但当我努力和他们解释计算机领域更广阔的内容，比如软件开发、人工智能等，但他们往往很难理解这些概念。我曾经尝试用简单的语言和实例来解释，但他们的回应往往是茫然的眼神和困惑的表情。我不知道怎么和他们分享我的快乐，也不知道我所应该追求的快乐应该走向何方。

## 2 #

> **皓**: *洁白，明亮*
>
> + 日出~兮 ——《诗·陈风·月出》
> + ~月千里 ——宋· 范仲淹《岳阳楼记》

我也不记得是什么样的机会了，总之就偶然看到了 [CoolShell.cn][coolshell-blog]，然后随便翻翻，又继续翻翻…

酷壳里面水文也颇有一些，但是也有很多非常值得一提的内容。有类似[函数式编程][functional-programming] 这样讲概念的，有[分布式系统的事务处理][transaction-in-distributed-systems]，[缓存更新的套路][cache-update-strategy]这样讲事务逻辑的，还有[由12306.CN谈谈网站性能技术][12306-related-issues]这些讨论具体事务的，更有一些[简明 VIM 练级攻略][vim-getting-started], [AWK 简明教程][awk-getting-started], [SED 简明教程][sed-getting-started] 这样纯纯讲工具用法的。

此外，在更久之前，他整理的《跟我一起写 Makefile》文档，也是我想象中最美好的样子。既无需各种故意“幽默”的言辞，也不去让事情特别高深，就是一起聊聊文档的介绍，写写自己的理解。虽然开始的时候自己什么都不懂，但不用多久，读到完，突然感觉自己能做点什么了，甚至感觉自己还可以用这种想法写出很多别的东西。

> “我希望我的文章能有更长的生命周期，长到十几年前的文章都会有人来读。” — [陈皓][ref-long-life-articles]

虽然他原始文档在一个粗糙的地方，但是我们可以看到，这些年来不断有人去用更好的格式和平台去整理它。比如[这个][ref-makefile-doc1]，还有[这个][ref-makefile-doc2]，我想这个文档应该会继续流传下去，未来会有更多的人受益。

对我而言，确实如日出~兮，~月千里。

有时候，博主还会谈谈理想。比如[LINUX 2.6.39-RC3的一个插曲][linux-bug-fix-issue], [由苹果的低级BUG想到的][apple-bug-fix-issue]。评论很多人就表达了自己不同的看法，觉得诸如“太理想了，让我教教你现实吧”。

当时我也不懂，觉得或许都有点道理。但与此同时，隐隐也感觉，或许陈皓讲的是一个更加值得我为之努力的未来。

很多年后的现在，再次回顾当时。其实坚持做尽量正确的事情也没有那么困难。或许一时的“糙快猛”会带来一些好处，但是精心打磨和迭代，获得的可靠的基础可以让之后的努力更加安心，总体上其实并没有损失多少开发效率，而系统却更加健壮可靠。

## 3 #

陈皓在很久前就属这个领域的老前辈了，称一句“德高望重”也不为过。但特别的是，他一直保持着非常平和的心态。以前啥都不懂的时候，我微博有时候随手 @ 他，讨论他 WordPress 插件的用法，诉说老板给了一堆机器学习作业，看不懂的苦恼。然后真的得到了意料之外的回应。他一本正经和我讨论某个插件好用不好用，对机器学习，他表示自己也不太懂，然后转发出去拉人讨论下。等等等。

想到这儿总感觉有点脸红，这是我的一些黑历史吧，但也是我无比温暖的回忆。

他好像确实不是很在意讨论的话题，有时候你讲点啥，他就是以一个年纪大一点的程序员，假装也是刚刚接触这些，然后一起探讨，不知不觉忘记了对方的身份，只剩下一个亲切的“耗子叔叔”。

而这个小破博客，也是当时看着他有趣的分享后，不知不觉想着，真是一个好棒的主意！我也试试！而今一晃十多年了。哦对了，那会儿博客域名还不是这个，当年我把我那个超级超级长的域名也贴在我微博上过，他偶尔转帖，引来一波无意识的围观，直接人肉 DDOS 把我机器干爆了。如今我想那点流量也完全无压力了，却不知道能和谁炫耀。

## N #

这些年来，我也逐渐写了一吨又一吨的代码，但是在开源项目上，我只是偶尔给修个小 bug，给人提交了一些微不足道的 PR，确实羞见他人。有时候我也翻阅他最近的更新，然后想着或许有一天，我也能有机会见到他，当着他的面说声谢谢。

可惜再也没有这个机会了。

[coolshell-blog]: https://CoolShell.cn
[functional-programming]: https://coolshell.cn/articles/10822.html
[transaction-in-distributed-systems]: https://coolshell.cn/articles/10910.html
[cache-update-strategy]: https://coolshell.cn/articles/17416.html
[12306-related-issues]: https://coolshell.cn/articles/6470.html
[vim-getting-started]: https://coolshell.cn/articles/5426.html
[awk-getting-started]: https://coolshell.cn/articles/9070.html
[sed-getting-started]: https://coolshell.cn/articles/9104.html
[ref-long-life-articles]: https://coolshell.cn/articles/17391.html#:~:text=%E6%88%91%E5%B8%8C%E6%9C%9B%E6%88%91%E7%9A%84%E6%96%87%E7%AB%A0%E8%83%BD%E6%9C%89%E6%9B%B4%E9%95%BF%E7%9A%84%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%EF%BC%8C%E9%95%BF%E5%88%B0%E5%8D%81%E5%87%A0%E5%B9%B4%E5%89%8D%E7%9A%84%E6%96%87%E7%AB%A0%E9%83%BD%E4%BC%9A%E6%9C%89%E4%BA%BA%E6%9D%A5%E8%AF%BB%E3%80%82
[ref-makefile-doc1]: https://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile
[ref-makefile-doc2]: https://seisman.github.io/how-to-write-makefile/index.html
[linux-bug-fix-issue]: https://coolshell.cn/articles/4576.html
[apple-bug-fix-issue]: https://coolshell.cn/articles/11112.html