算法和數(shù)據(jù)結(jié)構(gòu)浊吏,作為計(jì)算機(jī)出身的程序員在大學(xué)中一般都會(huì)學(xué)到,但是我們都是學(xué)習(xí)這些算法的理論救氯,畢業(yè)之后基本都還給老師了找田。我們畢業(yè)后工作可能大部分人都不會(huì)在使用一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或者算法去實(shí)現(xiàn)結(jié)構(gòu),一般都是網(wǎng)上找現(xiàn)成的框架着憨、API,然后copy到項(xiàng)目中墩衙,完成項(xiàng)目的需求就不再管了,也就成了代碼搬運(yùn)工甲抖,有時(shí)候可能覺得算法和數(shù)據(jù)結(jié)構(gòu)離我們很遠(yuǎn)漆改。真的是這樣的么?
其實(shí)我們學(xué)習(xí)的算法與數(shù)據(jù)結(jié)構(gòu)准谚,是為了解決實(shí)際問題的挫剑。
我們肯定在項(xiàng)目中會(huì)使用很多官方的或者第三方比較優(yōu)秀的API、框架氛魁,可能有些框架我們自己也能夠?qū)懗鰜砟核常菂s會(huì)有很多bug. 為什么人家能夠?qū)懗龊軆?yōu)秀的框架?而且能夠被很多人會(huì)采用秀存?其實(shí)是寫這么框架的人的內(nèi)功好,作者在寫這么框架的時(shí)候考慮到了很多細(xì)節(jié)性能方面的問題羽氮,解決這些性能方面的問題就需要有很強(qiáng)的內(nèi)功(算法或链、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)档押、網(wǎng)絡(luò))澳盐, 也就是我們?cè)诖髮W(xué)中學(xué)習(xí)的那些知識(shí)。當(dāng)然了不是說我們一定要達(dá)到人家那種水平令宿,至少我們也要一定的基礎(chǔ)叼耙,這樣如果我們有閱讀人家源碼的時(shí)候,還可以理解作者某段代碼為什么要那么寫粒没? 否則我們可能只是知道作者實(shí)現(xiàn)了效果筛婉,但是完全不能理解作者的意圖是什么。所以說學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)對(duì)我們閱讀優(yōu)秀代碼癞松,甚至是寫出優(yōu)秀的框架來說是必備的條件爽撒。
我們?cè)谡夜ぷ鞯臅r(shí)候,很多公司都會(huì)出幾道算法題响蓉,為了應(yīng)付面試硕勿,我們會(huì)在網(wǎng)上背幾個(gè)骋种樱考的算法題舟误。但是如果公司算法題稍微改造一下,我們就不知道處理了舱污,造成了很尷尬的局面。很多大公司現(xiàn)在都會(huì)在面試的時(shí)候考算法粱栖。如果我們不好好學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)话浇,可能就會(huì)失去了很多去工作的機(jī)會(huì)。
可能在小公司中查排,可能業(yè)務(wù)量沒有那么大凳枝,開發(fā)中我們也不用關(guān)心性能上的問題。但是如果我們?nèi)ゴ蠊景虾耍热鏐AT上班岖瑰,公司的業(yè)務(wù)量會(huì)很大,如果有一點(diǎn)性能問題砂代,可能就會(huì)影響很多用戶蹋订,給公司造成很大的影響。
如果我們不好好學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)刻伊,只是天天搬磚露戒,到了35歲之后肯定要被社會(huì)給淘汰。現(xiàn)在技術(shù)發(fā)展那么快捶箱,區(qū)塊鏈智什、人工智能都是算法為基礎(chǔ)的,如果我們不會(huì)算法丁屎,怎么能學(xué)會(huì)這些新技術(shù)荠锭,怎么能跟上趨勢(shì)。前段時(shí)間給幾個(gè)大學(xué)的師兄聊天晨川,他們已經(jīng)再給孩子搞少兒編程证九,我們?nèi)绻辉賹W(xué)習(xí),我們的優(yōu)勢(shì)會(huì)越來越少共虑,到時(shí)候我們拿什么去競(jìng)爭(zhēng)愧怜?為了工作,為了不被社會(huì)淘汰妈拌,也要好好學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)拥坛。