写作—开启技术成长之路
一、前言
作為一名程序員,經常在網絡上查找各種各樣的資料。此時,會檢索到很多優秀的技術文章。一篇好的技術文章,可能不僅僅會解決我們的問題,更能在閱讀的過程中帶給我們一些美好的體驗。
許多時候我們也憧憬自己能寫出優秀的技術文章,然而卻往往感覺到無從下手。那如何寫好一篇技術文章呢?其實是存在一些方法和技巧的,下面我們就對這些內容進行詳細的介紹。
二、寫作目的
在正式介紹如何寫技術文章之前,我們先來看下為什么要寫技術文章?因為知道了我們的目的,才能有動力更好的完成寫作。
2.1 寫給自己
可能看到這個標題之后,大家的第一反應是感到疑惑。因為在大多數人心目中,寫技術文章的主要目的不是給他人分享自己的知識么?
針對這個疑惑,我的回答是:
對于技術文章的讀者而言,能夠學到一些知識或者解決自己遇到的問題,確實很有意義。不過,大部分技術文章主要是針對某些特定的知識點進行闡述。因此,對于讀者的益處主要是查漏補缺,想要通過閱讀技術文章形成自己的知識體系就比較困難了。
對于技術文章的作者而言,通過寫作能夠獲得更大的益處。其實,與其說是寫作,倒不如說是 “學習+思考+總結+提升” 這一整體的過程。寫作本身就是一個學習的過程,而不僅僅是寫出一篇文章。
所以,對于大多數希望學習和成長的同學而言(例如我自己),寫作的主要目的是自身的提升。
2.2 總結學習成果
我們在日常工作中,會遇到許多問題,也會想到各種各樣的解決辦法。隨著解決的問題越來越多,我們了解的知識點也越來越多。但是,這些知識點我們應當如何沉淀下來形成知識體系,便于后續解決類似的問題呢?
寫作,恰好可以作為對前一階段學習成果的總結,將這些零散的知識點串聯成自己的知識網絡。對于這一過程,可以使用一幅圖來表示,如圖 2-1 所示:
圖 2-1 知識點串聯成知識網絡
2.3? 明確學習方向
為了說明如何通過寫作明確自己的學習方向,首先列舉下在簡書上我的文章分類,如圖 2-2 所示:
圖 2-2 簡書上的文章分類
對于我而言,通過已寫的文章就可以明確大致的學習方向,原因如下:
可以了解自己知識體系中擅長哪些知識。例如,通過圖 2-2 所示可以知道,我曾經寫過 iOS 多線程系列的技術博客。因此,對于 iOS 多線程的相關知識我應當比較擅長。
了解自己擅長哪些知識之后,自然也就知道了自己知識體系中欠缺哪些知識。因此,對于這部分知識可以重點關注。
便于回顧已經掌握的知識。由于已寫的文章都可以歸納到對應的知識點中,如果需要回顧某些知識點,就可以迅速找到相關的文章進行查看。
在了解自己知識體系的前提下,學習的方向性就會強上許多,這也是寫文章的益處所在。
2.4 良好的學習方式
“謝謝樓主!您這篇文章給我的收獲很大”
“閱讀量 10000+”
“您的文章已被《xx 進階之路》專題收錄”
……
每當看到這些信息的時候,都會感覺很開心,因為自己獲得了別人的認可。此時,對于學習和寫作都會產生更大的興趣。一旦興趣有了,學習效率更容易提上去。這里分享一個從知乎上看到的學習金字塔模型,如圖 2-3 所示:
圖 2-3 學習金字塔模型
從圖 2-3 可以知道為什么寫作是一種提高效率的學習方式,因為寫作正是一種 “教授給他人”?的主動學習方式的最好體現!
2.5 思考體系化
書面表達與口頭表達最大的差異是:口頭表達只需要告訴對方發生了什么,而書面表達需要把一個事情全面而透徹的講清楚。如果想要講清楚一個事情,就需要建立一個清晰的思考體系。
寫作創造了一個能夠升級思考的契機,讓你可以把點連成線匯成面。例如,當你需要給剛做過的項目寫一份總結文檔,為了便于讀者的理解,你需要考慮以下幾點:
-
我做這個項目是為了解決什么問題?
-
業界其他團隊在面對這個問題時會采用什么方案?
-
我的方案與他們的方案對比起來有什么優勢?
-
未來有哪些潛在的可迭代優化的方向?
而當你把這些問題都想明白寫清楚,就形成了一個清晰的思考體系,自然會取得更大的進步。
在上述的幾節中,我們使用大量的篇幅闡述了寫作的目的。原因就是希望大家能夠理解:?寫作,首先是一條自我成長之路 。
三、寫作步驟
明確了寫作目的之后,接下來就該詳細介紹如何寫一篇技術文章了。
在寫文章之前,先想清楚以下幾個問題:
-
是寫給誰看的?
-
主題是什么?
-
提綱怎么寫?
如果這幾個問題想清楚了,文章自然也就水到渠成了。
3.1 目標用戶
首先分析文章會給誰看,即文章的目標用戶。有了目標用戶之后,才知道需要產出一篇什么樣的文章。
例如,你的目標用戶是從未接觸過 iOS 的群體,他們可能連 Xcode 都沒有安裝過。如果上來就講 iOS App 性能調優,這基本會導致你的目標用戶感覺不知所云。
但是,如果你的文章面向的是更深層次的探討和分析,為了這部分未接觸過 iOS 的用戶去增加篇幅大可不必,只會讓那些中高級程序員覺得這篇文章廢話連篇,原本的價值大打折扣。
實際上,一篇文章不可能面面俱到。即使是書籍,也會有一個讀者群體。因此,首先應當明確文章的目標用戶。
3.2?確定主題
文章主題涵蓋的范圍不宜過大,寫大而全的東西對作者的水平要求非常高且需要消耗大量精力。如果真想寫,也應當先把思路理清,與有經驗的人交流之后再開始。
挑選的主題應當是自己了解透徹的東西。如果對于一些細節不太了解,也務必將這些細節點敘述清楚。
3.3?尋找知識點
主題確定好之后,圍繞這個主題會有許多相關的知識點,可以通過網絡或者其他的方式找到一些闡述主題所需的知識點。
例如,我們想寫一篇主題為 iOS crash 分析的文章。圍繞這個主題尋找資料,可以找到諸如 crash 的類型、出現的原因、如何收集、如何避免、出現 crash 不讓程序崩潰的方法等相關知識。
然后,挑選我們需要介紹的知識點。如果這篇文章主要是講解如何收集 crash,那就可以將 crash 類型、出現的原因、如何收集這些知識點列入闡述主題所需的知識點,而如何避免等相關知識點就不需要列入我們所介紹的范圍。
3.4?提綱和標題
確定主題和所需知識點之后,將需要介紹的知識點按照邏輯順序或者內容由淺入深進行排列,形成一個提綱。
定義提綱是有技巧的,對于技術文章,基本都是有結構可循的,提綱標題盡量做到言簡意賅。
例如,在上一步中我們已經確定好所介紹的知識點為 crash 類型、出現的原因、如何收集,結合技術文章的基本結構,提綱按照由淺入深就可以列為:
1. 前言(基本結構)
2.?crash 收集(一共兩種 crash,分別介紹類型、出現的原因、如何捕獲)
? ? ?2-1. NSException
(1)NSException 類型常見的異常
(2)常見異常出現的原因
(3)如何捕獲
? ? ?2-2. Unix 信號
(1)Unix 信號類型常見的異常
(2)常見異常出現的原因
(3)如何捕獲
3. 踩過的坑(可以根據實際情況確定是否需要)
4. 總結(基本結構)
5. 參考文獻(基本結構)
6. 聯系方式(可以根據實際情況確定是否需要)
根據主題和提綱,設計一個突出中心的標題即可。例如,根據上面例子中的主題和提綱,文章的標題可以設計為《漫談 iOS crash 收集》、《iOS crash 收集原理》等。
3.5?完善內容
提綱一旦確定,剩下的工作就是將內容填充到各個目錄之中。
這里需要注意的是,完善內容時盡量做到下面幾點:
-
內容正確
-
圖文并茂
-
語句通順
-
格式合理
-
舉例說明
3.6?反復修改
一篇優秀的技術文章并不是寫出來的,而是改出來的。文章初稿形成之后,可以把自己想象成讀者,盡量多讀幾遍,反復修改之后達到通順易讀即可。
四、寫作技巧
4.1?開始
萬事開頭難,寫作也是一樣。不論現在是什么樣的水平,如果想提高寫作能力,最好的方式就是開始寫??赡荛_始寫的幾篇文章不夠好,但是隨著數量的增加,一定會導致質變的產生。
4.2?模仿
寫出第一篇優秀的文章將會是一個良好的開端。但是,對于那些寫作新手來說,這往往也是最困難的,很多人會覺得無從下手。針對這種情況,我的建議是從模仿開始。
有些讀者可能目前還不善于寫作,但一定閱讀過那些優秀的文章,不妨模仿那些優秀的文章,學習他們是如何給文章起標題的、如何寫開場白、如何闡述他們的觀點以及如何總結的。通過模仿,會漸漸培養起寫作的感覺,并且越寫越好。
4.3?多寫
任何事情都不能一蹴而就,寫作也是。想要寫出優秀的文章,最好的方式還是反復練習。熟能生巧,寫的多了自然會更容易寫出優秀的文章。
4.4?內容技巧
在寫具體內容時也有一些技巧,例如:
-
使用合適的稱呼。為了讓讀者感受到閱讀這篇文章就像是在和作者對話一樣,文章中可以用 “我” 或 “我們” 來表示作者,用 “您” 或 “大家” 表示讀者。
-
對長句進行斷句。要多用短句,避免長句,目的是讓讀者閱讀起來體驗更好。
-
采用多種表達方式。正所謂 “一圖勝千言”,對于文字不好表達的地方可以考慮使用插圖、表格等形式。
-
文末總結。文章結尾時一定要有總結,讓讀者讀完文章后,能夠快速抓到重點,有一種 “深入淺出” 的體驗。
五、總結
本文基于自己對于技術文章寫作的一些感悟,同時結合了一些指導寫作的優秀文章,總結了寫作步驟和寫作技巧,希望能給大家在技術文章寫作的過程中提供一些幫助。由于時間倉促,個人水平有限,如有錯誤之處歡迎大家批評指正。
最后,引用之前看到的一句話作為本文的結束:“寫作本身是一件非常有意義的事情,它將使你變得更加勤于思考,思維也將變得更加成熟與完善。同時,你也會為自己用心寫出的每一篇文章而感到驕傲,并從中獲得信心”。
參考文獻
-
【編程之外】為什么我們要寫技術文章?
(https://www.cnblogs.com/penghuwan/p/7053678.html)
-
知乎上極力推崇讀書的人為什么不把上知乎的時間都用來讀書?
(https://www.zhihu.com/question/20982901)
-
寫文章對程序員很重要嗎?
(https://www.zhihu.com/question/273631529)
-
你也可以寫出優秀的技術文章。
(https://www.jianshu.com/p/954c1c7b3eb7)
-
如何寫好一篇技術文章?
(https://blog.csdn.net/EAPxUO/article/details/78372442)
-
技術寫作是有技巧的。
(https://blog.csdn.net/qq_34874784/article/details/90401962)
本文作者
交流合作
本文著作權歸「神策數據開源社區」所有,商業轉載請聯系我們獲得授權;非商業轉載請注明出處,并附上神策數據開源社區服務號二維碼。
你還可以掃描二維碼,加入社區交流群,與大家一同討論。也歡迎關注我們的公眾號,最新內容盡在掌握!
?
?
???
【更多內容】
-
神策分析 Android SDK 之用戶路徑采集
-
深入淺出:移動端數據采集埋點 SDK
-
神策分析 iOS SDK 架構解析
-
神策分析 Android SDK 架構解析
總結
以上是生活随笔為你收集整理的写作—开启技术成长之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分析引擎 2.0 已来,神策再刷行业标准
- 下一篇: 埋点全解 2:iOS 应用程序状态