從今天起,我打算寫乙個系列,關於資料結構與演算法.這篇文章,算是乙個開篇之詞吧.
資料結構與演算法,作業系統,計算機組成原理,還有計算機網路,這些內容在實際工作中你用到了多少?是不是除了面試的時候會問到,好像寫**的時候,也沒怎麼用,對吧?況且就算用到,我只要會呼叫 j**a api ,開發框架用的相當熟練,**照樣 6 的飛起,那我為什麼還要學習資料結構與演算法呢?
search for meaning ,為自己當下做的事情,尋找乙個意義.
你真的想在工作中一直 crud 嘛?
對於一名業務開發工程師來說,可能每天要做的事情就是對資料庫進行 crud(增刪改查) 操作,更多的是利用已經封裝好的介面,類庫來把業務實現,很少需要自己去手寫實現資料結構和演算法.
但是一年一年的這樣 crud 過去,你敢說自己擁有 10 年的工作經驗,而不是 1 年的工作經驗重複了 10 年?
好吧,就算你敢說,每天在工作中,一直 crud ,也沒有想過去優化自己的**,沒有想過提高效能,你真的願意一直這麼下去嗎?
打造獨屬於你的能力.
有人說,對於程式設計師這個行業來說,就是吃青春飯的,只要超過了 35 歲,再繼續走下去就很難了.為什麼?因為你拼體力拼不過比你更年輕的,你拼學習也拼不過那些年輕的.
這些是事實,但是隨著年齡的增長,你也有自己獨特的優勢,那就是經驗.
同樣乙個業務的**實現,年輕人需要用上千行甚至是上萬行**去實現,而你只用了幾百行的**時(誇張一下);當年輕人寫出來的**,效能一般, bug 不少,擴充套件性也不強的時候,而你寫的**卻沒有這些問題,甚至可以到 github 上讓很多人來使用,我覺得這樣的你,被公司辭退的可能性很小.
演算法可以幫你打造這份,獨屬於你的能力.
人和人之間的差距在哪兒?
人和人之間的差距到底有多大?我覺得就是乙個大腦的距離.乙個人的大腦思考能力,從某種程度上來說,直接決定了這個人能夠走多遠,能夠取得多大的成就.
值得開心的是:大腦的思考能力是可以被訓練出來的.而演算法是為數不多,也是最為有效的方法之一.
如果想要紮實自己的計算機內功,向架構師方面走;想要提公升看問題的深度,讓自己站在乙個更高的層面上;想要提高大腦的思考力,遇到問題能夠抓住本質,繞不開資料結構與演算法.
以前也斷斷續續的學習過資料結構和演算法,但是都不夠系統.這次打算花上幾個月的時間,把演算法慢慢磨透.
我沒有多厲害,只是出於對技術的追求,想要不斷精進自己的技能,所以在學習過程中,難免會出現錯誤,如果您發現,可及時和我反饋.
python為什麼要學資料結構與演算法
如果 a b c 1000,且 a 2 b 2 c 2 a,b,c 為自然數 如何求出所有a b c可能的組合?import time start time time.time 注意是三重迴圈 for a in range 0,1001 for b in range 0,1001 for c in ...
為什麼要學資料結構?
文章目錄 四 資料結構型別 在視覺化化程式設計的今天,借助於整合開發環境可以很快地生成程式,程式設計不再是計算機專業人員的專利。很多人認為,只要掌握幾種開發工具就可以成為程式設計高手,其實,這是一種誤解。要想成為乙個專業的開發人員,至少需要以下三個條件 1 能夠熟練地選擇和設計各種資料結構和演算法 ...
為什麼要學習資料結構和演算法?
資料結構,就是一組資料的儲存結構。演算法,就是運算元據的一組方法。資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。應用層面的原因 在電腦科學和網際網路迅猛發展下,需要計算的資料量越來越龐大。但是計算機的計算能力是有限的,這麼大量的資料計算,需要越來越多的計算機,需要越來越長的計算時間,注...