編程基礎知識真的是九陽神功嗎?

編程基礎知識真的是九陽神功嗎?

作者|大飛碼字

來源|大飛碼字(ID:BigFly1024)

有不少讀者諮詢過基礎知識相關的問題。

有問怎麼能夠學好基礎知識,有問基礎知識到底有什麼用,也有直接過來噴我,說工作只有CRUD,基礎知識就是忽悠。

當然,也有一種論調說,基礎知識就像是編程中的九陽神功,掌握好了,就可以內力大增,成為絕頂高手。

其實基礎知識既沒有那麼不堪,也沒有那麼神乎奇蹟。這篇文章,就聊聊,我對基礎知識的一些理解。

首先,基礎知識的學習,確實不能帶來短期的收益。應該說,對於大部分的工作,都是如此的。

以後臺開發為例,花了很長時間去補操作系統,數據庫,網絡這些知識,但發現每天的工作還是CRUD,大部分都用不上。

要想通過學習基礎知識來取得短期內的快速提升,並升職加薪,這個想法基本就可以摒棄了。

基礎知識對程序員最大的價值是軟件思維能力的培養和軟件架構意識的潛移默化。

雖然學習這些內容,既枯燥又費時間,但長期來看,確實會從根本上提升一個程序員的軟件思維能力,你也可以認為,它能夠最終提升你技術生涯的天花板。

编程基础知识真的是九阳神功吗?

其次,基礎知識對於技術的提升,不是在後期才發揮作用的,而是在整個的技術成長週期中,都發揮著作用。

很明顯的區別就是,兩個人在同時學習一套新的RPC框架。基礎知識紮實,對網絡協議,操作系統網絡部分處理機制,有較深入瞭解的同學,可以學得比對這些部分完全沒了解,或瞭解很少的同學快很多,也透很多。

就像有些人,老是覺得某些框架學了就忘,很多時候,是因為沒有吃透框架本身的設計原理,掌握最核心的東西。

一般框架的設計,都是圍繞性能,複用性,可擴展性進行的。

要做到高性能,必然需要對底層依賴系統有深入理解,反過來說,如果你對底層依賴系統理解深入,你對框架性能這塊的設計和考究,就能很快掌握了。(底層依賴系統:操作系統,JAVA 虛擬機等)

複用性,可擴展性,基本跟軟件設計,設計模式,最佳編程規範相關。如果這些你也掌握了,那自然能夠很快理解這其中的設計。

有這些基礎知識的支撐,學習這些新框架的時候,你會快很多,而且因為你能理解為什麼要這麼設計,所以也不容易忘記,甚至你忘記的時候,都可以通過自己的經驗推導出來。

所以,基礎知識對個人技術能力的提升,是有很關鍵作用的,能讓你學習得更快,更容易,更深入,而且伴隨你整個技術生涯。

编程基础知识真的是九阳神功吗?

再次,基礎知識的學習,求精不求多。有不少同學容易陷入一種誤區。覺得基礎知識很重要,然後就一直在學,好像隨時抱著一本大部頭的《算法導論》,自己的編程能力就會有提升一樣,其實並不是如此的。

對大多數人來說,學習基礎知識比學習一種新的語言,一個新的框架更難,更枯燥。

而蜻蜓點水式的學習,對基礎知識的掌握基本沒用,除了獲得一點心裡安慰之外,基本沒有價值。

其實一本《算法導論》那麼厚,大部分人都沒有看完的,你能夠吃透其中的三分之一,我覺得就可以贏過大多數人了。操作系統,網絡協議,也是一樣。

吃透才有真正的價值,那怕只是書中的一頁。而蜻蜓點水式的學完,你會發現,合上書,基本就忘光了。

如果你真的想掌握好基礎知識,我覺得可以做一個長期且極有耐心的規劃。比如一年為期,只看一本基礎知識的書籍,並且每個月,就其中的一兩個點,深入吃透。

這種看似很慢的做法,其實特別紮實,一段時間後,你會慢慢感知到一種來自底層思維的變化。到那時候,你肯定可以獲得一種巨大的滿足感,你會有一種突然清晰的感覺,好像一層朦霧被撥開了。

最後,基礎知識當然不能夠包治百病,但如果你確實有耐心去學習,你有可能在堅持兩三年後,改變自己的技術命運,說在你已有的水平上,再提升一到兩個檔次都不為過。升職加薪便是自然而然的事情。

當然,這種事情是很難的,單兩三年這個時間,估計不少人看了就退縮了。不過這也合理,做成困難的事情的人總是少的,但也是這批人,最後可以走得更快,更好!

作者:大飛。十年互聯網人,資深架構師,技術 leader。

编程基础知识真的是九阳神功吗?

☞程序員為什麼應該旗幟鮮明地反對“最佳實踐”?

☞京東:網傳通過 Bug 搶茅臺是假消息;羅永浩回應帶貨價格非「全網最低」;Rust 文檔團隊解散 | 極客頭條

☞紅外光抗疫、成功預測新基建,投資 280 家企業的光學博士到底是誰?

☞前端機器學習:識別人臉,並在臉頰上畫草莓

☞瑞幸咖啡自曝虛假交易 22 億,App 反衝 TOP 1

☞在Kubernetes上部署一個簡單的、類PaaS的平臺,原來這麼容易!

☞曠視提雙邊分支網絡BBN:攻堅長尾分佈的現實世界任務 | CVPR 2020 Oral

☞2020年,這20個大家都認識的加密交易所過得怎麼樣?


分享到:


相關文章: