有很多讀者諮詢過基礎知識相關的問題。程序員
有問怎麼可以學好基礎知識,有問基礎知識到底有什麼用,也有直接過來噴我,說工做只有CRUD,基礎知識就是忽悠。面試
固然,也有一種論調說,基礎知識就像是編程中的「九陽神功」,掌握好了,就能夠內力大增,成爲絕頂高手,年薪100萬+。算法
其實基礎知識既沒有那麼不堪,也沒有那麼神乎奇蹟。編程
這篇文章,就聊聊,我對基礎知識的一些理解。設計模式
基礎知識的學習,確實不能帶來短時間的收益。應該說,對於大部分的工做,都是如此的。網絡
以Android開發爲例,花了很長時間去補網絡、數據結構、算法、Java基礎、Android內核、源碼原理這些知識,但發現天天的工做仍是CRUD,大部分都用不上。數據結構
要想經過學習基礎知識來取得短時間內的快速提高,並升職加薪,這個想法基本就能夠摒棄了。架構
基礎知識對程序員最大的價值是軟件思惟能力的培養和軟件架構意識的潛移默化。框架
雖然學習這些內容,既枯燥又費時間,但長期來看,確實會從根本上提高一個程序員的軟件思惟能力,你也能夠認爲,它可以最終提高你技術生涯的天花板。性能
他們看似枯燥和基礎,甚至是過期了,可是每每具備最長久的生命力。
其次,基礎知識對於技術的提高,不是在後期才發揮做用的,而是在整個的技術成長週期中,都發揮着做用。
很明顯的區別就是,兩我的在同時學習一套新的框架。基礎知識紮實,對網絡協議,底層原理有較深刻了解的同窗,能夠學得比對這些部分徹底沒了解,或瞭解不多的同窗快不少,也透不少。
就像有些人,總是以爲某些框架學了就忘,不少時候,是由於沒有吃透框架自己的設計原理,掌握最核心的東西。
通常框架的設計,都是圍繞性能,複用性,可擴展性進行的。
要作到高性能,必然須要對底層源碼有深刻理解,反過來講,若是你對底層源碼理解深刻,你對框架性能這塊的設計和考究,就能很快掌握了。
複用性,可擴展性,基本跟軟件設計,設計模式,最佳編程規範相關。若是這些你也掌握了,那天然可以很快理解這其中的設計。
有這些基礎知識的支撐,學習這些新框架的時候,你會快不少,並且由於你能理解爲何要這麼設計,因此也不容易忘記,甚至你忘記的時候,均可以經過本身的經驗推導出來。
因此,基礎知識對我的技術能力的提高,是有很關鍵做用的,能讓你學習得更快,更容易,更深刻,並且伴隨你整個技術生涯。
再次,基礎知識的學習,求精不求多。有很多同窗容易陷入一種誤區。以爲基礎知識很重要,而後就一直在學,好像隨時抱着一本大部頭的《算法導論》,本身的編程能力就會有提高同樣,其實並非如此的。
對大多數人來講,學習基礎知識比學習一種新的語言,一個新的框架更難,更枯燥。
而走馬觀花式的學習,對基礎知識的掌握基本沒用,除了得到一點內心安慰以外,基本沒有價值。
其實一本《算法導論》那麼厚,大部分人都沒有看完的,你可以吃透其中的三分之一,我以爲就能夠贏過大多數人了。數據結構、網絡協議,也是同樣。
吃透纔有真正的價值,那怕只是書中的一頁。而走馬觀花式的學完,你會發現,合上書,基本就忘光了。
若是你真的想掌握好基礎知識,我以爲能夠作一個長期且極有耐心的規劃。好比一年爲期,只看一本基礎知識的書籍,而且每月,就其中的一兩個點,深刻吃透。
這種看似很慢的作法,其實特別紮實,一段時間後,你會慢慢感知到一種來自底層思惟的變化。到那時候,你確定能夠得到一種巨大的知足感,你會有一種忽然清晰的感受,好像一層朦霧被撥開了。
最後,基礎知識固然不可以包治百病,但若是你確實有耐心去學習,你有可能在堅持兩三年後,改變本身的技術命運,說在你已有的水平上,再提高一到兩個檔次都不爲過。升職加薪即是天然而然的事情。
固然,這種事情是很難的,單兩三年這個時間,估計很多人看了就退縮了。不過這也合理,作成困難的事情的人老是少的,但也是這批人,最後能夠走得更快,更好!
最後,在這我也分享一份大佬本身收錄整理的 Android學習PDF+架構視頻+面試文檔+源碼筆記 ,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料這些都是我閒暇還會反覆翻閱的精品資料。在腦圖中,每一個知識專題都配有詳細的知識點,還有相對應的實戰項目,能夠有效的幫助你們掌握知識、理解原理。固然你也能夠拿去查漏補缺,提高自身的競爭力。
總之也是在這裏幫助你們學習提高進階,也節省你們在網上搜索資料的時間來學習,也能夠分享給身邊好友一塊兒學習
若是你有須要的話,能夠加Vx:15388039515(備註思否,須要進階資料)
喜歡本文的話,不妨給我點個小贊、評論區留言或者轉發支持一下唄~