程序員如何充分利用博客進行知識沉澱?


作為一個長期寫博客(博客上現在已經有526篇博客)的程序員,我覺得從博客中受益的最好方法是:自己去寫博客。因為:

輸出是最好的輸入。

說說一些優點:

  • 對於我們所要學習的東西,我們可以掌握得更深入,因為我們需要去給別人解釋。
  • 我們在不斷地對自己知識總結,對自己知識進行強化。
  • 我們在以另外一種方式思問題。

按我寫過的文章,我覺得技術博客可以分為幾種不同類型的文章:

  • 技術、閱讀筆記——學習

  • 理論、技術實現過程——創造
  • 思想、感受、總結——分享

這三類大概是一個遞進的過程,最開始的時候我們只會去寫一些技術筆記或者閱讀筆記(不僅僅限於書,也可以是代碼)等等。接著,我們掌握了一定的基礎之後,我們就有能力去做過多的事情,我們就開始享受創造的過程。最後,我們就會去總結一些學習過程中遇到的問題,並分享一些自己的想法。

1. 技術筆記

通常我們看到的都是技術筆記以及某個東西的實現過程,當開始寫一篇文章的時候,就意味著你可能需要分享某個東西。

直接貼上代碼的是gist,不是博客,一開始你需要一個簡介。以之前寫的《Mac OS Oculus DK 2 node-hmd 安裝及Hello,World》為例。

一開始需要簡單地介紹一下node-hmd:

This module serves to act as a common interface for communicating with a variety of head mounted displays (HMDs).

接著,就是安裝的過程。

最後只能用Clang,export這些編譯器,然後再編譯:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

npm install node-hdm --save

反正都會報錯。。

object file (Release/obj.target/hmd/src/platform/mac/LibOVR/Src/Util/Util_ImageWindow.o) was built for newer OSX version (10.7) than being linked (10.5)ld: warning:
ld: warning: object file (Release/obj.target/hmd/src/platform/mac/LibOVR/Src/Util/Util_Interface.o) was built for newer OSX version (10.7) than being linked (10.5)object file (Release/obj.target/hmd/src/platform/mac/LibOVR/Src/Util/Util_LatencyTest2Reader.o) was built for newer OSX version (10.7) than being linked (10.5)
ld: warning:
object file (Release/obj.target/hmd/src/platform/mac/LibOVR/Src/Util/Util_Render_Stereo.o) was built for newer OSX version (10.7) than being linked (10.5)
node-hmd@0.2.1 node_modules/node-hmd

然後,就是實現的過程,也就是代碼。

在貼上這些代碼之前,你需要再運行這些代碼,要不很多人就會罵你。

2. 理論、技術實現過程

通常我們也會去想一些特定的技術在一些新的領域中的應用,算是一種微創新吧。

諸如《基於Virtual DOM與Diff DOM的測試代碼生成》,像這樣的理論類型的文章就需要詳細地介紹一下它是怎麼工作的,如何工作的,最好有示例代碼。

3. 思想和感受

如前天寫的《回顧2015年:從翻譯到浮現式設計》、《信息流的思考》

上面就是自己對於一些技術的看法,以及一些想法。在你形成這些想法的時候,你就可以記錄這些想法。因為想法也是在不斷的也演進的,過了幾個月後,你會發現你的想法發生了一些變化。這時,我們就可以明顯地察覺到自己的進步。這時,我們可以做進一步的記錄。

其他

末了,說說我寫博客的經歷大概是這樣的:

  • 開始只是純粹的寫作(從哲理到其他,雖然沒在這裡寫)
  • 而後為了研究所謂的SEO(似乎已經沒有什麼好玩的)
  • 接著想鼓勵下女友天天寫點東西(她還是漫不經心地寫)
  • 現在呢?大概是為了分享

歡迎關注我的微信公眾號:

http://weixin.qq.com/r/mnVYQHrEVicprT4j9yCI (二維碼自動識別)


UPDATE: 添加一些鏈接,拋磚引玉,僅供參考。

--- --- --- --- --- --- ---

高中開始正式寫博客到現在也有八九個年頭了,隨便聊聊。

1.你的目的是充分沉澱,且定位是『程序員』博客,那麼:

不妨先將工作和學習中遇到的問題,選擇的方案以及解決方法記錄下來。

持續一段時間後,等你找到感興趣的事情後,著重的對這類事情進行挖掘整理,可以是收藏轉載,也可以是進一步的實踐總結,更可以是和別人的討論:

  • 天下武功,唯快不破

  • 家用網路環境折騰筆記
  • [JS]更靠譜一些的正則表達式驗證URL

2.代碼和界面都是一種美學,前期先折騰一種:

不管你是想先做程序架構、代碼組織設計、還是UI的建設,請先專註做一種,一種達成之後再進行其他方面的建設。

這裡提一點,有的人覺得折騰博客系統沒什麼營養,其實不然,除了界面、功能之外的改進,還能夠學習到:

  1. 伺服器系統運維-&>服務架構選擇-&>軟體參數調優;

  2. 安全細節的把握-&>通用安全問題的處理-&>針對當前應用的安全處理
  3. 程序性能的把握-&>涉及上面兩方面,產出結合自己手頭資源的方案
  4. 產品細節的理解和改良,有興趣可以圍觀『交互設計之路、眾妙之門』等

諸如:

  • 比如這個樣式和之前的界面就不同-&> 壞蛋
  • 配置Ubuntu WebServer基礎環境

  • Pantimos/Pantimos · GitHub

3.不要單純的沉溺於代碼細節,感悟理解也很重要:

一位老前輩層和我說:掌握工具是器的層面、掌握代碼技巧算是術的層面,而思考解決問題的方式可以是道的層面。

目前技術日新月異,雖然本質可能沒有太大的變化,但是『器』的迭代、『術』的增加遠遠比『道』要多的多,所以不妨找到自己的『道』(不要用火影鳴人語氣來念....)

諸如:

  • 一些思考 – 蘇洋博客

  • 我理想中的前端開發環境

4.不要過度執著數量:

寫下來的不一定是學到的,記住的才是學到的。

輔助你記憶的方式有很多,不一定是寫,更遑論博客了。

更好的方式有使用代碼、書摘、筆記、辯論.....

  1. 舉個例子,你可以自己用gitlab、或者github來整理記錄提交的代碼,commit和issue以及changelog記錄好變動,匯總下來,變化不必博客里列代碼信息量少,上下文還全面。

  2. 你可以使用平板上的app,多看、document等軟體,做好書摘,方便回來繼續看;

  3. 你可以使用筆記的方式來臨時記錄,evernote之類的軟體提供了很好的搜索功能,想看的時候搜索關鍵詞就好。
  4. 隨時隨地的『麻煩』你周圍的人,友善的『吵』(有營養的辯論)起來,場景化立體記憶。(感謝我周圍童鞋朋友的不殺之恩!)


博客地址:http://xlzd.me

專欄地址:http://zhuanlan.zhihu.com/xlz-d

大約是從13年開始寫博客的,最初在CSDN上,後來使用GitHub,最後到現在搭建在自己VPS上的博客,每次博客的遷移都會丟掉一部分內容,最初在CSDN的博客更是全部扔掉了。

對我來講,博客首先是一個可以隨心所欲吹牛的地方。那些在現實生活中沒有人可以吹的內容——想想你對著一個妹子說你會8種『hello, world』的寫法——我可以自己總結到博客自娛自樂,現在還可以在我的知乎專欄自娛自樂一下。

我的博客和專欄基本上是同步的,一般會在博客發布之後複製到專欄(除了我純扯淡的部分只放在博客)。最開始的內容是散的,東一篇西一篇,寫一寫那些做過的東西,分享一下Python的高階用法。

後來我開始系統性寫博客。最近在分享總結一系列爬蟲經驗(基於Python),預計會在一月底完成分享。這部分內容從一個最簡單的爬蟲到數據的存儲再到大規模數據抓取再到模擬登錄再到反爬蟲都會涉及。

在爬蟲系列博客完成之後,我計劃利用爬蟲數據分享一些數據處理方面的內容,如分類、查找、推薦、預測等問題的處理。


作為一個只看博客,從來不寫博客的老傢伙。因為每日找資料,所以好賴有些心得。

當然只針對技術博客。

我一般不去搜索博客的。

因為

第一,大部分中文技術博客是翻譯,複製,或者一些tips。沒有啥用。不如看原文和源代碼。

第二,特定的技術版本更新比較快,博客內容基本上很陳舊。

第三,研發過程中大都遇到是一些小問題,或者是有些代碼比較少用,忘記怎麼寫了,這時候stackoverflow比博客好用。

那麼什麼是有用的技術博客呢。

第一種,架構方案探討,比如infoq的文章

第二種,非常見演算法解決思路,比如王艮

第三種,從業經驗,比如@robbin 的肉餅鋪子

第四種,各種框架,架構,技術坑,以及如何避免入坑。比如opencv中有那些極慢函數和如何替代等等

這些都是有長期參考價值的。

如果各位想寫博客,往這個方向靠吧。


知識積累應以書和練習為主,博客輔助。書要系統得多,任何一個技術領域,認真讀完一本書比讀許多通常組織凌亂的博客要有效得多。純技術的書你是可以通過亞馬遜搜索到的,下面是一些非純技術的推薦,如果在你職業生涯初期讀完80%該讀的書,你的知識水平是不可能低到哪裡去的。

  • New Programmer"s Survival Manual: Navigate Your Workplace, Cube Farm, or Startup / 程序員修鍊之道:專業程序員必知的33個技巧

  • The Passionate Programmer: Creating a Remarkable Career in Software Development

  • Soft Skills:The Software Developer"s Life Manual

  • Pragmatic Thinking and Learning: Refactor Your Wetware / 程序員思維修鍊

  • Joel on Software / 軟體隨想錄

  • Coders at Work: Reflections on the Craft of Programming / 編程人生15位軟體先驅訪談錄

  • Practices of an Agile Developer: Working in the Real World / 高效程序員的45個習慣:敏捷開發修鍊之道

  • The Effective Engineer

  • Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman

  • The Healthy Programmer: Get Fit, Feel Better, and Keep Coding

  • Team Geek: A Software Developer"s Guide to Programming Well with Others

  • ReWork / 重來:更為簡單有效的商業思維

  • Becoming Technical Leader

  • Peopleware: Productive Projects and Teams / 人件

  • The Art of Agile Development


書寫是為了更好的思考


記憶是最不靠譜的東西,最好的方式就是把當時的想法寫下來。有時候某個知識點或者操作想不起來了,我就去翻寫過的文章。儘管一條命令我可能記不住,但是我能記得「在博客上記錄過它」這件事,這就夠了。博客起到了對記憶創建索引的作用。

另一點似乎諸位答主都沒有提到:博客本身就是知識的沉澱。我的博客除了前端的一些代碼,其它完全是從零開始一行一行敲出來的(雖然用了框架)。博客是寫文章地方,同時也是長期開發的項目,一點點添加功能,優化性能,和維護其它的項目並沒有什麼不同。博客還是實驗新技術的地方,比如為了優化訪問速度加上 HTTP/2——畢竟公司是不可能給你機會嘗試的。

直接用 jekyll 或者 wordpress 能讓你快速上手開始寫/發布文章,壞處是喪失了一些創造和定製的樂趣,似乎可以做的只有改造前端模板了。


看靠譜的大牛的博客,看完後,自己動手寫,再總結。循環往複。


除了自己寫博客之外,還可以多看別人的博客,

我經常逛的就是各大廠的ued:

TaoBaoUED | 做地球上最好的 UED

Taobao FED | 淘寶前端團隊

如果某件工作花費了自己一番功夫,那麼最好把它記錄下來,經常翻翻看看

比如說折騰阿里雲和nodejs的時候

阿里雲部署Node.js伺服器(Windows環境)

還有半年前折騰樹莓派的時候

樹莓派筆記 - 空気力學少女の詩

在很多情況下,翻譯別人的文章也是不錯的方法

在OS X Yomesite 上配置Apache伺服器

然而訪問最高的卻是教別人怎麼破解軟體........

Zend Studio12.0破解方法(附網盤下載)

我選擇狗帶


這個問題我可以回答,博客我主要是留作自己用的,如果能夠幫助到別人是最好的了。

博客的作用是用來總結知識體系,以及鞏固知識用的。自己學過的東西精華都整理成筆記,以備遺忘的時候翻看。畢竟自己的東西自己用起來最好用。

一般遇到問題的時候,如果自己有過筆記,就從自己的筆記里找解決方案,而且還能鞏固知識了。如果自己沒有做過筆記,那就看其他人的了。

最後我的博客:http://www.cnblogs.com/roverliang/


簡單對比下我為了寫文章做過的嘗試,哎,程序員就是不折騰不舒服。

(1)折騰過Hexo靜態博客,兩台電腦的遷移、各種插件、SEO等等都折騰過,現在懶得折騰了,Daily Code;

(2)試著通過daocloud用三個docker容器創建了一個ghost博客,The Daily Code,但是缺少了一點定製特性,當然,如果你有興趣,可以參考daocloud的ghost景象構造自己的博客鏡像,相對來說,ghost的在線編輯比hexo的要體驗更好

(3)開了一個公眾號,dq_Voice,但是發現公眾號上不適合寫技術博客(代碼顯示效果差、排版難受),除了不適合寫代碼,其他的用公眾號來寫其實也很不錯。

(4)重回簡書,最近發現兩個好處:純粹得寫作環境;更多的閱讀量和交互。我最近兩篇比較火的文章都來自簡書:杜琪 - 簡書

上述是在另一個問題下面的回答


唉~

本來想寫技術的~最後都寫成了廢話~

http://c2pblog.sinaapp.com/


首先,你寫博客總不能寫錯誤的代碼吧。所以貼上代碼之前你會去運行他,debug之類的。這就是進步了。

再者,你要將要點寫出來首先你得弄懂他,弄明白每一句的意思,這就是進步了。

---------------

兩句無關痛癢的話,題主加油

最後 YzzTing Blog


http://zynblog.com


大家都在寫博客只有我在寫百度文庫嗎。。。。。。。


我一直對博客有不同見解

博客目的是分享知識或者自己獨特的聲音,而不是簡簡單單的copy,或者敘事

把日常與技術分割開是個人認為首要的,然後就是利人利己的知識了

我是沒有博客的,目前自己的博客只是為了方便自己找到問題的正確解決方案而已,編程圈太多錯誤及不完整答案,被傷了好幾次了


最開始寫博客,是為了學習前端,寫個網站整個博客挺好的。漸漸的,有了在博客上記錄學習知識的習慣,然後看到有用的文章,會轉載分享,讓更多感興趣的人看到,現在也不斷地在更新維護中。

不忘初心,方得始終。

軒楓閣:http://www.xuanfengge.com


1.最初寫博客是受到劉未鵬《暗時間》這本書的觸動,目的是為了督促自己思考。

2.現在回頭看看這半年多來寫的博客,儘管每月就那麼幾篇,半年下來也積累了不少,很有成就感。

3.寫作是對自己學習,生活,工作,以及思考的記錄。

4.寫博客慢慢的變成了生活中的一種樂趣。

無論你寫或者讀博客,她對你的工作和學習都有幫助。寫博客讓你思考深刻,讀博客可以交流技術心得。

我的博客地址: http://m.blog.csdn.net/blog/liusirboke


1、筆記作用

2、自己對於某類問題的理解記錄分享

http://blog.csdn.net/jiankunking


用牆外的博客。


百度雲筆記,你值得擁有


推薦閱讀:

在搜索引擎時代,知識還是力量么?
如何通過 Evernote 將收集的資料整理成可用的知識體系?
怎麼同時充分利用 Evernote 和 GTD 類的軟體?
喜歡收藏網址,收藏夾裡面有幾百個網站,請問如何管理啊?
如何定義浪費時間?

TAG:學習 | 程序員 | 知識管理 | GitHub |