基础知识真的是九阳神功吗?
有不少讀者咨詢過基礎知識相關的問題。
有問怎么能夠學好基礎知識,有問基礎知識到底有什么用,也有直接過來噴我,說工作只有CRUD,基礎知識就是忽悠。
當然,也有一種論調說,基礎知識就像是編程中的九陽神功,掌握好了,就可以內力大增,成為絕頂高手。
其實基礎知識既沒有那么不堪,也沒有那么神乎奇跡。這篇文章,就聊聊,我對基礎知識的一些理解。
首先,基礎知識的學習,確實不能帶來短期的收益。應該說,對于大部分的工作,都是如此的。
以后臺開發為例,花了很長時間去補操作系統,數據庫,網絡這些知識,但發現每天的工作還是CRUD,大部分都用不上。
要想通過學習基礎知識來取得短期內的快速提升,并升職加薪,這個想法基本就可以摒棄了。
基礎知識對程序員最大的價值是軟件思維能力的培養和軟件架構意識的潛移默化。
雖然學習這些內容,既枯燥又費時間,但長期來看,確實會從根本上提升一個程序員的軟件思維能力,你也可以認為,它能夠最終提升你技術生涯的天花板。
其次,基礎知識對于技術的提升,不是在后期才發揮作用的,而是在整個的技術成長周期中,都發揮著作用。
很明顯的區別就是,兩個人在同時學習一套新的RPC框架。基礎知識扎實,對網絡協議,操作系統網絡部分處理機制,有較深入了解的同學,可以學得比對這些部分完全沒了解,或了解很少的同學快很多,也透很多。?
就像有些人,老是覺得某些框架學了就忘,很多時候,是因為沒有吃透框架本身的設計原理,掌握最核心的東西。?
一般框架的設計,都是圍繞性能,復用性,可擴展性進行的。?
要做到高性能,必然需要對底層依賴系統有深入理解,反過來說,如果你對底層依賴系統理解深入,你對框架性能這塊的設計和考究,就能很快掌握了。(底層依賴系統:操作系統,JAVA 虛擬機等)
復用性,可擴展性,基本跟軟件設計,設計模式,最佳編程規范相關。如果這些你也掌握了,那自然能夠很快理解這其中的設計。
有這些基礎知識的支撐,學習這些新框架的時候,你會快很多,而且因為你能理解為什么要這么設計,所以也不容易忘記,甚至你忘記的時候,都可以通過自己的經驗推導出來。?
所以,基礎知識對個人技術能力的提升,是有很關鍵作用的,能讓你學習得更快,更容易,更深入,而且伴隨你整個技術生涯。
再次,基礎知識的學習,求精不求多。有不少同學容易陷入一種誤區。覺得基礎知識很重要,然后就一直在學,好像隨時抱著一本大部頭的《算法導論》,自己的編程能力就會有提升一樣,其實并不是如此的。
對大多數人來說,學習基礎知識比學習一種新的語言,一個新的框架更難,更枯燥。
而蜻蜓點水式的學習,對基礎知識的掌握基本沒用,除了獲得一點心里安慰之外,基本沒有價值。
其實一本《算法導論》那么厚,大部分人都沒有看完的,你能夠吃透其中的三分之一,我覺得就可以贏過大多數人了。操作系統,網絡協議,也是一樣。
吃透才有真正的價值,那怕只是書中的一頁。而蜻蜓點水式的學完,你會發現,合上書,基本就忘光了。
如果你真的想掌握好基礎知識,我覺得可以做一個長期且極有耐心的規劃。比如一年為期,只看一本基礎知識的書籍,并且每個月,就其中的一兩個點,深入吃透。
這種看似很慢的做法,其實特別扎實,一段時間后,你會慢慢感知到一種來自底層思維的變化。到那時候,你肯定可以獲得一種巨大的滿足感,你會有一種突然清晰的感覺,好像一層朦霧被撥開了。
最后,基礎知識當然不能夠包治百病,但如果你確實有耐心去學習,你有可能在堅持兩三年后,改變自己的技術命運,說在你已有的水平上,再提升一到兩個檔次都不為過。升職加薪便是自然而然的事情。
當然,這種事情是很難的,單兩三年這個時間,估計不少人看了就退縮了。不過這也合理,做成困難的事情的人總是少的,但也是這批人,最后可以走得更快,更好!
總結
以上是生活随笔為你收集整理的基础知识真的是九阳神功吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果你陷入职业迷茫,就看看这些建议!
- 下一篇: 错误日志这样排查,干活更得劲了!!