寫(xiě)了十年技術(shù)博客,我收獲了什么
今年剛好是我寫(xiě)技術(shù)博客的第十個(gè)年頭。恰逢最近也有些所想、所感、所得,所以想把發(fā)自內(nèi)心的對(duì)技術(shù)博客這件事嘮叨幾句。算是想到哪寫(xiě)哪,請(qǐng)見(jiàn)諒。
我的技術(shù)博客經(jīng)歷
我的第一篇(姑且算是技術(shù)分類(lèi),但實(shí)際是我自己的做的一個(gè)軟件介紹)技術(shù)博客發(fā)布于 2010 年,在我大二的時(shí)候,那時(shí)候的技術(shù)博客還托管在博客園上;之后在 13 年到 14 年左右的時(shí)候,為了熟悉 Node.js ,用 Node.js + MangoDB 寫(xiě)了一個(gè)內(nèi)容管理的 cms,并且部署在 heroku 上(后來(lái)因?yàn)闆](méi)有續(xù)費(fèi),賬號(hào)被刪,源碼也沒(méi)有了)。最后因?yàn)榫S護(hù)成本過(guò)高,遷移到 github 的 jekyll 上,一直沿用至今。我博客的地址是 http://qingbob.com/, 但你可能更聽(tīng)說(shuō)過(guò)它的另一個(gè)馬甲——知乎專(zhuān)欄前端技術(shù)漫游指南
說(shuō)真的我很好奇,在閱讀這篇文章的你們有多少是沖著標(biāo)題進(jìn)來(lái)的,被“收獲了什么”這個(gè)帶有些神秘色彩的語(yǔ)句誘惑的不行,迫切想知道最終的答案是什么。
我不敢說(shuō)收獲是零,但如果我告訴你,寫(xiě)技術(shù)博客的這十年,我收獲的可能并不會(huì)比你更多,你會(huì)不會(huì)很失望?
請(qǐng)?jiān)试S我解釋這件事,讓我從一個(gè)工作的實(shí)際例子開(kāi)始。
在加入項(xiàng)目的一年多的時(shí)間里,我負(fù)責(zé)的其中一項(xiàng)工作內(nèi)容,是和前端代碼中用到的一個(gè)第三方類(lèi)庫(kù) Handsontable 斗智斗勇。這個(gè)類(lèi)庫(kù)據(jù)說(shuō)能夠承擔(dān)海量級(jí)別的數(shù)據(jù)渲染。但是在我們的項(xiàng)目中,在有的場(chǎng)景里使用它渲染上千條數(shù)據(jù)的時(shí)就會(huì)導(dǎo)致瀏覽器呈現(xiàn)一種假死的狀態(tài),無(wú)法響應(yīng)用戶的請(qǐng)求。
我的工作就是需要找到它的瓶頸,修復(fù)它,還原它的能力。
在解決這個(gè)問(wèn)題相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),我都是抱著一種類(lèi)似于刑偵探案,緝拿真兇的心態(tài),試圖找到性能問(wèn)題背后的罪魁禍?zhǔn)?。我認(rèn)定真兇只有一個(gè),一定存在某一處并不周正的代碼拖累了整個(gè)頁(yè)面的性能。
但結(jié)局是……這么說(shuō)吧,好比其實(shí)是我找到了十處存在性能缺陷的代碼,每處會(huì)導(dǎo)致 500 毫秒的延遲,單拎出來(lái)任意一個(gè)缺陷都在可以接收的范圍之內(nèi)。但是十處合并在一起拖累的就不只是 5 秒,而是會(huì)產(chǎn)生一加一大于二的效果。
說(shuō)到底它還是一個(gè)寫(xiě)代碼寫(xiě)糙了,或者說(shuō)代碼逐漸腐化了的問(wèn)題,沒(méi)什么大驚小怪的。但我總幻想著背后有什么驚天大陰謀,解決它就能帶來(lái)質(zhì)的飛躍。
哪有那么多事半功倍的好東西。
我想說(shuō)的是,寫(xiě)技術(shù)博客也是一樣,別指望它在某個(gè)時(shí)刻瞬間給你帶技術(shù)上的突飛猛進(jìn),讓你煥然一新。它和所有的“活”一樣,通過(guò)長(zhǎng)時(shí)間的實(shí)踐,能讓某些技巧變得嫻熟,并鍛煉你的一些能力。而所謂的“意外收獲”?門(mén)都沒(méi)有。我見(jiàn)過(guò)很多很厲害的、讓我欽佩的程序員,他們也并非各個(gè)都寫(xiě)技術(shù)博客,但我相信他們有他們的方式訓(xùn)練自己。
所以我其實(shí)一直覺(jué)得,寫(xiě)技術(shù)博客是一種訓(xùn)練自己的過(guò)程。和反復(fù)地寫(xiě)代碼,在上臺(tái)前反復(fù)的練習(xí)演講是一個(gè)道理。
對(duì)于我個(gè)人而言,我發(fā)現(xiàn)“發(fā)表是吸收的利器”。比如,你現(xiàn)在可以嘗試把你今天學(xué)習(xí)到的知識(shí)馬上向身邊的小伙伴復(fù)述一遍,你會(huì)發(fā)現(xiàn)過(guò)程中你會(huì)對(duì)一些概念有些模糊,或者他會(huì)向你提出一些你沒(méi)法立即回答的問(wèn)題。這些都是值得再回過(guò)頭去學(xué)習(xí)的知識(shí)點(diǎn),而技術(shù)博客就是這么一個(gè)無(wú)聲的小伙伴。
寫(xiě)作的迷思
即使是說(shuō)訓(xùn)練,我覺(jué)得還是有一些寫(xiě)作過(guò)程中的迷思和陷阱想提醒大家,純粹是我個(gè)人的經(jīng)驗(yàn)。
首先需要明確的是,博客究竟是寫(xiě)給誰(shuí)看的,讀者還是我自己?
除非你在刻意運(yùn)營(yíng)公眾號(hào),需要迎合流量,否則一定是為你自己而寫(xiě)。
首先寫(xiě)作出發(fā)點(diǎn)就是你自己,只有當(dāng)你有寫(xiě)作欲望的時(shí)候,才有可能下筆,才想把它盡善盡美的寫(xiě)好。
其次,也是更重要的是,讀者關(guān)注的并非是你關(guān)注的。
分享一個(gè)很有意思的事情。有一段時(shí)間,我的技術(shù)文章會(huì)同步發(fā)布在知乎和掘金上。于是這部分文章有了三個(gè)視角:我看待它們,知乎的讀者看待它們(點(diǎn)贊和收藏),和掘金的讀者看待它們(點(diǎn)贊和收藏)。我發(fā)現(xiàn),一般我個(gè)人花了最多時(shí)間去整理和學(xué)習(xí)知識(shí)之后寫(xiě)出來(lái)的最滿意的文章,或者是我認(rèn)為價(jià)值最高的文章,通常在這兩個(gè)平臺(tái)無(wú)人問(wèn)津。而“快速入門(mén)”和“全解”之類(lèi)的文章收藏量和閱讀量卻最高。
我理解他們,但是我覺(jué)得很可惜。
某一年我拍腦袋想出來(lái)的一個(gè)算法相關(guān)的 idea,只花了三天時(shí)間就寫(xiě)完了,但這篇技術(shù)文章的點(diǎn)擊率之高竟然成為了掘金的年度文章,讓我哭笑不得。而且知乎和掘金的群體又不太一樣,因?yàn)檫@篇文章在知乎上就沒(méi)有任何的反響
你永遠(yuǎn)都不知道你的讀者在想什么
第二,“寫(xiě)”這件事也是需要刻意提高的。
就算你工作了十年,但是你每天都在寫(xiě) hello world,你的技術(shù)也不會(huì)有任何的長(zhǎng)進(jìn)。
寫(xiě)文章也是一樣,如果你只是為了寫(xiě)而寫(xiě),習(xí)慣了在文章中貼大段大段的代碼,抱著一種“自己去理解吧”的心態(tài),而不是嘗試用最簡(jiǎn)單的文字去引導(dǎo)和解釋?zhuān)愕膶?xiě)作水平和表達(dá)能力永遠(yuǎn)也不會(huì)有提升。
無(wú)論是在工作中還是文章里,我都反對(duì)不分原由的把文檔、代碼、或者是《XX 權(quán)威指南》扔給某個(gè)人,然后讓他自己去理解。這就好比你把一本漢語(yǔ)詞典遞給一個(gè)小學(xué)生讓他自學(xué)語(yǔ)文??梢?,但很難,也完全沒(méi)有必要。
無(wú)論是在文字還是語(yǔ)言表達(dá)上,我習(xí)慣把我正在敘述的對(duì)象,想象為一名剛?cè)腴T(mén)的程序員,或者只是一名有少許編程背景的 QA 同學(xué),甚至是完全沒(méi)有只是背景的 HR。然后思考我應(yīng)該如何通過(guò)最通俗易懂的表述,讓他們理解我想表達(dá)的概念。
甚至你還可以鋪墊, 賣(mài)關(guān)子,起承轉(zhuǎn)合,控制預(yù)期等等,為你的文采添磚加瓦,但這一切都離不開(kāi)刻意的練習(xí)。
這一套訓(xùn)練對(duì)口頭表達(dá)同樣有幫助。
第三,別怕不友好的評(píng)論
我不知道這是不是大家的問(wèn)題,但這個(gè)是我的困惱。我的文章當(dāng)然被懟過(guò),我曾經(jīng)因?yàn)楸荒硞€(gè)大V不友好的評(píng)論把文章的評(píng)論功能關(guān)閉了兩年。
后來(lái)我對(duì)這件事的焦慮有所緩解和理解是基于兩點(diǎn):
我們很難通過(guò)文章評(píng)論的一來(lái)一回來(lái)表達(dá)我們想要表達(dá)的觀點(diǎn)。別說(shuō)是文章評(píng)論,在公司內(nèi)部,我們?cè)跁?huì)議室里交流幾個(gè)小時(shí)都不可能達(dá)成一致。在文章的背后,有我沒(méi)有完全表達(dá)的背景、上下文或者大家對(duì)一件事的理解不同又沒(méi)有辦法統(tǒng)一。誤解太正常了。
雖然“他”評(píng)論了,但是并不代表“他”有資格對(duì)你進(jìn)行評(píng)論。也就是說(shuō),雖然我們有平等的網(wǎng)絡(luò)地位,在現(xiàn)實(shí)生活中我們有平等的政治權(quán)力,但并不意味著在某些專(zhuān)業(yè)問(wèn)題上,我們的評(píng)論有相同的分量。好比一個(gè)人不敢評(píng)論交響樂(lè)、油畫(huà),卻又為什么敢評(píng)論脫口秀和相聲呢,就因?yàn)榇蠹叶寄苷f(shuō)話是嗎?你可以發(fā)出“地球是平的”的聲音,大家也都能聽(tīng)到你的聲音,但可能沒(méi)人會(huì)把你的評(píng)論當(dāng)一件事。回到技術(shù)文章上,至少你應(yīng)該對(duì)你的技術(shù)文章是有自信的,對(duì)于質(zhì)疑的聲音,你要學(xué)會(huì)嘗試去自行判斷和理解。
寫(xiě)技術(shù)博客這十年,讓我感到最遺憾的事情是,有很多在我剛?cè)胄袝r(shí)候關(guān)注的覺(jué)得有價(jià)值的技術(shù)博客,作者都早已不再維護(hù)了,甚至域名呈現(xiàn)的內(nèi)容都已經(jīng)面目全非了。 我還是希望在下一個(gè)十年我能繼續(xù)走下去,對(duì)于我個(gè)人來(lái)說(shuō),好奇心在,表達(dá)欲就在。