程序員要精or廣?
當(dāng)你學(xué)習(xí)操作系統(tǒng)的時候,會發(fā)現(xiàn)有一個叫緩存的東西,原理很簡單,就是空間換時間。當(dāng)你學(xué)一門語言開始試著做一些小項目,會發(fā)現(xiàn)有些數(shù)據(jù)經(jīng)常被讀、但很少修改,感覺沒必要每次都讀數(shù)據(jù)庫,于是你在項目里臨時用map存起來,寫操作的時候才去操作數(shù)據(jù)庫,這就是緩存。當(dāng)你開始實習(xí)了,發(fā)現(xiàn)大家現(xiàn)在都搞分布式微服務(wù),自己在內(nèi)存里用map會導(dǎo)致數(shù)據(jù)不一致,然后在別人的代碼里發(fā)現(xiàn)了一個叫做redis的東西,想起面經(jīng)里好像背過,看了看簡介,原來是一個很快的內(nèi)存數(shù)據(jù)庫,可以解決分布式緩存的問題。
這是很多程序員從學(xué)校到職場的經(jīng)歷,這說明了絕大多數(shù)知識都是相通的,是可以舉一反三的。
所有的基礎(chǔ)課程,都是歷代大佬的經(jīng)驗總結(jié)大浪淘沙后留下來的,在所有上層應(yīng)用中無處不在。比如語言,語言差異再大,落在最底層無非也就是操作系統(tǒng)的磁盤讀寫、內(nèi)存分配、cpu分配、垃圾回收這些東西,實現(xiàn)千差萬別,思想大同小異。?正因為如此,所以操作系統(tǒng)數(shù)據(jù)結(jié)構(gòu)才最重要。搞清楚操作系統(tǒng),你就知道原來語言是殊途同歸的。搞清楚數(shù)據(jù)結(jié)構(gòu),你就知道為什么所有語言都會有數(shù)組、鏈表、哈希,什么時候該怎么用。
搞清楚設(shè)計模式,你去看絕大部分框架原理的時候效率都會成倍增長。
面對一百個不同的需求,用一種工具,不管是否合理是否適配,都能夠?qū)崿F(xiàn)它們,這就是我們所說的精。能夠快速的從一百種工具中選擇合適的工具并上手,實現(xiàn)對應(yīng)的需求,這叫解決問題的能力。要明白應(yīng)用是理論的擴(kuò)展,工具是知識的延伸。程序員最終是要精于基礎(chǔ),廣于工具。
END
掃碼關(guān)注華妹查看更多精彩內(nèi)容