很多程式設計師都會覺得資料結構與演算法在工作之後很少用到,那究竟有沒有必要繼續學呢?
可以非常負責任的告訴你,有必要!非常有必要!
不要說你每天只想著划水摸魚耗時間學不學都無所謂,就算你每天都想划水也要學,因為一次技術更新換代就可能讓你原來學的東西全部顛覆。
那學習資料結構與演算法有什麼作用?
面試大廠
無論是校招還是社招,大廠都喜歡讓人手撕演算法**。
業務開發工程師
雖然整天都是使用crud,但是想要用好,用對類庫,就需要了解它們的設計原理(資料結構),時間、空間複雜度分析等。
我們還會使用到各種框架,中介軟體和底層系統,譬如spring、rpc框架、訊息中介軟體、redis等,裡面有很多基礎的資料結構和演算法的設計思想。
掌握資料結構和演算法,對於閱讀原始碼,理解背後的設計原理都非常有用。
基礎架構開發工程師
比如設計rpc框架,想達到開源水平,必須在演算法優化,資料訪問效率,記憶體節省等方面比別人更勝一籌。
程式設計能力
效能好壞是該能力的乙個非常重要的評判標準,如果連程式的時間、空間複雜度都不會分析,很難寫出效能較優的**。
那麼學了資料結構與演算法有什麼用呢
2023年,homebrew的作者去google面試,但不幸的是他被google拒絕了。homebrew大家應該都聽說過,它是mac平台的安裝包管理工具,全世界大大小小網際網路公司的程式設計師可能都在用這個工具。這足以說明homebrew作者的技術實力了吧?可他還是被拒絕了,當時他發了條twiiter吐槽。
google回應:「我們90%的工程師都在使用你寫的homebrew工具,你卻不能白板程式設計乙個二叉樹的翻轉,所以請滾蛋吧」。
這個應該夠真實了吧,但是資料結構與演算法的作用不止於此,理解了資料結構與演算法可以讓你更好地讀懂每乙個框架原始碼,更有效率地使用框架;並且在開發大型專案時,有能力達到效能的極致優化。
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 ...
資料結構與演算法 01 為什麼要學資料結構與演算法
從今天起,我打算寫乙個系列,關於資料結構與演算法.這篇文章,算是乙個開篇之詞吧.資料結構與演算法,作業系統,計算機組成原理,還有計算機網路,這些內容在實際工作中你用到了多少?是不是除了面試的時候會問到,好像寫 的時候,也沒怎麼用,對吧?況且就算用到,我只要會呼叫 j a api 開發框架用的相當熟練...
為什麼要學資料結構?
文章目錄 四 資料結構型別 在視覺化化程式設計的今天,借助於整合開發環境可以很快地生成程式,程式設計不再是計算機專業人員的專利。很多人認為,只要掌握幾種開發工具就可以成為程式設計高手,其實,這是一種誤解。要想成為乙個專業的開發人員,至少需要以下三個條件 1 能夠熟練地選擇和設計各種資料結構和演算法 ...