我是 J_Knight_,熟悉個人人都應該知道我是一名剛工做滿3年的非科班 iOS 開發者,並且一直堅持寫技術博客快有2年半的時間了。html
其實從去年開始就一直想分享我寫博客的心得,可是一直也沒有找到合適的契機,恰好在今年年末前達成了掘金粉絲量過萬
的小目標,索性就藉着這個機會分享一下我本身關於寫博客的一些收穫,同時也算順便作一個階段性的總結。java
這篇文章分爲三個部分:react
第一部分先簡單介紹關於個人博客的一些數據:寫博客的起始時間,使用的博客平臺,博客內容等等。git
第二部分是本篇的重點,講解的從博客中個人收穫有哪些。程序員
第三部分羅列了幾個常常從一些朋友(粉絲)中聽到的關於寫博客的問題以及個人回答。github
在第一部分首先看一下我寫博客的幾個階段,而後在該部分結尾統計一下個人博客的一些數據。面試
我在就業以前,自學 iOS 的時候開始寫博客(當時只是寫一點學習筆記,質量很低),拿到第一份工做以後的半年多之後開始在簡書寫博客,再通過大概一年多之後由於一個「衆所周知」的緣由從簡書轉到了掘金平臺,再到後面也開始維護本身的我的博客和公衆號。算法
從簡書轉戰到掘金的緣由能夠看我簡書的最後一篇博客,簡書我的主頁地址以及其餘主頁地址在本篇結尾提供。編程
寫博客的內容按照時間順序大體分爲六個階段:設計模式
第一個階段的寫做內容集中在視頻教程的學習筆記以及讀書筆記以及一些關於iOS開發的比較小的知識點。在這段學習過程當中帶給個人提高比較大的是《Effective Objective-C 2.0》和 《Objective-C 高級編程》這本書,以及一些關於程序員素質方面的書籍。有如下幾篇博客:
《Effective Objective-C 2.0》總結:
《Objective-C 高級編程》總結:
讀書筆記:
上面這些博客在掘金上發佈的時間比在簡書上面發佈的時間晚,由於大概是在簡書寫做一年多以後纔開始在掘金髮布文章。
第二階段的寫做內容集中在 iOS 各大主流框架的源碼解析,緣由是當時想經過看源碼來提高業務水平。這階段的源碼解析一共有如下幾篇博客:
後來還發布了兩篇源碼解析的文章,緣由是當時業務上要求封裝一個網絡框架和緩存庫,因此就找了YTKNetwork
和YYCache
的源碼來學習,博客地址:
經過學習YTKNetwork
,本身後來也封裝了一個網絡框架,開源在了個人GitHub倉庫中:
很慚愧因爲今年事情比較多,因此這個庫從去年底發佈以後就一直沒有更新。可是優化的思路已經有了,明年能夠逐步更新和維護。
第三階段的寫做內容集中在 React Native,緣由是當時公司任務上有 React Native 的開發任務,因此當時花了一些時間來學習。學習主要是經過一個慕課網上的實戰項目React Native技術精講與高質量上線APP開發來學習的,在學習過程當中參考課程的講解,我本身將APP實現了一遍,放到了我我的的GitHub倉庫中:GitHubPopular-SJ(已經得到該課程的慕課網老師的贊成)
並且後面本身也封裝了一個純 React Natice 的 UI 組件,一份代碼同時支持 iOS 和 安卓,如今在個人 Github 上有開源:react-naive-highly-customizable-action-sheet
兩篇博客的地址:
第四個階段的寫做內容集中在代碼規範上面,緣由是當時有小團隊了,感受須要有一些規範須要實踐,因此就蒐集了一些關於代碼規範的書籍和博客,整理了一套本身的 iOS 開發代碼規範。有如下兩篇博客:
第五階段的寫做內容集中在數據結構和算法,緣由是想提高本身的基本素質。由於畢竟是非科班,因此這方面不能落下。通過一段時間的學習和總結以後,開啓了數據結構&算法 in Swift
的系列:
原本打算把這個系列堅持寫下去的,可是因爲面試和新工做的關係,這個系列的第二篇的後面就沒有更新了。
等如今連載的面向對象設計系列結束之後會繼續更新這個系列。由於目前來看,面向對象設計方面的學習任務的優先級比較高,緣由會在下面說一下。
第六階段的寫做內容集中在面向對象設計方面。由於新公司的任務有很大一部分在SDK的維護和開發上面,因此這部分我想快速學習一下,這樣對後面的工做會比較有幫助。有如下幾篇博客:
這個系列的全部Demo和UML類圖我也有在GitHub上維護:object-oriented-design
以上就是關於我博客的一些信息,下面統計一下我在各平臺博客的一些數據:
平臺 | 粉絲數 | 文章數 | 閱讀數 | 喜歡數 | 閱讀數/喜歡數 |
---|---|---|---|---|---|
掘金 | 10043 | 27 | 131393 | 4534 | 28.97 |
簡書 | 4785 | 58 | 183642 | 3806 | 48.25 |
根據閱讀數/喜歡數
這項數據能夠大體看出在掘金上的博客質量是高於簡書的。主要是由於在從簡書遷移到掘金的時候是挑選了在簡書上質量相對高的那部分文章;並且後面在掘金寫的博客也逐步更加註重了質量。
關於寫博客給我帶來的收穫,我以爲由淺入深能夠分爲如下幾點:
前三點是比較直觀的,也是大多數人都比較容易看到的:
相對於前三點,第四第五點是相對來講比較隱性的,但對我來講倒是收穫最大的兩點。尤爲是第五點,給我帶來的」收益「遠大於上面四點的總和。
關於第四點:由於我但願本身寫出來的東西能夠很容易被其餘人理解(包括我本身),因此寫出來的東西我會不斷推敲和修改。就是在這樣長期反覆的過程當中,我發現本身語言組織能力,描述事情的能力提高了不少,這些其實也是溝通能力的一部分,因此也對我平時在工做和生活中和他人的溝通有了比較大的幫助。
對於第五點我在這裏着重說一下:在寫博客的過程當中我養成了作事力求作到最好的品質。
一篇博客寫出來,會花費博主的一些時間;看博客的人一樣也是會花費一些時間。那麼既然雙方都在花時間,爲何不讓這些時間變得有意義呢?由於一篇博客能夠寫的很精彩,也能夠寫的很通常:寫的精彩,實際上是共贏;而寫的通常,其實你們都沒啥太好的收穫。
並且隨着個人粉絲量的增多,我對本身的文章的要求就愈來愈高:不管是文章質量仍是給讀者的閱讀體驗上我都會花費心思去琢磨:如何能夠給讀者高質量的知識,如何可讓讀者很容易吸取我所寫的東西?由於可能後面能看到個人博客的人會愈來愈多,並且我身上的一些標籤也不允許我對博客質量的疏忽。
就拿我最近分享的設計原則的這篇文章來講:面向對象設計的六大設計原則(附 Demo & UML類圖):
面向對象設計的設計原則其實網上和不少書籍都有說起,若是我本身來寫的話我徹底能夠隨便摘錄一些文字再本身改一改放上去就能夠了。
因此,最開始我是想把這篇博客寫成這樣:只有6個原則的理論性知識。可是後來隨着對本身的要求的不斷提升,最後把博客寫成了這樣:6個原則的理論知識 + 12個Demo + 12個 UML 類圖 + GitHub開源(object-oriented-design)。
本來這篇博客的排期只有<2個星期,可是實際上從開始學習到發佈博客通過了4個星期。由於當時我還不會畫 UML 類圖,因而就花了一點時間學了一下。並且大多數Demo的場景是根據看過的示例觸類旁通出來的,也花了一點時間,由於我以爲只有本身想出來的纔是本身的,本身理解好了,其餘人看的也明白。
我相信我從此的博客也會按照這個方式去寫:可能有一個最初的規劃,可是由於不斷迫使本身作到最好,會不斷地把博客寫到更高的水平。
其實我也不知道養成這個品質的緣由到底是哪個,能夠說是爲了粉絲量,提升影響力,也能夠說是爲了分享知識,也能夠說是爲了想本身學好,我以爲可能每一個都有吧,可是這些能夠概括總結出一個點來:那就是對我和對粉絲(讀者)的負責。因此也能夠說是這種對全部人的責任心養成了這個品質吧。
那麼爲何說這個品質是我最大的收穫呢?由於這個品質不只僅影響了我寫博客這單單一個方面,它還在影響這我工做、生活的方方面面,包括如今,也包括將來。
舉一個生活中的例子: 有我微信的朋友都應該都知道我在減肥,由於我在9月中旬的時候立了一個Flag:每瘦5斤就會發一張當時顯示當時體重的照片。如今是12月初,到如今通過了2個多月,這種照片我一共有4張了(包括第一張),也就是說我已經瘦了15斤了,並且還在變瘦,昨天稱了一下,體重是73公斤,比最初的體重82公斤少了9公斤,也就是18斤。因此說再過一週我應該能夠再發一張照片了,記念我瘦的第四個5斤。
看到我發了這幾張照片以後,陸續有不少朋友問我是怎麼減的。我在這裏簡單說一下:訓練以無氧訓練(舉鐵)結合 HIIT 運動的方式,時間比例大體爲5:1(我幾乎歷來不跑步,由於跑步的減脂能力很低效)。工做日的午飯晚餐基本都是吃沙拉,但都是高蛋白高碳水的沙拉,沙拉醬只用油醋汁,由於普通的沙拉醬熱量過高了。沙拉都是用的外賣訂的。從9月中旬到如今一共吃了100+頓了,偶爾週末會吃一點油膩的東西。可是天天的早餐必定是吃牛奶和全麥麪包,不會吃煎餅或者肉包那些帶油的東西。
若是按照計劃下個星期結束的時候我能夠瘦到72公斤的話,那麼從減肥開始到目前爲止就是用了11個星期(不到3個月)瘦了20斤,平均每一個星期瘦了將近2斤,這個成績應該算不錯了。
由於我以爲既然是花時間作這件事情,就要作到最好:從運動的強度以及飲食的搭配都要作到最好。
畢竟工做比較忙,也須要時間和精力;運動也須要盡全力去作,以最短的時間達到最好的成果,早日練出更好的體質,對後面的工做也有幫助。
其餘的一些例子就不舉了,總之我很高興寫博客帶給個人這一個品質,這個收穫也是我最想分享給你們的,而不是其餘表面上的收穫粉絲,影響力之類的,由於某個品質會影響作的有關的全部的事情。
在本篇最後,我來分享一下一些常常被朋友(或粉絲)常常問個人關於寫博客的幾個問題,以及個人回答是什麼。
這個問題還有一個相似的問題就是「你是如何作到這麼高產的?」
其實高產倒談不上了,我只是一直在堅持寫而已,並且今年的博客數量較前兩年來說仍是比較少的。
關於這類問題個人回答有兩點:
關於第一點:
這裏說的花時間,是指時間的總量:由於寫一篇高質量的博客所花費的總時間確實很長:爲了可讓讀者有所收穫,你須要從內容,措辭,配圖,排版等多個方面下功夫,而這些地方都是須要花時間的。
由於若是你能夠善於利用碎片時間,就能夠把大量的大塊時間分散掉,所以其實是節省了時間。並且個人博客基本都是來源於平時的學習,而平時的學習又是和工做相關的,因此邊工做邊學,其實博客也就完成三分之一了。
下面舉一個我本身的例子:
其實個人大部分的博客的原型就是個人學習筆記。既然是學習筆記,那麼就確定不是一鼓作氣的,它須要不斷地經過學習來積累,可能跨度上須要幾個星期。好比看一本書的時候,看過的章節能夠記一下筆記,可是不會天天花費大塊時間來作這件事,堅持小步快跑,幾個星期就能夠搞定一本書(或者第三方框架的源碼)的筆記。
筆記作好了以後,就能夠添加一些內容,將它轉化爲博客。添加的內容多是配圖,遞進的語句,總結性的語句(這些也能夠平時複習筆記的時候添加)。而這些操做能夠不須要花費太多的精力來作,由於有關的內容已經經過筆記提煉一次了,你須要作的只是讓筆記變得更加容易被其餘人理解。
那麼既然不須要花費太多精力來作,你就徹底能夠利用碎片時間來作這些:好比排隊,等電梯的時間,等地鐵的時間,工做日的晚上休息時間,週末看完一場電影后的休息時間等等。 我爲了能夠隨時複習和修改筆記,將筆記放在了有道筆記和evernote裏面,因此即便在外面也能夠不斷修改和提煉筆記和博客。並且在平時走路的時候(確保周圍環境安全的前提下)也會反覆推敲本身寫的東西,看是否能夠寫得更好等等。
我以爲善於利用碎片時間是時間管理上很重要的一環,這一點在大學時讀《暗時間》的時候對我就頗有啓發,直到如今我對做者劉未鵬將人的大腦比做CPU的那段文字的印象仍然很是深入。
劉未鵬先生是一位優秀的軟件工程師,這本書對我我的的影響很是大,也推薦你們來閱讀。
說了這麼多,其實上面的文字能夠總結爲兩點:
這裏首先須要澄清一個事實:
說實話我以爲個人資質仍是很通常的,並且學習方法也不見得很高明。之因此會給其餘人諸如這個問題的這種錯覺是由於我在背後實際上是利用了大量的時間來學習,寫博客的;也就是說在一樣的時間內,我相信那些資質更好的人會比我學得更好。
爲何說我有大量的時間來學習呢?
由於這3年來在休息的時間基本沒有去遠一些的地方玩過,也沒有玩兒過什麼遊戲(吃雞隻玩兒過3局,LOL和農藥沒玩兒過),社交活動也不是不少,只是和特別熟的朋友以及家人聚過。所以雖然資質不及別人,可是學習的時間我相信仍是比一部分人多的。
上面說的是時間,至於學習方法,我能夠簡單介紹一下,由於其實原本我也沒有過高深的技巧。
我我的使用的一個學習模型能夠參考下圖:
根據上圖的流程指向你們應該知道各個節點之間的關係了,下面我分別介紹一下每一個節點都作什麼:
選取學習主題
其實我我的以爲選取學習主題對於每一個階段學習的重要程度是很是大的,由於它會決定你在短時間以內的學習質量以及學習成果。
爲何這麼說呢?
所以,我認爲在選取學習主題時:在優先級差很少的幾個學習主題中選擇的話,你須要選擇一個相對於你如今的水平來講「比較難學會」的主題來學習。比較難就是說不簡單可是你仍是能夠搞定的。這樣一來,若是你完成了學習,不但能夠在技術上有一小步的提高,還能夠加強自信,帶着這份自信進入下一輪學習。及時短期內完不成,你也能夠慢慢來,由於畢竟對你來講並非不可能,你不會輕易放棄。
收集多種高質量的資料
橫當作嶺側成峯, 遠近高低各不一樣
在學習主題定下來以後,你就須要選取相關的學習資料了。我我的的習慣是選取多種,高質量的資料。好比在學習設計模式的時候,我會找到不少講解的比較好的博客,教程以及經典書籍同時一塊兒看:
由於不一樣的人可能對同一個事物有不一樣的見解,因此經過閱讀,整理多我的對同一事件的描述可讓本身更深入,更多角度地理解這個問題,而後再結合本身的理解,就會理解的很快,也比較透徹。
高質量這一塊就不用多說了,選資料的時候確定是選那些權威,口碑佳的內容。
作筆記
好記性不如爛筆頭
作筆記不只僅是爲了記錄知識,更重要的是知識信息的質量。由於已經記錄下來了,後面能夠反覆查閱和琢磨,不斷提升對知識的理解程度。
關於筆記的內容:
記筆記的時候不能一味地摘錄和複製粘貼:雖然能夠在開始的時候這樣作,可是後面必定要加上本身的理解,並且這些本身的理解所佔的比重應該在筆記裏面愈來愈多才是,由於只有本身說的纔是你本身的。
關於作筆記的方式:
作筆記的方式有不少種,我我的比較喜歡有云功能的筆記軟件,好比有道筆記和evernote,這兩個都支持多端。平時在外面也能夠在手機上面修改和閱讀。
複習,總結
溫故而知新,能夠爲師矣
不少時候能夠經過複習來體悟出更多的內容,並且複習也能夠避免忘記知識,一箭雙鵰。複習的時候不管是否有新的想法,都要嘗試本身是否還能夠再總結出什麼新的東西來,這也能夠幫助本身對知識理解的更好。
就好比以前學設計模式的時候,當時以爲本身對適配器模式比較瞭解了,可是當本身假想一個場景並實現的時候就以爲本身對這些角色之間的關係理解的並非很透徹。因此只能不斷去思考,動手去畫圖,才真正能夠將一個假象的場景準確實踐出來。
實踐
實踐是檢驗真理的惟一標準
「不知道本身不知道」是比較危險的一件事情,有的時候咱們可能會以爲這個知識點徹底理解了,可是當到實際操做中可能會出現各類各樣的問題。 所以,在理論學習以後,須要去用實踐來驗證咱們的理解是否正確。若是有這個條件最好,可是若是沒有這個條件,咱們就須要建立條件去作。
反饋
不能只是實踐就結束了,實踐的結果要知道是對是錯。並且不管對仍是錯都要總結一下緣由是什麼,還有什麼能夠改進的地方,總結以後放在筆記裏面,造成一個循環。
這個問題多數來自於一些準備打算寫博客或者是一些已經寫博客可是感受寫出來的博客受歡迎程度不如預期的朋友們。
若是將這個問題徹底展開來講,我應該能夠寫出很是多的內容,可是由於這一部分不是本文章要分享的重點,因此就不徹底展開說了。
若是給我反饋表示感興趣的朋友比較多的話,我後面就會專門寫一篇文章分享一下,有這個意願的朋友能夠在下方留個言。
那麼在本文中,關於這個問題我想說的是:文章的受歡迎程度很大程度上取決於你是否真的致力於把你的知識分享給別人。
有些人寫博客是寫給本身的,當作一種筆記來保存;有些人寫博客的目的除了寫給本身,還包括讓別人去看本身的文章。而不管是寫給本身仍是寫給別人,一旦你的博客放在了公開的平臺上面,其實就是在分享你的博客,你的知識。
所以,若是你寫博客只是寫給你本身的,你須要常常問本身:我真的理解本身寫的東西麼?
若是寫博客還爲了分享這第二個目的,你還須要常常問本身:讀者看本身寫的東西,會很容易理解麼,真的會有收穫麼?
其實我上文中也已經說過,我把博客寫好的的動力來源是對讀者,對我本身負責。寫出一篇對本身,對讀者負責人的博客,是對雙方都是有好處的。
有了這個中心思想之後,在行動上就會不斷鞭策本身寫出更好的文章,天然而然你博客的質量以及受歡迎程度就會愈來愈高。
除了內容的質量以外,其實博客的深度以及主題也影響着博客的受歡迎程度。「陽春白雪,下里巴人」你們應該都聽過。即便是內容特別好,可是文章深度很是深,不多人能理解的話,可能受歡迎程度會很不如預期。可是這一點不與上面討論的點衝突。
最後還有一點就是所謂的標題黨:雖然內容比較差可是標題引人入勝的文章可能閱讀量會很高,可是這並不表明它真的受歡迎。我我的並非很推崇這種方式,我仍是比較喜歡和文章內容很是契合,中規中矩的文章標題的,你們觀察個人博客應該能夠發現我博客標題的特色,通常是沒有多餘的字的。
OK,到這裏個人全部心得就分享完了,但願不管您看完這篇文章以後是打算寫仍是不寫博客都能會對您有所幫助。
我以爲在文章結尾仍是要多囉嗦兩句:我這裏沒有說只要作技術的人就必定要有技術博客,也不是呼籲全部作技術的人都去寫技術博客。
由於每一個人的自身狀況不一樣,選擇什麼樣的方式也是本身的自由。可是不管怎麼樣,咱們都但願本身所在的(技術)環境能更好不是麼?這也是我寫這篇文章的核心目的。
下面是個人一些博客平臺,GitHub,以及公衆號的連接,想進一步瞭解我,或是想看個人技術博客的朋友能夠從這些渠道進入。
特別須要說的是公衆號裏面除了會發一些技術文章之外,還會有一些我的思考和技術&非技術的讀書筆記。
本篇已同步到個人我的博客:我從寫技術博客中收穫到了什麼 - J_Knight_