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

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

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

    我發現,寫技術文章不僅能幫助我提高學習的效率,少走學技術的彎路,更能讓我清晰地描述出針對某個技術的體會。利用這些在部落格園裡學到的技能,我還出版了兩本書。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的整合案例吧,並執行通過。

    在這裡,我是通過貼程式碼加針對程式碼說明的方式,講述針對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 雖然說在大多數情況下寫技術文章沒法給自己帶來直接性的收益,但與其把時間用來手機和遊戲上,那還不如用來學習和寫技術文章上,這樣好歹我還能不斷進步。

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

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

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