阮一峰,加油!

阮一峰,加油!

來自專欄 前端學習指南

哎,就在今天,我關注了多年的博客 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日,阮一峰發表了《我要翻譯<Joel on Software>了!》文中寫道:

上個月,人民郵電出版社下屬的圖靈公司寫信問我,是否願意翻譯他的精華文章結集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 年,阿里內網有一篇郵件,說阮一峰要在支付寶大樓做一次分享。

當時我心裡挺開心,覺得公司真厲害,能請來我一直仰慕的阮一峰。

我再仔細一看不得了,郵件里還說阮一峰已經入職阿里巴巴了,那這麼說的話,我跟阮一峰不就是同事了!

僅僅因為這,我當天就開心得不行了,有一種做夢的感覺。

我當然是馬上搶先報名去聽這次演講。

演講的內容,我今天還記得。

阮一峰說,他在整理自己過去十年的博客的時候發現了一件事情。

那就是這十年里,雖然他寫了很多博客,幫助了很多人。

但是自己卻沒有做出什麼事情,沒有創造出什麼東西。

他在想這輩子都在學校里教書是不是太平淡了。

正好阿里巴巴有意向讓阮一峰加入,所以阮一峰覺得這是一個契機。

在入職阿里之前,阮想做一件事情:去一個他從來沒去過的地方。

於是他坐飛機去一個沙漠旅遊(具體哪個沙漠我忘記了,名字挺長)。

到了沙漠之後,

大失所望……

因為這裡雖然被沙漠環繞,但是酒店、泳池、飲用水一應俱全,

跟在上海沒什麼區別。

阮一峰覺得這並不是「自己從來沒有去過的地方」。

也許自己應該不再做大學老師,去互聯網企業看看。

那才是「自己從來沒有去過的地方」。

我坐在第二排,聽得真切。現在看來這次演講的內容對我內心的影響也是很大的。我敢於跳出阿里,跟若愚兩個前端出來辦網校,很可能也是因為想去「自己從來沒有去過的地方」。

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

我拿出準備好的《軟體隨想錄》讓他給我簽名,然後跟他合影留念了。

這就是我跟阮一峰的第一次見面。並沒有過多的交談。

阮一峰給我的印象,是一個溫和的學者,跟他的文章給我的印象一致。

後來我抽空又去支付寶大樓參加了一次阮一峰組織的技術分享會,他本人沒有演講,在一旁專註地敲著電腦,我就沒有過去打擾他了。

我知道,他已經從老師,變成了一個程序員了。

畫風突變

在阮一峰加入阿里之後,網上對阮一峰的評論突然開始變了。

這個轉變大概要從「朴靈評註阮一峰」事件開始。

怎麼看待朴靈評註阮一峰老師的最新文章這件事??

www.zhihu.com圖標

朴靈和阮一峰都是阿里的,當然不會因為此事交惡,但是網友們似乎發現懟阮一峰是一件很容易的事情,並樂於圍觀別人懟阮一峰。

實話說,在我獲取了一些專業知識之後,確實發現阮一峰寫得技術文章存在一些問題,這跟他的技術積累有關。

但我並不覺得他寫得技術入門文章比其他技術入門文章差。其他文章看似沒有問題,但是卻令新人看不懂。如果新人看不懂,那麼還能幫助新人嗎?

大家指出阮一峰文章中存在的問題可以,但是對阮一峰全盤否定是不能接受的。連我自己也在知乎指出過阮一峰推特中對技術的解讀存在錯誤,但我依然尊敬阮一峰。阮一峰的推特幾乎每天都在更新,偶爾出現幾個錯誤太正常不過了。大部分讀者都是有自己的判斷能力的。

後來,微博上的一些前端就經常對阮一峰文章中的錯誤進行吐槽了。

阮一峰為前端寫了兩本書《JavaScript 標準參考教程》和《ES6標準入門》。

阮一峰在寫書的過程中,時常遇到不是很理解的地方,於是就會在推特和微博上發表出來,看看大家怎麼說。我記得有一次阮一峰對 ES6 的圓括弧作用域沒有搞清楚,於是一批前端就開始在評論里冷嘲熱諷了。

基本上只要阮一峰出一個錯,就會引起這些人的興奮。

然而阮一峰從來都沒有反駁過他們,依然寫著自己的書,幫助前端新人們。

而這群批評阮一峰的人,其中大部分人,都沒有為前端做哪怕一點點貢獻。

正因為沒有反駁,所以他們原來越大膽了,一直到最近的這篇

面試官:阮一峰版的快速排序完全是錯的 - 掘金?

juejin.im

確實,阮一峰寫得快排不是完美的,但絕對不是「完全是錯的」。

我不知道中國的前端現在是怎麼想的,新人毫無頭緒,老人天天看戲。

他們似乎分不清誰是好誰是壞,什麼應該被鼓勵什麼應該被唾棄。

氣得我都開始押韻了!

網站無法訪問

今天阮一峰發了兩條推特,表示他的博客站點被攻擊,無法訪問了。

我並不知道是誰在做這種令人噁心的事情。但我知道,阮一峰應該被我們鼓勵。

遂有此文。

希望攻擊者早日認識到自己的幼稚,

希望 ruanyifeng.com 早點恢復訪問,

也希望阮一峰不要再遭受這些無端的攻擊了。

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

更新


推薦閱讀:

前端日刊-2017.11.22
Web前端工程師和後端工程師薪資待遇哪個高?
[基礎]前端, 就從編輯器說起
前端數據流哲學
前端日刊-2017.12.10

TAG:前端工程師 | 前端開發 | 阮一峰人物 |