作者 | 門柳
來源 |
阿裡巴巴雲原生公衆号
去年成為了内網技術分享平台的年度作者,受邀寫一篇關于“如何寫好文章”的文章。我本身并不喜歡寫字,去年寫的幾篇文章,涉及的話題自帶流量,是以閱讀量多了一些,談不上有多擅長。不過還是決定分享一下自己在寫文章時用到的一些小技巧,希望對大家有幫助。
最重要的是内容
和所有人強調的一樣,好文章最重要的是要有好的内容,好的技術文章要讓讀者有益。如果你想寫一篇爆款文章,但是又覺得沒有内容可寫,那就不要勉強了,放下筆,合上電腦,有這個時間不如去看書打遊戲。
如何讓自己有源源不斷的内容可寫?這與平時的積累有關,多閱讀,多思考,多寫作,真正的技巧無外乎這些。方法論層面的東西不再贅述,我重點講幾個具體的小技巧,直接“授之以魚”。
優秀文章的特點
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 阿裡雲開發者大會将給你答案。