學習數據結構有用嗎?

《數據結構》是計算機專業的一門必修課, 可是很多學生學完以後,覺得用處不大, 還不如學個C,Java來的直接一點。

等到工作了以後做業務系統開發,發現根本就用不到那些書中的講的二叉樹、圖、排序算法, 更加覺得這門課是在浪費時間了。

這種想法實際上是錯誤的。


學習數據結構,並不僅僅是學習其中現成的那些隊列,堆棧,二叉樹,圖等經典結構, 也不僅僅是學習其中的那些快速排序、冒泡排序等算法。

更重要的是你要學習一種思想:如何把現實問題轉化爲計算機語言的表示。


計算機其實一種很笨,很機械的機器,只會按照預定的指令一步步執行,  而計算機語言的特點就是精確、無二意, 它的本質語言是二進制的, 即使是C,Java等高級一點的語言也只不過是包裝而已, 它的表達能力並沒有本質的提升, 仍然停留在很低的層次。


而我們用的自然語言則是典型的模糊的,不精確的, 程序員面臨的一個重要問題, 或者是我們的主要工作就是怎麼把自然語言描述的問題轉化爲計算機語言的表示。

到底該怎麼轉化, 《數據結構》已經給出了指引:  設計出數據結構, 在施加以算法就行了,  當然現實問題會更復雜, 需要框架,類庫,模式等支撐。

這是一種非常重要的邏輯思維能力的鍛鍊, 也是程序員入門的條件。


很多半路出家的人, 僅僅上了個培訓班後參加工作, 寫出的代碼實在是慘不忍睹, 很明顯只掌握了工具,邏輯思維的訓練遠遠不足。


就我個人而言, 大學時學《數據結構》以後, 爲了準備高級程序員考試, 把裏邊的習題全部做了一遍, 發現真是受益匪淺, 不但高程的成績非常好, 更重要的是在後來的工作中,遇到數據結構相關的實際問題, 基本上沒有什麼障礙,只要掌握了語言特性,  解決起來非常輕鬆。


總結一下,《數據結構》這門課其實會潛移默化的影響你的邏輯思維, 當然, 你需要多多練習纔有可能使用純熟, 等它變成身體一部分以後, 你就發現其實大部分編程任務都沒什麼難度了,更難的其實是對編程更高的要求:抽象的能力。



掃描二維碼, 關注"coderising"

加入QQ羣:135769418 和更多熱愛編程的朋友交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章