從事軟件開發行業,咱們免不了要使用軟件:操做系統、虛擬機、IDE、消息隊列中間件、緩存中間件、HDFS、各類預研的編譯器、Tensorflow等等。linux
在我看來,雖然軟件有無數種,可是每種軟件的瞭解卻不出如下幾種維度——redis
第零層:緩存
知道個名頭,知道是幹什麼的架構
第一層:併發
會一些基本的使用(調用)並逐漸掌握到(60%以上)的使用方式spa
好比JVM和Java編譯器,你會寫一些Java代碼,並在JVM上運行你的代碼以實現一些功能操作系統
好比操做系統,你會一些基礎的命令設計
好比redis,會搭建一個單機版,並可使用其命令中間件
第二層:繼承
對大部分(60%以上)的配置項(設置項)都能懂
好比JVM,你會設置一些JVM的運行參數
好比操做系統,你會配置一些系統運行參數
好比redis,你會配置各類參數,這個時候你應該已經能夠搭建各類類型的redis集羣,並使用客戶端對其進行鏈接
第三層:
對其源碼大部分(60%以上)已經讀懂,原理和運行機制已經深度理解
好比JVM,你對其源碼已經基本吃透,這時候讓你作一些移植和JVM裁剪、JVM源碼修改、從新編譯等工做已經不是問題
好比操做系統,同JVM
好比redis,你已經深度理解了redis的運行機制,redis自身的bug你已經能夠解決,redis不知足你的要求你已經能夠調整它的代碼
第四層:
你已經對軟件的社區和做者形成了深度的影響,你不斷的提出建議或者意見,並提交解決方法,成爲了社區名人,你們都以爲你很屌,甚至超越了原做者
好比linux,linus常常和你書信往來,並對你感到由衷的佩服,若是你比他年輕不少,他甚至會要求你作他的軟件的繼承人
好比JVM,Oracle公司決定高薪聘請你作他們公司的技術指導
第五層:
你愈來愈以爲到這個軟件設計的不完善,都是些愚蠢的設計,並開發了一個同類軟件,徹底超越這個軟件
好比linux,你已經作出了一個嶄新的操做系統,你開發的操做系統,設計在當前看來幾乎是完美,假以時日和宣傳一定超越全部同類,一統該類軟件的江湖,linus甚至爲你讓步,中止更新linux內核,併發布官宣
第六層:
你的軟件已經站在巔峯,你以爲馮諾依曼機的架構已經不能知足你的需求,爲了讓你的軟件運行的更好,你迫切須要一種嶄新的計算機架構,因而你開始着手設計一種新型計算機架構來運行你的軟件,從這之後你踏上了其餘領域——也許你會涉足量子領域,也許你會搞生物,也許你的新設計會和相對論掛鉤,或者你的新架構就是改造恆星?若是到這一層,凡人已經看不透你了,我以爲人類的將來就靠你了,你加油吧。
第七層:
還想看第七層是什麼樣的?醒醒吧!
(以上內容從第三層之後都是扯淡,僅供娛樂)