<menuitem id="tjl3v"></menuitem>
<var id="tjl3v"></var>
<var id="tjl3v"></var><var id="tjl3v"></var><menuitem id="tjl3v"><dl id="tjl3v"><progress id="tjl3v"></progress></dl></menuitem>
<cite id="tjl3v"><video id="tjl3v"><listing id="tjl3v"></listing></video></cite>
<var id="tjl3v"><strike id="tjl3v"><listing id="tjl3v"></listing></strike></var>
<menuitem id="tjl3v"><dl id="tjl3v"><progress id="tjl3v"></progress></dl></menuitem>
<cite id="tjl3v"></cite>
<var id="tjl3v"></var><var id="tjl3v"></var>
<var id="tjl3v"><strike id="tjl3v"></strike></var>
<var id="tjl3v"><dl id="tjl3v"><listing id="tjl3v"></listing></dl></var>
<cite id="tjl3v"><video id="tjl3v"><listing id="tjl3v"></listing></video></cite><var id="tjl3v"></var>

程序員的知識管理

2016-06-15 14:18:00
楊通秀
轉貼:
http://www.cocoachina.com/programmer/20160523/16412.html
1963

1463997885355436.jpg

前言

本文從一個程序員的視角來討論知識管理,包括以下幾個方面:

  • 什么是知識管理

  • 為什么要管理知識

  • 如何管理知識

什么是知識管理

個人知識管理(Personal Knowledge Management):一般指個人通過工具建立知識體系并不斷完善,進行知識的收集、消化吸收和創新的過程。

知識管理的范圍很廣,一般的知識管理方法可以參考這篇文章 個人知識管理的方法。

為什么要管理知識

計算機行業的一個特點是新技術更新特別快,意味著程序員需要不停地學習,才能跟上行業的發展。所以,知識管理對程序員非常重要。有意識,成體系地管理知識能夠:

  • 更有效地學習新的知識。

如果我們已經建立好一個技術知識體系,新的技術也只是在其他技術上建立起來的,有了堅實基礎,學習新技術就會更有效。

  • 更好地掌握知識。

使用合適的工具,正確的方法,可以更好地掌握知識,讓知識凝固在腦海,而不是流走。

  • 節約時間成本。

程序員經常遇到同樣的問題,例如說部署開發環境的時候,如果有把解決方案記錄下來,就能省去重新解決問題的時間。

如何管理知識

程序員的知識獲取途徑大部分來自于搜索引擎(谷歌可以提高搜索效率)和技術書籍,這與其他行業不同。主要原因是技術知識一個主要來源是互聯網,例如說技術博客,技術文檔等。因此,程序員的知識管理主要圍繞互聯網展開(并不意味著書籍就不重要)。

我把程序員的知識管理分為三個過程:

  • 知識積累

  • 碎片整理

  • 思考加工

知識積累

想想我們習以為常的知識積累方式有哪些?也許記筆記是我們最常用的一種。對于程序員來說,用筆記錄筆記并不現實,我剛學 C++ 的時候就是把語法記在筆記上。實際上,這種做法是很低效的。更有效的方法是用筆記軟件幫我們記錄文章。例如說,印象筆記,有道筆記等。

一開始我看到好的技術文章時,都是加書簽存起來。后面發現這樣不能離線訪問,而且鏈接可能會失效。后來用上了筆記軟件,于是我可以把文章保存到筆記中,隨時可以翻出來看??梢哉f,筆記軟件給知識積累帶來了極大方便,同時可以分類管理不同的知識。

知識積累難在養成積累的習慣。以前我解決某個問題,谷歌了很久找到一篇文章解決了問題。解決之后并沒有記錄下來,結果下一次遇到同樣問題,我又浪費了很多時間搜索解決方法。重復多次之后,我意識到這是個嚴重的問題。所以逐漸養成了保存各種文章的習慣。這些網上積累下來的文章,成為了我知識體系的土壤。

現在開始,使用筆記軟件分門別類地保存網上看到的文章,這里要著重強調一下分類的重要性,好的分類可以節省你以后重新檢索文章的時間,不要把時間浪費在不必要的勞動上。筆記軟件一般都會提供瀏覽器插件,保存起來是很方便的。

碎片整理

我自己經常遇到這樣的情況:要用到某個 Linux 命令的時候,經常大費周章地去搜索。有人說直接查 man 手冊不是很快嗎?確實查 man 手冊比查搜索引擎要快,但是有兩個問題:一是看了 man 手冊的命令語法,我還得試試看;二是如果我不知道命令的名字怎么查 man。所以,最快的方法不是搜索引擎,也不是 man 手冊,而是個人 wiki。

與大家平常所知的 wiki 不同,個人 wiki 主要是用來記錄知識碎片的,例如說:某個常用命令的語法,特定的軟件配置等等。如果還是不理解,可以看看我的個人  Wiki。這些知識碎片是我們初步消化的知識,只不過因為太過碎片,不能夠組成完整的知識體系。很多人以為把看到的文章保存到自己的筆記里面,就有一種已經掌握它的錯覺,結果保存了成千上百的文章,卻一篇都沒認真看完。別人的文章是他的知識沉淀,并不是自己的。隨時把文章中的精華提取整理到 wiki,才能初步消化知識,為后面的思考加工做準備。

有人會問為什么不用筆記軟件記錄這些碎片化的知識呢?用 wiki 當然是有理由的:

  • 筆記軟件保存的主要是知識原料。我們從網上保存別人的文章到筆記,存下來的知識是別人的,你只是存下來而已,還沒經過消化。我們上面把筆記軟件定義為知識的倉庫,如果把初步消化后的知識也存在那里,會造成一定的混亂。當然你一定要這么做也可以,但我有分層的思維定勢,這算是職業病吧。

  • wiki 是隨處可訪問的。wiki 發布在互聯網上,我們可以隨時隨地訪問它。

  • wiki 是分享的。任何人都可以訪問你的 wiki,分享自己的知識何樂而不為呢?

那么如何制作自己的 wiki 呢?我自己用的是 Simiki,具體用法查看 Simiki-個人Wiki寫作。發布到互聯網我用的是 Github Page,具體操作自行搜索。

思考加工

寫博客是最好的思考加工知識的方法。當年我也是被劉未鵬的 為什么你應該(從現在開始就)寫博客書寫是為了更好的思考給帶入坑的。寫博客的好處我就不提了,看上面兩篇文章就夠洗腦了。下面我著重談談如何寫好博客的一點個人經驗。

  • 博客少寫純操作指南類的文章。網上大部分博客寫的都是純操作指南類的文章,例如,如何搭建 LAMP 之類,可能作者自己都不清楚為什么要這么做。不是說純操作指南類的文章不好,相反我覺得這種文章很重要,只是它的位置不對。它應該放在 wiki 中,因為純操作指南類的文章只是描述步驟,關注點是怎么做,而不是為什么。寫博客的關注點應該在為什么,講清楚為什么要這么做。另外不要鉆牛角尖,我說的是純操作指南,不要以為只要是搭建環境之類的文章都不能寫,這里的“純”代表只給步驟,不提背后的原理。其實寫得好的操作指南應該力求讓讀者知其然,知其所以然。

  • 定期寫文章。 萬事開頭難,動筆開始寫作很難,一旦開始就停不下來了。養成定期寫文章的習慣,至少確保一個月一篇的節奏。

  • 自薦文章到各個技術頭條。例如說:伯樂頭條,開發者頭條,極客頭條等,有讀者才有動力,同時也是保證自己寫好文章的監督。

  • 寫博客的工具。我自己用的是托管在 Github Page 的 Hexo 靜態博客。搭建教程見 用hexo搭建github博客。如果你有服務器的話,可以試試 wordpress,ghost 之類的博客軟件。

  • 把無法加工的知識寫到 Wiki。例如說:git 的一些配置和用法,這些內容在官方文檔都能找到,寫在博客也只是搬運工,除非你有新的理解。

總結

以上是我摸打滾爬兩年多積累的經驗之談,如果你有好的經驗歡迎留言交流。一開始我是在 CSDN 寫博客,只不過走了不少彎路,后來折騰 個人博客,最后又開了 個人 Wiki。逐漸形成了自己的知識管理方法。最后總結一下:

  • 知識積累:使用筆記軟件保存好的文章,積累知識。

  • 碎片整理:在個人 wiki 上記錄初步消化的知識碎片。

  • 思考加工:對存在筆記和 wiki 中知識進行思考加工后寫在博客。

以上講的是如何在互聯網中學習積累,但是千萬不要忽視了看書這一重要方法,書中的知識是成體系的,知識密度高,網上的文章良莠不齊,不成體系,比較碎片化。合理分配時間看書和上網學習是很重要的。

發表評論
評論通過審核后顯示。
怎么买彩票