閱讀本文大概須要 3 分鐘。面試
如何真正地掌握一個技術知識點,這是我一直在探索的一個問題,在秋招復習的那段時間,我主要經過閱讀博客、整理博客等方式構建了本身的知識體系,因此也算是有了一些經驗,在這裏分享給你們。算法
一、第一次接觸編程
做爲一個學習者,在學習過程當中每每會遇到不少新概念,好比你在學習併發編程的時候,會遇到「鎖」、「同步」、「CAS」等奇奇怪怪的概念,光看文字解釋大部分人都是一頭霧水,我也同樣。網絡
因此,第一次接觸一個技術知識點,每每是咱們充滿好奇,渴望探索的時刻,保持這份好奇心,繼續下一步探索吧。數據結構
二、深度優先遍歷多線程
深度優先遍歷(DFS)是一種算法思想,用在這裏,想表達的是「若是遇到一個陌生的概念,學習它的過程當中每每會同時遇到其餘陌生的概念」那麼就用深度優先遍歷的方法去搞定它。併發
剛剛咱們提到併發編程裏的「鎖」這個概念,就應該噶學習
好比我遇到了「網絡IO模型」這一問題時,卡在了IO多路複用這一問題上,搜索之後,發現IO多路複用在Linux操做系統上的解決方案有:poll、epoll和select。操作系統
這三個概念又是什麼東西呢,沒辦法,只好用DFS的方法繼續去了解,搞懂了poll以後,繼續搞懂epoll,而理解epoll又是至關費勁的,不得不去了解epoll的實現原理,甚至須要去看源碼,可見學習一個技術知識點並不輕鬆。線程
三、搞懂底層原理
對於上面提到的epoll,筆者爲了學習它實在費了很多功夫,一開始光看一些面試題的解答,覺得記住答案就能夠了,可是真正到面試的時候你就會發現背的東西根本靠不住,一是容易忘,二是容易被看穿。
當你背了不少面試題的答案以後,你就會發現,背的越多,忘得越多,這就是一個惡性循環,怎麼辦呢,只好硬着頭皮去理解原理唄。
固然,對於這種級別的知識點,我可不推薦你抱着《UNIX網絡編程》去
探索,有點太誇張了,去看一些比較好的博客就足夠了,好比在掘金,開發者頭條,搜一下你感興趣的知識點,挑幾個高贊回答瞅一瞅,總有幾個大佬能告訴你真相的。
我早已熟悉這一學習方式,因而很快就找到了一篇講解epoll原理的文章,這篇文章不只把基本概念解釋清楚,甚至還解析源碼,另外,我在另外一篇文章裏找到了epoll底層數據結構的示意圖,居然是一顆紅黑樹。此時再把二者一結合,基本上這個概念就變得很好理解了。
四、構建本身的知識體系
不論是學什麼技術,最終都須要你進行概括、整理,才能把所學的東西變爲本身的。工做爲何要寫日誌,平時學習爲何要寫博客,其實就是在構建本身的知識體系。
在學習的過程當中多作筆記,多作總結,習慣一旦造成,長此以往,便會印在你的腦海裏,你下次再被問到這一問題時,你就能夠用本身以前總結過的內容來回答。
好比我在學習Java併發編程的時候,一開始也以爲毫無頭緒,相關知識點雜亂無章,後來我整理了一個技術專欄叫作「Java併發指南」,在這裏的過程當中梳理了併發編程的知識結構,從最基礎的Java多線程,再到JMM內存模型、鎖、JUC併發包、JUC源碼,依次進行學習。
若是對我整理的博客專欄感興趣,也能夠直接點擊原文連接進行查看。
推薦閱讀:
據說點「好看」是種美德?我要先點個好看