論基礎理論知識的重要性

mghio發表於2021-04-15

前言

在計算機行業工作的人們,最大的感觸就是這個行業裡總是會出現很多的新東西,各種技術、框架等等,變化無處不在,有很大一部分人都比較焦慮。在一些論壇或者社群裡面總是有人在問如何學習一門新技術?怎樣才能跟上技術的潮流?我想說是,我們應該打牢基礎,應對變化,以不變應萬變

從變化中尋找不變的東西

變化都是我們看到表面現象,本質的變化其實並沒有多大。計算機發展的這幾十年來,理論的層面變得不多,很多理論都是在幾十年前就已經發現了的,只是在表現形式上變化比較大,誇張一點的甚至是一年一個樣的都有。

所以想要應對這種變化就要抓住其本質不變的地方,也就是其背後的理論基礎,打牢理論基礎,提升自己的程式設計內功修養,一些與語言無關比較通用的東西要重點掌握,比如程式設計裡面的一些設計模式、程式碼重用、解耦以及抽象能力等等。想要程式碼重用就必須得解耦,想要解耦就進行抽象,抽取出公共不變的東西,這些都是和語言無關的通用的技能。

基礎知識決定你能飛多高

當你有牢固的基礎知識以後,其實也會更加容易的突破自己的技術和成長瓶頸。我認為在技術領域裡面其實是不存在量變可以達到質變這麼一說的。量變達到質變也是說只要我努力多寫程式碼就能成為架構師,技術有一個質的突破,其實並不是這樣的。

儘管你程式碼寫得再多,如果不懂得背後的技術原理,不懂得科學的學習方法,不進行歸納總結輸出,是永遠達到質變的。所以必須學習和打牢基礎理論知識,如果總是隻學習一些浮於表面上的東西,當技術形式發生一些變化後,你會發現之前學習的知識已經用不到了,又得重新學習,而在技術世界裡變化又是非常快的,所以很多都迷失在不停的學習技術形式之中,這也是造成一部分人感到焦慮的原因之一。

上層的技術實現都是有背後的理論基礎作為支撐的,因為這些理論基礎都是抽象和歸納,比如不管是 Java 還是其它的一些開發語言,只要只用 TCP/IP 協議,用的都是一樣的原理,不同的只是技術實現形式上的差異,你只要打牢基礎理論知識,抓住本質原理,不管它技術實現形式上如何變化,都能很快掌握它。

計算機基礎理論分類

這些知識絕大部分都是一個科班學生本科的專業課講到的原理知識,但是大部分人在學校可能都沒有靜下心來認真學習鑽研,有句話說得好:“出來混,遲早要還的~”,一個好的學習方法就是一定要看一些經典的書和世界頂級學校的課程,最後自己歸納總結輸出。這些知識總的來說可以分為以下幾類,

  1. 系統知識類:計算機系統、網路協議、資料庫等
  2. 演算法和資料結構類:演算法和資料結構、分散式系統等
  3. 中介軟體類:訊息佇列、任務排程、閘道器代理等
  4. 程式語言類:類庫實現、設計模式、程式設計技術(多執行緒、非同步等)、語言原理等

計算機發展的這幾十年來,核心的基礎知識就是上面列舉的這些,雖然我們的直觀感受技術是在不斷更替的,實際上本質的東西並沒有改變,其理論基礎還是這些內容,變化的只是技術形式,我想說的一點是對這些基礎理論知識的掌握程能直接決定的成長天花板。萬丈高樓平地起,勿在浮沙築高臺。

相關文章