程序員如何搭建本身的知識體系?

什麼是知識體系?

img

所謂"知識體系",指的是把大量的不一樣的零散的知識點,經過內化,存儲,整理,等方式組合起來,以點成線,以線成面,造成系統的,有序的,清晰的脈絡結構.前端

咱們在解決問題和處理事情時,會使用本身的知識體系作出選擇,不管是潛意識仍是顯性意識.每一次的抉擇和行爲都將迭代咱們的知識體系,讓其更加明確清晰,找到本身不足的地方,優化能夠改進的地方,明確接下來的方向,提高本身的全局總體思惟,強化當下的正在使用的技能等.java

知識體系不是一蹴而就的,而是貫穿咱們的生活經歷和對事物的思考慢慢積累起來的,中間須要海量的知識支撐,不斷改變,不斷適應.git

什麼是我的的知識體系?

img

知識是無窮無盡的,沒有必要什麼都學,也不可能什麼都能學會.程序員

每一個人都有一致的時間屬性,同時又有不一樣的天賦和努力程度,人生萬象,不一樣的人有不一樣的場景和結果.github

因此,找到適合本身的知識,構架徹底只屬於本身的體系,纔是在這場遊戲中的最優選,你沒有重來一次的機會,即便浪費了,也只能不斷往前.編程

這注定是一個無可替代的過程,別人的知識體系你拿了也沒有用,反而害處大於益處,咱們只能參考,沒法複製,別人也沒法幫忙構建,一切聽從於你本身的心裏和身體.後端

什麼是程序員的知識體系?

img

我的的知識體系咱們有一輩子的時間來慢慢完善,它主導人生的每一次選擇和際遇.網絡

可是它仍是太籠統,太龐大了,主要的做用更偏向於內化,而咱們須要的是當下的外向,也就是如今的生活和工做.架構

若是說吃和睡分別佔據了人的各類三分之一,那麼工做就佔據了剩下的三分之一,它也是重要的經濟來源和物質基礎.工具

在互聯網的發展中,技術迭代的速度遠超人們的想象,面對不斷變化的技術,在這個"終身學習"的時代,程序員須要積極應對.

據不徹底統計,大多數程序員同窗都有着本身的博客之類的,寫着一些技術筆記或者生活日誌,更多的是用github分享着本身的代碼.

這些都只是程序員知識體系中的一小環,聚焦領域和帶有職業屬性的一個架構的才能構建一個完整的體系,下面一一描述.

如何構建知識體系?

img

總的來講,知識體系的構建主要有五個步驟,每一個大的步驟,都包含不少小的步驟.

人生是有方向性的,就像時間不能逆流,體系的構建也是有順序的,正確的按步驟執行,可以幫助咱們快速搭建本身的知識體系.

不管是我的知識體系,仍是程序員的知識體系,區別只是模塊不一樣,總量大小的問題.

程序員體系屬於我的體系的一個脈絡分支,這意味着,咱們能夠複用我的體系的構建方法,只是重點是互聯網的節點而已.

大量輸入

沒有輸入,何來體系,輸入是知識積累最爲重要的方式.

知識體系最初是由不少的知識點組成,那麼,這些知識點來源於什麼地方?

做爲一個程序員,請好好思考,你的知識點主要來源自哪些渠道?

信息輸入

img

通常的信息來源於網絡文章,書籍,視頻教程,線下交流等方式.

對於程序員來講,視頻教程是極爲推薦的信息來源之一,它有着書同樣完整的內容體系,也有實際操做的可視化演示,一般還附帶着講師的我的經驗和優秀習慣,可以及時的跟上技術的步伐,實時的溝通和調整,而書籍一般要落後半年,甚至一兩年.

可是書籍的閱讀仍然是不可或缺的,若是說視頻教程更偏向於實際操做,那麼書籍就適合深層次的思考,越是經典的知識越是適合書籍承載和傳遞.固然,不少程序員都經歷過<<21天學會XXX>><<XX從入門到精通>>,最終有沒有放棄我不知道,一笑置之,不予置評.如何選擇一本好書,也是一個門大學問.

和搜索引擎打交道最多的,程序員當屬其中之一,一些碎片化的文章有助於咱們解決某個特定的問題,瞭解某些小的知識點,這種輸入比較零散,勝在量多,領域普遍,容易擴展思惟的邊界,碰撞出創意的火花,剛好不會讓咱們一直侷限在某個地方,有的時候應當專一,有的時候也應當擴散.

線下的交流沒必要多說了,所行之處,到處皆是,工做中和同事的溝通,生活中和朋友的交流,技術細節也好,觀點見解也好,屬於人與人之間的信息交換.

簡而言之,就是在諸如慕課,網易雲課堂,極客時間等平臺選擇好的課程,在書城或者圖書網站選擇好書,多讀書,在推酷,知乎,掘金等信息平臺,多多閱讀新聞資訊等,而後多多參加活動,演講,多與人交流.打造屬於你本身的信息渠道,多閱讀,多學習,多交流.

實踐輸入

img

通常的實踐輸入爲代碼練習和項目開發.

每一個大神都是從小白過來的,小白學習編程最初的姿式就是敲代碼,一遍,兩遍,三遍,直到把紙上的知識內化爲本身的體會.

任何事物,都會有一個認知的階段,也會有一個實踐的階段,以一個普通的例子來講,要學會炒一道菜,看一百遍菜譜也不會有什麼進展,一字不漏的背完也不會有什麼進步,惟有一次又一次的嘗試,才能親身體會,才能逐步學習,才能終有所成.

編程也是同樣,學習一個知識點就是反覆的去練習,反覆的去使用,從實踐中去理解它的意義所在.

代碼片斷的反覆練習就如同備菜,番茄切片,雞蛋拌勻,兩個操做重複一千遍,也成不了一碗番茄雞蛋,項目開發就是知識點的融合和使用.

一個完整的項目有助於從結果導向促使咱們構建一個完整的知識體系,學習是爲了什麼?是爲了用吖,工做爲了什麼,就是爲了完成項目.

入職以前,什麼都得學,什麼都要會一點,由於你不知道什麼樣的內容會命中Hr,入職以後,一切都清晰明瞭,專一於眼前的事物便可.

梳理脈絡

img

回憶一下你看過的書籍目錄,每次選書的時候是否是窺一頁而知大概?

想象一顆大樹的枝葉結構紋理,一張小小的蜘蛛網,又或者是浩瀚無限的星空.

這些都是脈絡的表現形式,點與點之間互相串聯,線條與線條之間又延伸不一樣的方向.

不妨來作一個小實驗,不帶思考的隨口說出任何形式的幾個關鍵詞,如書籍,地理,老虎,小貓,水果,開發,學習,下雨...等

它們來源於你的知識點,有的能夠歸爲同一類,有的不存在什麼強的關聯,有的帶有層級關係.

咱們須要經過適當的梳理,讓它們成爲一張網,一顆樹,一本書,一片星空.

如前端開發,通常的職業規劃是要麼深刻前端領域,精通某些行業技術,縱向擴展,要麼學習一些後端內容,往全棧工程師方向發展,有助於從總體產品提高開發過程的溝通效率和產品質量,還能夠選擇先學習設計,學習產品,學習測試,以技術的關聯度橫向擴展.

可是若你非要研究航空母艦,天文地理之類的也沒人攔着你,出於興趣還好說,如果選錯方向,極可能會與現有的知識體系脫節.

換言之,就是把知識點分門別類,同時制定好方向和目標,始終保持知識圈定在一點的範圍裏,結合實際的狀況縱向或者橫向發展.

推薦使用思惟導圖工具,諸如xMind,MindManager等軟件,稍稍學習一下導圖相關知識,使用它梳理脈絡,用的多了,天然就明白了.

佈置一個小任務,用導圖列出你的職業發展方向如高級開發,全棧開發,架構師等或者接下來你將要學習的領域和具體內容,如java,ui設計,區塊鏈等

筆記整理

img

大腦的容量有限,咱們必須使用工具把知識給存儲下來,按照以前整理的脈絡結構.

整理的知識爲兩種,一種是公共的或則別人的知識,一個是內化爲本身內容的知識.

常見的如網上的經驗教程,理論知識,代碼片斷,均可以複製粘貼待筆記裏面.

書中的實用知識,核心內容,也能夠選擇性的摘抄出來,圖片,視頻等富文本也能夠一一保存.

讀書筆記,開發過程的操做步驟,均可以實時記錄下來,本身的心得,經驗和體會.

主要推薦筆記類軟件,如印象筆記,爲知筆記等,最好能多端同步,易於檢索,呈現結構體系.

思考優化

img

優化這個詞字面上的意思你們都懂,看起來很簡單,可是如何優化,優化什麼纔是重點.

對於程序員來講,最爲重要的是開發效率提高,其次是開發質量提高,最後是其餘軟技能提高.

不妨多問本身幾個問題:

開發過程過程當中有什麼錯誤的地方,致使速度慢的緣由有哪些,爲何?

還有哪些技巧和工具可讓開發流程更快,更好,具體如何操做?

諸如此類,不斷的對事物進行分析,對本身進行反思,總結,而後改進.

實踐反饋

img

其餘的就很少說了,程序員最多見的實踐方式就是寫博客,錄教程,開發產品.

在大量輸入中咱們提到書籍,教程和練習代碼等方式,屬於吸取的角度.

可是,知識體系極爲重要的一環就是輸出,輸出是快速將知識內化爲本身知識體系的方式之一.

有一點不得不提到,在應試教育中,學生幾乎不多體驗一下老師的視角,哪怕只是幾分鐘.

他們把時間花費在教室裏,培訓班,做業上,歷來只是聽講,而不是演講,歷來只是寫題,而不是出題.

終生學習意味着終生的社會大學,互聯網學生,不能只是一味的輸入和執行,而是應該輸出.

寫博客,既是寫給本身,也同時寫給觀衆,如何讓他們更好的理解和內容自己同樣重要.內容要經受得住讀者的考驗就得糾正本身的錯誤,確保內容傳達的準確和簡易性,讀者也會從不一樣角度給與建議,一次閱讀或者一個贊就是一個正反饋.

錄教程,更加要具有專業性,會用和會教徹底是兩回事,若是你想要講述一個道理或者描述一個操做,一般須要系統化的,引述更多的論點,補充更多的細節,以合適的表現形式才能達到預期的效果,在教的過程,前提是你得會,其次是你得講的明白,這是一個極其考驗知識深度的事情,你隨時面臨各類各樣的問題.

咱們在工做中開發產品是別人的產品,充其量算是其中的一個小小的螺絲釘,沒有主動權也無心加入太多的想法.

可是自有產品徹底依據你我的主觀意願而構思,依據你擁有的技術而構建,一個產品就是一個小的技術體系,在實現的過程當中,不會什麼就去學,學完就去作,最終你會參與到許許多多你從未接觸的環節,固然,有些地方能夠考慮外包或者合夥,或者其餘替代,重要大部分都有了解或者參與便可.

相關文章
相關標籤/搜索