論基礎理論知識的重要性

前言

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

從變化中尋找不變的東西

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

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

基礎知識決定你能飛多高

當你有牢固的基礎知識之後,其實也會更加容易的突破本身的技術和成長瓶頸。我認爲在技術領域裏面實際上是不存在量變能夠達到質變這麼一說的。量變達到質變也是說只要我努力多寫代碼就能成爲架構師,技術有一個質的突破,其實並非這樣的。設計模式

儘管你代碼寫得再多,若是不懂得背後的技術原理,不懂得科學的學習方法,不進行概括總結輸出,是永遠達到質變的。因此必須學習和打牢基礎理論知識,若是老是隻學習一些浮於表面上的東西,當技術形式發生一些變化後,你會發現以前學習的知識已經用不到了,又得從新學習,而在技術世界裏變化又是很是快的,因此不少都迷失在不停的學習技術形式之中,這也是形成一部分人感到焦慮的緣由之一。網絡

上層的技術實現都是有背後的理論基礎做爲支撐的,由於這些理論基礎都是抽象和概括,好比無論是 Java 仍是其它的一些開發語言,只要只用 TCP/IP 協議,用的都是同樣的原理,不一樣的只是技術實現形式上的差別,你只要打牢基礎理論知識,抓住本質原理,無論它技術實現形式上如何變化,都能很快掌握它。數據結構

計算機基礎理論分類

這些知識絕大部分都是一個科班學生本科的專業課講到的原理知識,可是大部分人在學校可能都沒有靜下心來認真學習鑽研,有句話說得好:「出來混,早晚要還的~」,一個好的學習方法就是必定要看一些經典的書和世界頂級學校的課程,最後本身概括總結輸出。這些知識總的來講能夠分爲如下幾類,多線程

  1. 系統知識類:計算機系統、網絡協議、數據庫等
  2. 算法和數據結構類:算法和數據結構、分佈式系統等
  3. 中間件類:消息隊列、任務調度、網關代理等
  4. 程序語言類:類庫實現、設計模式、編程技術(多線程、異步等)、語言原理等

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

相關文章
相關標籤/搜索