1、為什么要學(xué)習(xí)算法?

算法和數(shù)據(jù)結(jié)構(gòu),作為計算機出身的程序員在大學(xué)中一般都會學(xué)到,但是我們都是學(xué)習(xí)這些算法的理論,畢業(yè)之后基本都還給老師了。我們畢業(yè)后工作可能大部分人都不會在使用一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或者算法去實現(xiàn)結(jié)構(gòu),一般都是網(wǎng)上找現(xiàn)成的框架、API,然后copy到項目中,完成項目的需求就不再管了,也就成了代碼搬運工,有時候可能覺得算法和數(shù)據(jù)結(jié)構(gòu)離我們很遠。真的是這樣的么?

其實我們學(xué)習(xí)的算法與數(shù)據(jù)結(jié)構(gòu),是為了解決實際問題的。

我們肯定在項目中會使用很多官方的或者第三方比較優(yōu)秀的API、框架,可能有些框架我們自己也能夠?qū)懗鰜?,但是卻會有很多bug. 為什么人家能夠?qū)懗龊軆?yōu)秀的框架?而且能夠被很多人會采用?其實是寫這么框架的人的內(nèi)功好,作者在寫這么框架的時候考慮到了很多細節(jié)性能方面的問題,解決這些性能方面的問題就需要有很強的內(nèi)功(算法、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、網(wǎng)絡(luò)), 也就是我們在大學(xué)中學(xué)習(xí)的那些知識。當(dāng)然了不是說我們一定要達到人家那種水平,至少我們也要一定的基礎(chǔ),這樣如果我們有閱讀人家源碼的時候,還可以理解作者某段代碼為什么要那么寫? 否則我們可能只是知道作者實現(xiàn)了效果,但是完全不能理解作者的意圖是什么。所以說學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)對我們閱讀優(yōu)秀代碼,甚至是寫出優(yōu)秀的框架來說是必備的條件。
我們在找工作的時候,很多公司都會出幾道算法題,為了應(yīng)付面試,我們會在網(wǎng)上背幾個??嫉乃惴}。但是如果公司算法題稍微改造一下,我們就不知道處理了,造成了很尷尬的局面。很多大公司現(xiàn)在都會在面試的時候考算法。如果我們不好好學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu),可能就會失去了很多去工作的機會。

可能在小公司中,可能業(yè)務(wù)量沒有那么大,開發(fā)中我們也不用關(guān)心性能上的問題。但是如果我們?nèi)ゴ蠊?,比如BAT上班,公司的業(yè)務(wù)量會很大,如果有一點性能問題,可能就會影響很多用戶,給公司造成很大的影響。

如果我們不好好學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu),只是天天搬磚,到了35歲之后肯定要被社會給淘汰。現(xiàn)在技術(shù)發(fā)展那么快,區(qū)塊鏈、人工智能都是算法為基礎(chǔ)的,如果我們不會算法,怎么能學(xué)會這些新技術(shù),怎么能跟上趨勢。前段時間給幾個大學(xué)的師兄聊天,他們已經(jīng)再給孩子搞少兒編程,我們?nèi)绻辉賹W(xué)習(xí),我們的優(yōu)勢會越來越少,到時候我們拿什么去競爭?為了工作,為了不被社會淘汰,也要好好學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)。

作為一個IT工程師,一定要拿下算法與數(shù)據(jù)結(jié)構(gòu)這座大山!?。?/h5>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容