首頁 > 科技

程式設計師學演算法有用嗎?

2021-06-18 12:11:12

很多人看到一些大佬說,演算法以後再學可能你工作五年都用不上。還有人說現在資料儲存技術和計算機運算速度非常快,將來演算法還重要嗎?其實演算法可以解決很多問題,並不是人工智慧、資料搜尋和資料探勘才用得上演算法。

很多大廠面試,不管是二面還是筆試,經常會問到演算法。面試官可以通過演算法看出一個程式設計師的程式設計思維,考察對複雜問題的設計和分析能力。

為什麼工作中很少用到演算法

現在很多程式90%以上都被項目和UI實現業務邏輯給佔據了。但是任何軟體其實都是演算法和資料結構組成的。我們說百度,每天網站要處理十億個搜尋資料,如果沒有好的演算法,根本都實現不了。

演算法比起其他程式語言的學習,對理解能力要求更高,學習起來也相對困難一些。在學習演算法的過程中,剛剛入門的學習者總會遇到各種各樣的困難。尤其是大量初學者沒有正確的學習方法與完整的知識體系圖譜,實際程式設計中遇到問題無人指導。

需要進行系統化學習充分建立演算法學習思維,紮實編碼能力。從基礎來講要學習演算法,至少要非常熟練地掌握一種排序演算法,各種線性表的插入、刪除演算法,樹的遍歷和插入、刪除演算法,圖的遍歷演算法等。

在小公司不用處理大規模資料

其實我們可以以這樣的心態面對工作,資料結構和演算法如果我們一直不學就一直用不到。之前我們需要花費很多經歷來設計架構,但是有了資料結構和演算法知識體系,很容易就可以理解了。

如果我們不明白類庫背後的原理,不懂得時間和空間的複雜度分析,談用好也不是很容易。

作為業務相關的程式設計師,我們會用到各種框架和中介軟體、底層系統等。比如Spring、RPC框架、訊息中介軟體、Redis等等。在這些基礎框架中,很多基礎資料結構和演算法的設計思想。

如何實時統計業務介面99%的響應時間?

可能我們最先想到的就是每次查詢從小到大排序。如果有1200個數據,那麼1188個數據就是99%的響應時間。

但是,如果你知道「堆」這個資料結構,用兩個堆可以非常高效地解決這個問題。基礎架構研發工程師,寫出現在網際網路上的技術文章、架構分享、開源項目滿天飛,照貓畫虎做一套基礎框架並不難。

本文只是希望大家重視資料結構和演算法,很多我們覺得很難不知道如何學習的內容,可以提升我們的競爭力。


IT145.com E-mail:sddin#qq.com