首先,我們要明確如果只是單純做前端,沒有必要學數據結構和算法。前端的核心是DOM。算法和數據結構是為了解決效率問題的,而提升前端的效率用到的概念往往僅僅是常識級別的。甚至一些流行的中小型庫中都看不到任何數據結構。可以認為前端是程序員里的一個特例,一般程序員面對的是計算機,前端開發人員面對的僅僅是瀏覽器。如果只是關注前端,學習數據結構和算法的收益還不如去讀jQuery源碼。
既然前端用不上,題主還是問到了這個問題,那就說明題主關注的不僅僅是如何成為一個熟練的前端,而是成為一個優秀的軟件工程師。網站開發之所以流行,一部分是因為開發成本低。這些節省下來的成本,一部分就是開發人員的薪水。換句話說,前端開發簡單,門檻低,所以收入低,可替代性強。跳出前端這個領域,把自己放到軟件工程師的隊伍里,再看這個問題,那么就很有必要好好學學數據機構和算法了。
那怎么學好數據結構和算法呢?
一、搞清楚典型的數據結構有哪幾種,比如線性表、棧、隊列、串、樹、圖,知道典型的查找和排序算法;注意,對于這些你只需要知道不必太深入,腦海中有個印象,知道大概怎么回事,回頭用到的時候能知道在哪里查就可以。
二、詳細研究棧、哈希表(字典)。棧這個東西在計算機中處處能見到,理解了棧對于理解計算機本身很有好處,記得嘗試用棧的觀點來看計算機。字典就不說了,我想絕大多數的人都查過字典,應該知道字典有什么用,想象一下沒有字典的話,從成千上萬個字中找到你想要的時有多痛苦。
三、完全弄明白時間復雜度、空間復雜度是怎么回事。理解這一點可以讓你自己在寫代碼時不至于寫出有明顯效率問題的代碼,默默的提高你的代碼質量
四、上手實際項目,積累項目經驗,看看項目哪里用到了你所知道的數據結構和算法,搞清楚為什么用,能不能用另一種數據結構或算法讓它變得更好。當然,湖南優就業的IT培訓老師告訴我們,只有不斷的練習,才能真正學到東西!
五、多翻數據結構和算法的經典書籍,看看那些你曾經粗讀過的內容,我想你會看得很愉快的。