為什么寫博客
寫技術博客對於程序員的提升是不可估量的。只要你堅持一段時間,你就會發現它給你帶來的各種積極的變化。思考問題更加深入了,更容易關注細節了,表達能力也增強了……
不斷的總結自己。程序員面對的世界是非常復雜的,未知領域也很多,在解決問題時第一次的方式並不一定是最完美的,只有通過不斷的總結,不斷的反思,才更容易抓住事物的本質。隨着程序員的水平提高,需要思考的問題就開始變的更深度,更抽象、更復雜。這個時候就會遇到瓶頸,而通過寫博客的方式能將自己的經驗整理成型,形成一個完善的體系。
能夠認識到自己的進步。編程是枯燥乏味的,持續學習更難堅持。而寫博客能激勵自己,讓自己看到自己的進步,並逐步建立信心。
加強記憶,方便回顧。對自己在平時的實踐中的收獲以博客的方式發表出來,本來就是一種記憶的強化。失敗本身不能讓人進步,而對失敗的反思才能讓人進步。使用博客記錄下這些反思,才能保證不會在同一個地方跌倒兩次。
強化發散思維,跳出局部看問題。其實各種技術都有相似或想通的理論作支撐。這些如果只看別人博客,只從google上搜素一些得到一些只言片語是很難領悟出來的。而自己寫作的過程中隨着對自己思路的梳理,更容易提升看問題的高度,以觀全貌。
擴大個人影響力,獲取更多機會。程序員從業有些年頭以后,如果是喜歡技術的人,總會想與別人做些更深入、更高層次的交流,但畢竟水平越高,能進行這種交流的人就會越少、越分散。寫作、演講、著書立說,這都是讓自己進入一個更高水平的交流圈的方式。進入了這個對話環境,你才發現:原來還有那么多可學、可發展的方向。很多人到了三十歲上下就開始惰怠、看不到發展方向,在我看來一個重要的原因就是眼界不開,沒有進入一個更高水平的交流生態。(這一點感謝@JeffXiong的總結)
寫博客要端正心態
很多人之所有不寫博客,有各種各樣的原因。有的說時間不夠,有的說自己的積累不夠,有的說沒有文采…..
其實寫博客就像一項業余愛好一樣,看似不是工作中的分內事,但卻更有助於自己的工作。
一個極端是怕寫的幼稚,不敢下筆,不敢面對別人的評價。博客其實首先是寫給自己看的,如果自己能有所收獲,那就是值得的。
另一個極端是總想着不寫則已,一寫驚人。老想着自己的每篇博客都能博來大家的大量關注。其實再牛逼的作家總有幾篇作品不盡如人意。但是沒經歷這些作品的歷練,是無法揣摩出更深的意境。更何況我們是普通人,只要寫出自己所感所想,虛心接收別人的意見、建議,就是巨大的進步。
敏捷的寫博客
每個程序員都喜歡編碼,但不是每個程序員都喜歡寫博客。如果我們將寫博客的過程與敏捷流程一一對應起來,使用編程的技法來寫博客,那么能提起你的興趣嗎?
本人在寫博客的過程中與敏捷手法結合起來,受益良多。
在一個敏捷團隊中,一個典型的用戶故事的聲明周期是這樣的。
其實我們可以將一篇博客看做一個用戶故事。你既是IM(迭代經理),又是BA(業務分析師),DEV(開發者),QA(質量保證),而閱讀你博客的人就是你的產品的最終用戶。你的目標是讓你的產品大賣(有越來越多的人關注你的博客)。
擴充你的Backlog。 創建backlog的要點就是隨時隨地的記錄你的idea。這有個一個很有趣的理論,大腦有兩個工作模式,線型模式(L型)和富模式(R型)。L型在工作的時候經常被用到,其按部就班,抑制了發散思維。而工作之余大腦得到充分休息,更容易進入R型工作狀態,更容易得到好的idea,這時候要趕快的記錄下來。所以這就是我喜歡evernote原因之一:隨時隨地記錄idea。比如我的backlog里面現在有很多打算完成的博客,其中有《重構手法解析》一篇。《重構手法解析》這篇是我在上班騎自行車的路上想到的idea,並在到辦公室的第一件事就是把這個想法記下來,放到backlog中去。
Analysis。 要點:先寫大綱,再進行補充完善。對於某個idea,大概確定要寫什么,想表達什么樣的意思。無論是技術文章還是平時的一些反思總結文章,都要有一定的骨架。我們可以先將這些骨架確定,然后再填充內容,這就像軟件的設計一樣。比如《敏捷的寫博客》這篇,我確定一個骨架就是:1,寫博客的好處。 2,敏捷流程。 3,如何讓寫博客變得敏捷。有了這個大綱作為支撐,寫的時候就不會漫無目的。
Development。 要點:采用自由寫技術。何為自由寫?即針對當前的博客主題及大綱想到什么就寫什么,而不用太糾結於用詞造句。這就像你要修建一面牆壁,事先不需要計划收集特別的材料,只需要到處走走看看,撿一些好看的時候備用。直到准備造牆時,就從石頭堆里面挑出匹配的石頭安放。寫一篇2000字的文章容易還是將4000字的草稿整理成為2000字的文章容易?相信大多數人會選擇后者。
Testing。 要點:斟酌語句,最后的檢查,將草稿轉化為定稿。
Done。發表。
是不是發表了以后就完了? NO。我們缺少了敏捷實踐中最重要的一環,那就是retro(回顧會議)。我們需要吸收讀者的評論,修正自己的觀點,再對博客進行加工。
我的同事@IM_ZhangYve使用evernote來管理自己的文章。他將category建成了這個樣子。
這樣evernote就成了一個故事牆,每個用戶故事就是一篇博客,當前那些處於backlog,那些處於WIP,一目了然。你所需要做的就是盡量把用戶故事往done里面挪。
使用敏捷的博客工具
以上只是用敏捷的方法來管理博客,那有沒有相應的工具來支持像敲代碼一樣的寫博客? 有,那就是octopress。使用octopress博客框架寫博客與寫代碼沒什么兩樣。 具體如何使用octopress,請自行google或者直接去其官網。 下面簡單講下如何使用octopress發表一篇博客。
- 創建一篇博客。
1 2 3 |
|
編輯博客。
使用任何你喜歡的編輯器打開
2013-04-01-min-jie-de-xie-bo-ke.markdown
文件,比如vim、emacs、sublime等。甚至編代碼的ide都行。然后使用markdown的語法來編輯你的博客。設置標題、設置列表、加粗、加下划線、代碼高亮…一切根本無需借助html編輯器就可以輕松實現。發布博客。
1 2 |
|
不過畢竟將博客host在github或heroku人氣沒有博客園這么旺。我們可以通過同步的方式將博客同步到博客園中。只要將screen.css文件引入到博客園中,就可以共用生成的html元素。我最喜歡的是github顯示代碼的效果。
最后再推薦我們公司部分大牛的博客。