阮一峰,加油!

142,621

本文写于2018年05月14日,不知为何被掘金推到首页热门。本文同时也发表在[知乎]上。(zhuanlan.zhihu.com/p/36806706)


哎,就在今天,我关注了多年的博客 ruanyifeng.com 无法访问了。

本文讲述了阮一峰在过去 7 年对我的影响,文章很长,看完需要耐心。

初识阮一峰

我从大学的时候就开始关注阮一峰的博客。

我还记得那时我刚刚学编程,什么都不懂,经常搜着搜着就搜到「阮一峰」的博客。于是我就看了一下他的百度百科:

阮一峰,70后,英文名Frank。他原是上海财经大学世界经济博士研究生。主要研究宏观金融、货币政策与美国经济。于2008年6月获得博士学位。目前在上海一所当地大学(上海金融学院 国际经贸学院)任教。

原来他的专业并不是前端,而是一个经济学博士。但是我当时觉得他写的技术文章真的是好。

2012 年,我基本把阮一峰过往的所有文章全都读了,觉得没有学习动力的时候,就会去看阮的博客。虽然我几乎没有跟他交流过,但是看他的文字的时候我觉得是在跟一个友善的人对话。

同年我在「阮一峰的博客为什么人气很高」这个知乎问答里回答道

深入浅出,如沐春风。

阮的文章,永远都是用朴素语言给读者解释一些事物。虽然有时候算不上深刻,但是能让你恍然大悟。

那个时候 Google Reader 还没有关停,我几乎是每天上班第一件事是就是先刷一下 Google Reader 看看阮一峰有没有新的博客。

当时我跟我的每一个同事都推荐了阮一峰的博客,我希望更多人能看到他的博客。

现在我在教前端的时候也依然向我的每一个学生推荐阮一峰的博客。

阮一峰对我的影响

读阮一峰的博客这么多年,我受到了阮一峰的很多影响。

1 坚持写博客

我入行的时候经常听前辈们说:要多写博客。但是我发现这些前辈自己却没有践行这一句话。

后来我发现阮一峰做到了,他在 2006 年发表了一篇《为什么要写Blog?》写道:

到今年12月为止,我写Blog已经满3年了,一共写了接近600篇,平均每2天写一篇。今后应该还会继续写下去。

3年前,我开始写的时候,并没有想过自己会坚持这么久。3年中,也遇见过几次有人问我"为什么要写Blog?"

是啊,为什么要写Blog?毕竟这里没有人支付稿酬,也看不出有任何明显的物质性收益。

Darren Rowse在他的Blog上,讲到了7个理由,我觉得说得很好。 ……

总之,正是因为以上7个理由,所以我强烈建议,每一个朋友都应该有一个自己的Blog,尝试将自己的生活和想法记录下来,留下一些印记。

他在 2014 年发表了一篇《我的博客文集上架了!》写道:

这个博客写了十年,累积了1000多篇文章。 我一直想整理一本文集,这个月终于完成了。 书名叫做《如何变得有思想?》

阮真的是在「坚持写博客」。受阮一峰的鼓舞,我不管加班多累都会每个月写一些博客,而这些博客令我成长很快。

我在每个技术团队里都是写博客最勤快的,但是不管我多勤快,我都知道阮一峰比我写得更勤快,我做得还不够。

2 打开编程的大门

虽然我在大学里学计算机编程,但是大学老师们似乎并不怎么向我们介绍编程文化,只是讲书本上的内容。我无法体会到世界上其他程序员跟我有什么联系。

我是从阮一峰那里了解到了一些生动而有趣的编程文化的,这些文化对我的影响一直持续到现在。

2008年10月25日,阮一峰发表了《我要翻译了!》文中写道:

上个月,人民邮电出版社下属的图灵公司写信问我,是否愿意翻译他的精华文章结集More Joel on Software。

我立刻答应下来。世界上有些东西,你是巴不得自己的名字与它联系在一起的。所以,如果一切顺利的话,明年春天,这本书的中文版就会上市。

说实话,我是不该接这本书的。因为我的事情本来就多得做不完,每周都觉得睡眠不足。现在又多出这样一件事,时间就更紧张了。不过,既然接了,那就只有挤时间拼命做了。

对我来说,这件事的难点有两个: 1)虽然我会一些编程,但是总的来说,我在技术上是外行,翻译这样一本程序员的专业读物有技术上的难度。 2)Joel在文章大量使用口语、俚语和双关语,很难翻译得贴切。

对于第一点,由于Joel的文章更像是对软件业的整体思考,而且面向新手,通常不涉及技术细节,所以问题还不大。我比较头痛的是第二点。举例来说,Joel的这本书有一个近乎戏谑的副书名:

Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity

怎么译?......

我差不多花了二十分钟琢磨,最后才勉强译出来:

程序员、软件设计师、软件经理、以及其他有幸或不幸与软件打交道的人员,感兴趣的各种相关内容

我对这个翻译依然不满意,觉得有意思漏掉了。如果你有更好的翻译,欢迎指教。

这本书是 Joel Spolsky 的博客集,他是大名鼎鼎的 Trello 和 Stackoverflow 的创始人。Joel Spolsky 的英文文章极难翻译,阮经常会问网友如何翻译更妥当,我从来没有见过一个译者如此认真。

我得知阮在翻译这本书的时候就已经迫不及待地想购买了。

2009 年这本书发布了,名叫《软件随想录》。

我毫不犹豫地购买了这本书,书拿到手后,除了吃饭睡觉,一口气全部看完了。

虽然我的专业用的教材都是比较新的国外教材,但是观念依然是趋于保守的。《软件随想录》让我看到了一个大师级程序员对软件开发的独特见解,令我佩服不已。

2012 年阮发表了一篇文章《<Linus Torvalds自传>摘录》。

除了程序员,大概很少人知道Linux操作系统。

它的发明者Linus Torvalds,知道的人就更少了。

他本人也很低调,深居简出,很少出席公众场合或接受媒体采访,通常只在专业开发者的邮件列表中发言。提起他的名字,人们的第一反应往往是"哦,传说中那个22岁就发明Linux的芬兰大学生......",其他就一片空白了。

他的自传《Just For Fun》出版于十年前(2001年),已经几乎被遗忘了。

星期六下午,我在硬盘里偶然翻到这本书(中译本),不经意地读了第一页。Linus Torvalds正在谈他的写作计划:

"我们可以在第一章里对人们解释生命的意义何在。这样可以吸引住他们。一旦他们被吸引住,并且付钱买了书,剩下的章节里我们就可以胡扯了。"

我觉得有点意思,接着往下面读。他继续谈生命的意义:

"人类的追求分成三个阶段。第一是生存,第二是社会秩序,第三是娱乐。最明显的例子是性,它开始只是一种延续生命的手段,后来变成了一种社会行为,比如你要结婚才能得到性。再后来,它成了一种娱乐。"

我心里嘀咕,这个理论有点离经叛道啊,不过看上去似乎有道理。但是,它跟Linux有什么关系呢?

"技术最初也是为了生存,为了生存得更好。现在技术大体上还处于社会的层面,但正在朝娱乐的阶段发展。......(Linux的开发模式)为人们提供了依靠兴趣与热情而生活的机会。与世界上最好的程序员一起工作,是一种无与伦比的享受。"

我被吸引住了,整个周末都在读它,越读越入迷。此书极其有趣,一点不枯燥,充满了各种好玩的笑料,以及对技术和软件的严肃思考。如果你是一个程序员,我高度推荐此书。

我从没料到Linus Torvalds是一个如此幽默有趣的人,我摘录了一些他的妙语,请大家欣赏。

我看完这篇文章之后十分惭愧,因为我本人就是一个立志做程序员的人,为什么我没有了解一下 Linus 和 Linux 呢。很快我就邮购了这本《Just For Fun》。

这本书让我知道了 Linus 大神的一些事迹,也让我了解了开源世界的魅力。

2013 年阮翻译了一本书,名叫《黑客与画家》。

书刚发布我就买了,依然一口气读完。

这本书让我见识到一名黑客的热忱、远见和智慧。也许是从那时起,我就已经在心里埋下了创业的想法。

我很感谢阮一峰给我开启了一道道大门,大门里面是世界上最厉害的程序员。

阮一峰就像一个热心的前辈,向我娓娓道来这个程序员如何如何好,那个程序员如何如何厉害。

如果没有阮一峰,我可能要在门外徘徊很久很久……

因为现实生活里,并没有人向我传授这些知识。

3 让我学会了写文章的技巧

为什么我这么喜欢看阮一峰的文章?因为其他人的文章基本没法看……

这么多年,我喜欢的中文博主只有几个:阮一峰、陈皓、Matrix67。

这几位博主的文章都有一个特点:平易近人。

阮在解释一个事物的时候,从来不会引入更复杂的概念,而是以大家都懂的语言或图片来阐述。

我举个例子,很多人在解释 JS 的 this 的时候会提到「词法作用域」和「动态作用域」。然而,对于一个前端新人来说,「词法作用域」比 this 复杂多了,这样解释 this 根本就不能令人明白。

而阮的文章,都是对新人非常友好,同时又能把事情讲清楚的。

比如下图:

在阮一峰发布这种图片之前,我对各种软件开源许可证毫无概念,根本就分不清楚。

直到我遇到了阮一峰……

之后我写文章一直都在模仿阮一峰,虽然没有他那么平易近人,但是依然坚持用朴素的语言把事情说清楚。

4 让我知道「如何学习」

我时常想,为什么阮一峰可以知道这么多优质的知识,而我不知道?

想着想着就发现阮的两个重要特点:

  1. 看英文资料。阮的很多知识都是只能在英文世界获取到的。因此我应该也把英文学好。
  2. 看大牛推荐的大牛。阮发现大牛 A 不错,就会去看 A 的博客,然后从 A 的博客里发现大牛 B,然后就去看大牛 B 的博客,以此类推,最后发现了一堆厉害的人。因此我也要学习这种学习方式。

与阮一峰的两次见面

我以为我这辈子都不会跟阮一峰有什么交集。

直到我到了阿里,而阮一峰也到了阿里。

那应该是 2014 年,阿里内网有一篇邮件,说阮一峰要在支付宝大楼做一次分享。

当时我心里挺开心,觉得公司真厉害,能请来我一直仰慕的阮一峰。

我再仔细一看不得了,邮件里还说阮一峰已经入职阿里巴巴了,那这么说的话,我跟阮一峰不就是同事了!

仅仅因为这,我当天就开心得不行了,有一种做梦的感觉。

我当然是马上抢先报名去听这次演讲。

演讲的内容,我今天还记得。

阮一峰说,他在整理自己过去十年的博客的时候发现了一件事情。 那就是这十年里,虽然他写了很多博客,帮助了很多人。 但是自己却没有做出什么事情,没有创造出什么东西。 他在想这辈子都在学校里教书是不是太平淡了。

正好阿里巴巴有意向让阮一峰加入,所以阮一峰觉得这是一个契机。

在入职阿里之前,阮想做一件事情:去一个他从来没去过的地方。 于是他坐飞机去一个沙漠旅游(具体哪个沙漠我忘记了,名字挺长)。 到了沙漠之后, 大失所望…… 因为这里虽然被沙漠环绕,但是酒店、泳池、饮用水一应俱全, 跟在上海没什么区别。

阮一峰觉得这并不是「自己从来没有去过的地方」。

也许自己应该不再做大学老师,去互联网企业看看。 那才是「自己从来没有去过的地方」。

我坐在第二排,听得真切。现在看来这次演讲的内容对我内心的影响也是很大的。我敢于跳出阿里,跟若愚两个前端出来办网校,很可能也是因为想去「自己从来没有去过的地方」。

阮一峰讲完之后,正好坐在了我的前方。

我拿出准备好的《软件随想录》让他给我签名,然后跟他合影留念了。

这就是我跟阮一峰的第一次见面。并没有过多的交谈。

阮一峰给我的印象,是一个温和的学者,跟他的文章给我的印象一致。

后来我抽空又去支付宝大楼参加了一次阮一峰组织的技术分享会,他本人没有演讲,在一旁专注地敲着电脑,我就没有过去打扰他了。

我知道,他已经从老师,变成了一个程序员了。

画风突变

在阮一峰加入阿里之后,网上对阮一峰的评论突然开始变了。

这个转变大概要从「朴灵评注阮一峰」事件 开始。

朴灵和阮一峰都是阿里的,当然不会因为此事交恶,但是网友们似乎发现怼阮一峰是一件很容易的事情,并乐于围观别人怼阮一峰。

实话说,在我获取了一些专业知识之后,确实发现阮一峰写得技术文章存在一些问题,这跟他的技术积累有关。

但我并不觉得他写得技术入门文章比其他技术入门文章差。其他文章看似没有问题,但是却令新人看不懂。如果新人看不懂,那么还能帮助新人吗?

大家指出阮一峰文章中存在的问题可以,但是对阮一峰全盘否定是不能接受的。连我自己也在知乎指出过阮一峰推特中对技术的解读存在错误,但我依然尊敬阮一峰。阮一峰的推特几乎每天都在更新,偶尔出现几个错误太正常不过了。大部分读者都是有自己的判断能力的。

后来,微博上的一些前端就经常对阮一峰文章中的错误进行吐槽了。

阮一峰为前端写了两本书《JavaScript 标准参考教程》和《ES6标准入门》。

阮一峰在写书的过程中,时常遇到不是很理解的地方,于是就会在推特和微博上发表出来,看看大家怎么说。我记得有一次阮一峰对 ES6 的圆括号作用域没有搞清楚,于是一批前端就开始在评论里冷嘲热讽了。

基本上只要阮一峰出一个错,就会引起这些人的兴奋。

然而阮一峰从来都没有反驳过他们,依然写着自己的书,帮助前端新人们。

而这群批评阮一峰的人,其中大部分人,都没有为前端做哪怕一点点贡献。

正因为没有反驳,所以他们原来越大胆了,一直到最近的这篇

面试官:阮一峰版的快速排序完全是错的

确实,阮一峰写得快排不是完美的,但绝对不是「完全是错的」。

我不知道中国的前端现在是怎么想的,新人毫无头绪,老人天天看戏。

他们似乎分不清谁是好谁是坏,什么应该被鼓励什么应该被唾弃。

网站无法访问

今天阮一峰发了两条推特,表示他的博客站点被攻击,无法访问了。

我并不知道是谁在做这种令人恶心的事情。但我知道,阮一峰应该被我们鼓励。

遂有此文。

希望攻击者早日认识到自己的幼稚,

希望 ruanyifeng.com 早点恢复访问,

也希望阮一峰不要再遭受这些无端的攻击了。

目前如果你想看阮一峰的博客,只能用 Google 的缓存功能查看。

更新