國菱教你提高系統編程能力
來源:湖北國菱計算機科技有限公司-荊州網站建設-荊州軟件開發-政府網站建設公司
時間:2018-04-27
計算機科學有兩類根本問題。一類是理論:算法,數據結構,復雜度,機器學習,模式識別,等等等。一類是系統:操作系統,網絡系統,分布式系統,存儲系統,游戲引擎,等等。
理論走的是深度,是在追問在給定的計算能力約束下如何把一個問題解決得更快更好。而系統走的是廣度,是在追問對于一個現實的需求如何在眾多的技術中設計出最多快好省的技術組合。
如果你一點不懂理論,還是應該學點的。對于系統性能的設計上,算法和數據結構就像在自己手頭的錢一樣,它們不是萬能的,但不懂是萬萬不行的。
怎么提高系統編程能力呢?
1、土辦法:多造輪子。就像學畫畫要畫雞蛋一樣,不是這世界上沒有人會畫雞蛋,但畫雞蛋能馴服手指,感受陰影線條和筆觸。所以,自己多寫點東西吧。寫個編譯器?渲染器?操作系統?web服務器?web瀏覽器?部件都一個個換成自己手寫的,然后和已有的現成部件比一比,看看誰的性能好,誰的易用性好?好在哪兒?差在哪兒?為什么?
2、更聰明一點的辦法:多拆輪子。多研究別人的代碼是怎么寫的。然而這個實踐起來經常很難。原因:大部分工業上用的輪子可能設計上的思想和技術是好的,都設計和制造過程都很爛,里面亂成一團,讓人乍一看毫無頭緒,導致其對新手來說非常難拆。這種狀況其實非常糟糕。所以,此辦法一般只對比較簡單的輪子好使,對于復雜的輪子,請量力而行。輪子不好拆,其實是一個非常嚴重的問題。重復發明輪子固然是時間的浪費,但當輪子復雜而又不好拆的時候,尤其是原來造輪子的人已經不在場的時候,重新發明和建造輪子往往會成為無奈之下最好的選擇。這是為什么工業界在明知道重復發明/制造輪子非常不好的情況下還在不斷重復發明/制造輪子的根本原因。