作者 | 門柳
來源 | 阿里巴巴雲原生公眾號
去年成為了內網技術分享平臺的年度作者,受邀寫一篇關於“如何寫好文章”的文章。我本身並不喜歡寫字,去年寫的幾篇文章,涉及的話題自帶流量,所以閱讀量多了一些,談不上有多擅長。不過還是決定分享一下自己在寫文章時用到的一些小技巧,希望對大家有幫助。
最重要的是內容
和所有人強調的一樣,好文章最重要的是要有好的內容,好的技術文章要讓讀者有益。如果你想寫一篇爆款文章,但是又覺得沒有內容可寫,那就不要勉強了,放下筆,合上電腦,有這個時間不如去看書打遊戲。
如何讓自己有源源不斷的內容可寫?這與平時的積累有關,多閱讀,多思考,多寫作,真正的技巧無外乎這些。方法論層面的東西不再贅述,我重點講幾個具體的小技巧,直接“授之以魚”。
優秀文章的特點
1. 閱讀量 ≠ 文章質量
有些文章標題比較吸引眼球,有些話題自帶流量,有些內容的受眾比較廣,所以有很高的閱讀量,但這並不代表文章本身的質量。
前幾天無意翻到一篇《超長用戶行為建模在躺平家居內容推薦中的應用實踐》,我覺得寫得不錯,但是內容我完全看不懂,是專業領域的文章,受眾不多,有上千的閱讀量就已經很不錯了。但是另一篇《如何畫好一張架構圖?》就有超過 3W 的閱讀量。當然反例也有很多,就不再列舉了。我自己寫的幾篇講技術細節的文章,就沒有講技術對比、討論技術發展的文章閱讀量高。內容越專越細,能讀下來的人就越少,但並不代表文章質量不高,反之亦然。
技術文章盲目追求閱讀量和點贊數不是件好事,所以第一個小建議就是不要太關注閱讀量和點贊數,寫的文章對別人有用,才是最有成就感的。至於除了閱讀量和點贊數以外,還有什麼指標可以衡量一篇文章的好壞,歡迎大家留言討論。
2. 文章要長長長長長長長長長長長長長長長(也別太長)
我翻了幾篇阿里技術公眾號裡閱讀量較高的文章,各種話題都有,風格差異很大,但是有一個共同點:文章寫得很長。這並不代表文章寫了很多字就是好文章,背後的真實含義是:好文章的內容足夠豐富。
內容豐富詳實,這是一篇好文章的必要條件。還有一個條件是要包含真正有價值的內容,不能含太多水分。
提供一個小技巧:如果你寫了一篇文章但是覺得內容很單薄,可以先當成一篇筆記存起來,等有了更豐富的積累之後再整理成文章。擴展文章內容的方法,並不是添加無意義的空話套話,而是根據文章探討的問題延展開來。
比如說介紹自己解決的一個老大難 Bug,可能真正修改的代碼並沒有幾行,把過程講出來也不過寥寥幾段。這時候你就可以再分析一下 Bug 存在的原因,為什麼一直拖到現在,再思考一下如何避免這類問題,遇到同類 Bug 怎樣快速排查。這樣自己想問題的角度更全面了,文章內容也更豐富了。
比如你想介紹一項自己在學的新技術,發現自己寫的東西其實就是官方文檔的簡化版,去重之後幾乎什麼都不剩了。這時候不要再繼續抄文檔了,把自己的思考總結先記下來,繼續學習技術,持續記錄新的內容,有更全面的瞭解之後,再寫文章。
3. 清晰的敘事結構
優秀的技術文章,結構一定是清晰的,有可能目錄就代表了某個技術體系,或者代表瞭解決問題的思路。
優秀的內容 + 清晰的結構 = 好文章
能把技術問題講清楚,就很考驗表達能力,這是大部分程序員比較欠缺的。對於技術類文章,常見套路也不多,我簡單介紹兩類吧:
- 線性敘事,逐步推進:適用於介紹排查問題的過程、分享設計思路、介紹項目的迭代進展。
- 結構化敘事,層層展開:適用於講規劃、做總結、畫大圖、介紹一整套技術方案。
4. 線性敘事,逐步推進
對於這類文章,讀者是應該按順序一段一段看的,寫的時候腦海中模擬讀者的視角來寫。這類文章的小技巧就是:模擬讀者視角,設定一條主線,有節奏的向前推進。和講故事差不多,每一步的推進要有邏輯,要保持思路不要斷掉。
有時候稍微加點趣味也是不錯的,比如《Flutter Widget 和 CSS 佈局原理 PK》這篇文章,目標是分析 Widget 和 CSS 的設計差異,我把文章寫成一場比賽,先介紹參賽選手,然後分了 5 個 Round 開始 Battle,然後是 Love&Peace,最後一個 Happy Ending。
另外一篇《記一次完整 C++ 項目編譯成 WebAssembly 的實踐》介紹了自己嘗試新技術的心路歷程,先介紹背景,再分析需求做拆解,然後講嘗試了什麼方案,遇到了什麼坑,又繼續試其他方案,最終是什麼結果。讀起來比較流暢。
5. 結構化敘事,層層展開
除了按順序看的,還有不按順序看的文章嗎?有的,尤其在專業的技術文章裡很常見,大部分是“總-分”的結構,先講整體框架,再分章節介紹各個部分。
比較常見的是那種總結型的文章,比如《平臺建設的 7 大問題:螞蟻AI平臺實踐深度總結》和《救火必備!問題排查與系統優化手冊》,就是翻閱性質的書,可以通讀一遍,也可以只看其中一段,之後遇到相關的問題,根據目錄跳著閱讀。
對於文思泉湧的人,可以一口氣把整篇文章寫完。但實際情況是,很多時間被碎片化,可能還要引用一些專業內容,可能需要查資料,寫文章的過程會被中斷。這類文章不是一口氣寫完的,是先搭架子再填充完整的。其實寫起來也很簡單:先想好標題,再劃分好目錄結構,再一段一段的填充內容,最後再潤色一下連接部分。文章可以不按順序看,也可以不按順序寫。
我自己寫的《關於瀏覽器、Weex、Flutter 的比較和思考》這篇文章就是先劃分好了目錄,再一點一點填充的,寫文章的時間跨度也比較長,想起來一點寫一點。
線性敘事是個鏈表,結構化敘事是樹。
提升寫作技巧
我初高中的時候比較喜歡看閒書,偶爾自己寫點東西,但是我作文考得並不高,這裡大言不慚地聊一下怎麼寫作文吧哈哈哈哈哈。只講怎麼寫技術文章,並不能提升任何文學功底,但說不定能幫你避開一些小坑。
1. 碎片化記錄,結構化整理
大部分人的問題是不知道該寫什麼,即使已經有足夠的積累,有明確的話題要寫,也不知道該如何下筆。這就要靠日常的積累了。
在平時工作的時候,可以建個文檔庫,把日常的一些瑣碎的想法記錄下來,隨時寫隨時存。我是用手機的便籤 App 隨手記東西,比較喜歡它的語音轉漢字功能,工作相關、生活相關,隨時隨地想起任何話題都可以記錄下來。
在有了明確話題,準備寫文章之前,先把各種碎片化的記錄收集起來,形成一份“素材”文檔,然後梳理文章脈絡,把素材應用進去。操作起來很簡單,剛開始的時候會遇到前後不通暢的問題,那就不要直接複製素材的內容,重新換個表達方式寫出來。多練習練習就好了。
2. 刻意練習,先寫再改
有了素材之後,平時可以專門練習寫作能力,先寫一小段話,明確的描述一個觀點,然後不斷修改。其實寫週報就是一個很好的鍛鍊機會(現在不要求寫了,自行練習),練習把做的事情描述清楚,說話的方式簡單點,不要用太多高大上的詞彙。最關鍵的部分在於:寫完花五分鐘再改一遍!讀一下是否通順,有沒有把問題講清楚。反覆修改才是提升寫作技巧的關鍵。
用週報舉例有點奇怪,畢竟是郵件類型的東西,和寫文章差別很大,還是不要亂改週報了,改自己以前寫的文章吧。找一篇自己以前寫的,內容很不錯但是寫得不太行的文章,重寫一遍!這個過程既溫習了技術,又鍛鍊了寫作技巧。不要覺得無聊浪費時間,親測很有效的。
3. 注意排版和語法細節
對於不拘一格的程序員來說,寫出來的文章沒有排版,就是家常便飯。不需要追求高級的排版技巧,稍微注意一下幾個常見的問題就好了。
1)正確使用標點符號
大部分的文章裡就只有逗號和句號,逗號和句號也是看心情隨意劃分,鍵盤上按到哪個是哪個。其實還有單雙引號、頓號、冒號、分號、歎號、破折號、省略號、書名號、中文括號「」【】等等…… 使用方法可以去網上搜,這部分我覺得問題很常見,就單獨多講了兩句。對了,中文文章要用全角標點符號,儘量不要混用英文標點符號。
2)添加多種展現形式,可參考 GitHub 的 Markdown 語法
如果全都是普通段落,看起來太平,可以加上無序列表、有序列表、段落引用、表格等等。行內排版可以加上粗體、斜體、代碼標記等,偶爾還可以用刪除線。
其他還有一些小的建議:
- 區分大標題小標題,分配的均勻一些,最多不要超過三層。
- 每個章節的長短也儘量均勻一些,太長的內容就拆個小標題。
- 重要數據給出明確的數據源,擴展信息給出資料連接。
- 中英文混寫的時候,在中間加一個空格。
- 注意英文的大小寫,尤其是專業名詞的縮寫。
- 英文喜歡長句,複合從句一層套一層;中文追求言簡意賅,錯落有致,可以多加標點符號,把長句分隔開。
- 寫完之後通讀一遍,儘量少寫錯別字……
最後一個小技巧:多用圖片。即使圖片裡只有文字,信息量也遠超文字。
然而這篇文章並沒有加很多圖片,因為這並不是一篇技術文章,大家在講技術原理的時候要多用圖片,一圖勝千言!
寫在最後
最後一個小建議:文章寫多了就可以逐漸形成自己的風格,讓所有文章都保持某種共性。
比如我每篇文章最後都會發招聘信息!
歡迎優秀的你加入淘系技術部-跨平臺技術團隊!一起打造靠譜的跨平臺方案。這裡有手淘核心鏈路在使用的 DinamicX、淘系的 H5 容器、Weex、淘寶小程序容器。淘系的基礎架構、研發支撐是隔壁的兄弟團隊,我們在廣泛的支撐新零售的業務。技術深度足夠深,業務場景足夠豐富,歡迎優秀的小夥伴來一起搞事情,手淘跨平臺技術團隊歡迎你的加入!(請聯繫 [email protected] )
2021 阿里雲開發者大會重磅開啟!
數字時代,如何更好地利用雲的能力?什麼是新型、便捷的開發模式?如何讓開發者更高效地構建應用?科技賦能社會,技術推動變革,拓展開發者的能量邊界,一切,因雲而不同。點擊立即報名活動,2021 阿里雲開發者大會將給你答案。