寫技術文章能幫助大家理順學習的思路,更能促進自己不斷學習——分享下寫技術文章的思路


    我在剛開始寫技術博客時,感覺是無從下手,相信很多朋友都有相同的感受。經過不斷的總結和實踐,更在一些朋友的幫助和指導下,目前我至少有能力寫技術文章。

    我發現,寫技術文章不僅能幫助我提高學習的效率,少走學技術的彎路,更能讓我清晰地描述出針對某個技術的體會。利用這些在博客園里學到的技能,我還出版了兩本書。Java Web輕量級開發面試教程   和  Java核心技術及面試指南,在工作中我也受益匪淺。

    為了感謝大家對我的一貫支持,也為了讓更多的朋友快速掌握“通過寫博客高效提升能力”的技巧,在這篇博文里,我將分享下關於構思選題,搭建文章結構,組織代碼和文字等的技巧。更重要的是,我還將分享通過學技術寫博客提升自己能力的感受。

  

1 先給自己指定一個學習的目標,一定是先學技術再寫文章  

    目標非常好定,大家思考下,最近學好什么技術后,你就可以通過跳槽等方式提升收入。比如針對3年java開發,掌握分布式框架或大數據分析或機器學習,一定能提升自己的價值。如果大家感覺找不到學習方向,就去看招聘市場上,你從事的方向,哪些技術比較值錢。

    我就拿分布式框架舉例,其中包含緩存,消息代理中間件,反向代理,數據庫架構等方向,就據此給自己制定一個計划,以半年為大目標,每一個月制定一個小目標,比如半年后,就可以出去面試,每一個月,深入了解其中一個組件(或至少面試時不會被問倒)。

    制定好目標后,大家就可以各顯神通地學習了,比如看博客,買書,看視頻,甚至參加培訓班都行,但關鍵一點是,得投入大量時間。這里我的體會是,這個目標最好和錢有關,比如學好后能跳槽,或者學好后能出去培訓講課,這樣學習動力就非常足了。

2  當你感覺大致了解某個技術時,就可以寫一篇初級的文章

    一般學習分如下幾個階段:1 知道這個技術是干嘛的 2 通過運行代碼了解這個技術的基本要素 3 通過一個小型綜合性的項目了解這個技術的開發步驟 4 通過實踐了解實際項目中用這個技術會有哪些坑。我一般在達到第3個階段后,就出去通過面試去檢驗學習成果了,畢竟如果在公司里沒機會,很少能達到第4個階段。

    這時,如果你學到第一個階段,就可以開始通過寫初級的文章來歸納總結了。我就拿Spring Cloud里的負載均衡組件Ribbon來舉例,在初級階段,大家可以按如下的思路來寫。

    第一,什么是負載均衡,第二,介紹Ribbon,比如可以寫有哪些重要的類,一般來公司項目里Ribbon會配置在哪個部分里,第三,通過框架圖,說明Ribbon實現負載均衡的效果。第四,如果可以,寫一下Ribbon和其它組件(比如Eureka)整合使用的方式。

    上述內容由於不涉及到代碼,所以初學者在經過一定時間的學習后也能寫,如果再按如下的要求寫的話,這篇文章絕對會有質量,比如可以留在博客園首頁不被移除了。

    要求1:別大段摘錄網絡上現成的資料,比如大段摘錄關於Ribbon的介紹,如果真的要介紹,先自己看懂,然后用你自己的話寫出來。一篇技術文章最低的標准是,隨便拿一句話到網上搜,應該是搜不到雷同的(別人抄你的除外),這點要求可能對剛開始寫文章的人有些難度,但如果你要提升,這一定要做到。剛開始的話,大家甚至可能無法組織文字措辭,寫出來的文章可能質量也不高,但只要寫幾篇,文字能力的提升就會非常快。

    要求2:必要時,可以放些框架圖或者接口圖,同樣道理,別直接摘錄別人的圖,如果可以,你用各種制圖工具畫出來,實在不行就用Excel里基本形狀的圖畫出來。如果再不行,你可以用一些現成的圖,但在圖的下方,得加上你對這個圖的說明。

    要求3:得講清楚這個技術的最基本的要素。比如之前寫語文議論文,先亮出一個觀點,再通過若干論據來證明。在寫技術文章時,先不要求有多么深入,但在這篇初級的技術文章里,得講清楚如果要項目里用某個技術(比如Ribbon),我們至少得用哪些組件(比如負載均衡器和策略組件)。

    要求4,這也是最重要的一點,一篇文章里,多少得有你自己對該技術應用的體會,否則,你文章里的內容完全是你搬來的,你就沒進步了。比如Ribbon,大家可以寫,Ribbon可以給大家帶來哪些便利,你安裝配置Ribbon時解決了哪些問題。當然,你首先得學習別人的文章,不過,在你參考多篇別人的文章后,多少會有些自己的體會,這時一定要寫下來。你的體會其實就是這篇文章的精髓,積少成多,你多寫幾篇文章后,體會自然就多了。 

3  當你運行通代碼時,就可以分享步驟了

    學技術一定不能停留在理論階段。如果僅知道理論,或看了別人的代碼但自己不去實踐,別的不說,在面試時,這方面一定過不了。 

    話說回來,目前網上信息太多太多,要找某個技術的可以運行的代碼也不是難事。我還是拿Ribbon舉例,說下我如何運行代碼,再如何據此寫技術文章。

    第一,多找些書或視頻,我知道RIbbon里有哪些組件,以及實際項目里,會和Eureka等組件整合。

    第二,我就找些各組件(比如負載均衡器或iRuler等)的代碼,運行通,並從效果里體會這些組件里常用方法的參數的含義。

    第三,找個和Eureka的整合案例吧,並運行通過。

    至此,我就可以寫關於運行步驟的代碼了,具體的文章大家可以按我相關的博客內容,比如,Spring Clould負載均衡重要組件:Ribbon中重要類的用法

    在這里,我是通過貼代碼加針對代碼說明的方式,講述針對Ribbon重要類和接口的說明,自認為講得比較清楚。而且,寫這類帶代碼的文章絕對要比寫剛才提到的初級文章收獲大。

4  但別僅僅停留於此,多想下,在實際項目里,該怎么用?該如何避免坑,這類文章最值錢

    我經常在博客園里看到有大牛把解決實際問題的經歷寫下來,或者寫如何在項目里避免一些坑。這類文章是經驗的凝結,其實是最值錢的,我也嘗試寫過關於線程和OOM等的文章。

    這類文章往往要是技術大牛才能寫,而且寫這類文章很費經歷,往往一個月寫一篇此類文章就很好了。對於像我這類在學習階段的人,或許寫不出高質量的技術文章,但不代表沒法寫點擊量高的文章,比如,如下幾類文章同樣可以獲得高點擊量,而且不難寫。

    1 雞湯文,比如某段時間工作壓力大但有收獲,可以寫篇文章分享下自己的心境,同時給大家鼓勁。

    2 經歷文,比如面試經歷工作經歷等,我經常針對我做技術面試官的經歷寫文章,這類文章博客園里不少,題材也很多。

    3 熱點文,比如目前介紹區塊鏈或機器學習。 

5  總是先學習先調通代碼再有技術文章

    台上一分鍾台下一年功,哪怕是大牛,不通過學習積累,不調試代碼,不去看底層的代碼,也沒法寫技術文章,或者寫出來的技術文章會很膚淺。所以如果大家感覺沒東西可以分享,那么根源是最近學習少了體會少了,這才沒分享的資源,這時候首先要做的是學習。

    比如最近有人要我寫大數據方面的文章,剛開始我一定不知道該寫什么,這時候就會按之前講的思路,通過看視頻或別人的技術文章,調通若干個python大數據的案例,然后再從網上找些實際的企業級的大數據項目,也運行通,隨后寫技術文章。當大家運行通企業級的大數據項目后,可以寫題材就很多了,比如如何搭建大數據環境,python開發大數據有哪些重要組件,它們該怎么用,或者可以把自己在調試時遇到的坑寫下來,照這思路,一定能寫出高質量的文章。 

6  技術文章的寫作思路:總分總結構

    之前講的是選題材以及寫作方面的一些技巧,這里就詳細講些技術文章的具體操作思路:總分總結構。

    在語文里,還有其它結構,但就用這個最基本的結構,其實就可以寫好文章了。

    在技術層面怎么用總分總結構?(以Hystrix組件為例)

    第一,在文章開始,寫一下該組件是什么,可以干嘛,最好配上圖。這是第一個“總”。同時,列出該技術至少可以包含哪些要素。

    第二,在文章的后面部分,逐一講述Hystrix的重要組件,比如回退保護方法,緩存,同步異步返回等技術,這所謂“分”,而且,在介紹各部分時,最好結合代碼說明。

    第三,在文章結尾,總結下上述組件如何有效地整合到一起工作的。這是第二個“總”。

    在代碼層面也可以用總分總結構來說明。

    第一,給出代碼后,先說下這段代碼是干嘛的。(第一個總)

    第二,逐一講述代碼里各重要代碼段的含義,或者關鍵方法的參數和返回值。(分)

    第三,總結,比如給出運行結果,或者講下各重要代碼段是如何綜合起來工作的。(第二個“總“) 

    上述方式很容易操作,而且用這種結構寫出的文章,給人的感覺會非常清晰明了。      

7  剛開始寫時,不求面面俱到,但求講清楚一個方面

    我自己出版過計算機書,我見過不少作者,在寫書和博客時,往往想一口氣吃成個胖子,往往想一下子把這個技術的所有要點都寫清楚,這樣反而會給別人一種“思維混亂不知所雲”的感覺。

    比如Hystrix技術有10個要點,一般項目會用到其中四個(用到基本的熔斷保護),高並發項目里會用到其中的七個(外帶同步異步緩存),另外三個是不怎么用到的。

    這時,在寫Hystrix技術文時,寧可分多篇寫,比如第一篇寫實際項目里的常見用法,第二篇寫hystrix在高並發項目里的用法,第三篇寫對hystrix底層代碼的理解,第四篇寫和ribbon或eureka等組件的整合,這樣如果再用之前講到的總分總協作方式,思路就很明確,且每篇文章都有自己的側重點。

    而且寫的時候,一定得詳略分明,比如介紹概念性文字(Hytrix干嘛的)時,以講清楚為界,一般兩三句話即可,別太羅穗,但在結合講關鍵技術要點時,一定得講清楚,如果剛開始寫不容易掌握分寸,這部分寧可寫多點,把關鍵方法的參數含義,返回值以及代碼結構都講清楚,多寫幾篇技術文章后,文字自然就精煉了,而且也容易掌握分寸了。  

8   總結(常寫技術文章后,就能出書了)

    總結下這篇文章的觀點。

    1 總是先學技術再寫文章,而且通過寫文章,能很好地促進自己學習,並能讓自己在學習方向上少走彎路。

    2 寫文章對面試非常有幫助,比如某人在寫技術博客,哪怕博客內容一般,面試官就會認為這個人平時會不斷學習,而且上進心非常強,況且高質量的博文(或者書)更能在面試時證明一個人的能力。

    3 雖然說在大多數情況下寫技術文章沒法給自己帶來直接性的收益,但與其把時間用來手機和游戲上,那還不如用來學習和寫技術文章上,這樣好歹我還能不斷進步。

    寫技術文章,能提升自己的能力,也能擴大自己的影響,這些雖然無法有效地用客觀標准來衡量,但能力提升給自己帶來的好處是實實在在的。不僅如此,當大家寫技術文章到到一定量以后,寫作水平會提升,這時就能出書了。

    寫書的流程以及寫書的技巧,本文在其它博文里寫過,這里就不再重復了。但寫書絕對是個名利雙收的事情,收入是小事,而且能幫助自己找到好工作和好的外快兼職。如果大家對此有興趣,我會再分享些關於寫書出版方面的經驗。

    轉載本文前,請先和本人聯系。轉載時請全文轉載,並說明文章的出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM