More  

小編的世界 優質文選 網路

計算機專業,想去大廠,《數據結構》課程該如何學習?


2021年7月16日 - 網路小編 IT檔案局 
   

IT檔案局

架構師,科技領域愛好者

如你是計算機科學與技術、網絡工程、軟件工程、信息安全、嵌入式開發等計算機專業,《數據結構》是必修課。

很多人會覺得這門課程很難,而且覺得沒什麼用,包括畢業多年的同學,因為在工作中使用得少,也會覺得沒什麼用。

其實這種理解是錯誤的。

這門課程的確很難,難在要用代碼把算法實現出來並在計算機上運行出來。

但是也正因為它難,所以很重要,難的東西才稀缺,因為稀缺才變得更可貴。

所以現在大部分互聯網大廠不管你是什麼職位,只要和編程相關,筆試面試都會考算法和數據結構,比如說百度公司,算法是必考的,算法不過基本上不可能拿到Offer。

為什麼數據結構很有用?

舉個例子,比如蓋房子,我們都知道蓋一棟房子沒那麼簡單,不止要砌磚,刷牆等這些表面的東西。鋼筋水泥如何鋪設,格局如何設計,如何用料,用多少?這些都很重要,房屋建築基礎不好,質量肯定不過關,所以才會有工程造價這個專業。

寫代碼開發軟件,就像蓋一棟房子,你需要知道數據如何存放,如何查找,計算機才能更高效地執行你的程序,如果代碼寫得不好,數據組織的不好,開發出來的軟件會啟動很慢或者運行很消耗內存,導致計算機很卡,嚴重會導致軟件崩潰,計算機死機等等。

比如蓋一棟房子,用料不好,基礎設計不好,偷工減料,質量不過關,輕微的一個地震就可以把房子震塌下來,這是一場災難。

假如你在開發一款銀行的APP,如果設計的算法不好,用戶查詢一筆賬單的時候因為數據量巨大,導致查詢緩慢,半天沒有反應,這樣的APP用戶體驗會好嗎?

又比如,你在開發一款火箭發射的控制系統,如果你的代碼寫得不好,運行後導致軟件崩潰,計算機死機,那將會是一場災難。

如何學好數據結構?

說了這麼多重要性,那麼我們該如何把這門課程學好呢?

一、首先預習很重要

我們從小學到高中都知道學習一門新知識,需要提前預習,為什麼到大學就忘記了呢?

預習是提前了解陌生的知識,讓你在上課時不會覺得這個知識那麼陌生,也比較容易聽懂老師講的東西,不容易走神。

預習第一次看,看不懂,那再正常不過了,大家都是普通人,也不是什麼天才、神童。

正因為你看不懂,所以才要預習。你能看懂,那還預習啥,不上課都可以了。看不懂,當你帶著問題去聽老師講課後,印象更加深刻,還可以在課堂上及時提問。

二、認真聽課很重要

如果你看不懂,那就認真聽老師講課,不懂得及時問老師,搞清楚原理,才能把代碼寫出來。

當然有些老師可能自己懂,但是很難把這些東西講出來讓你也聽懂,如果存在這種情況的同學,我建議去網上找名校名師的課程去學習,網絡上有很多名校都有公開的數據結構課程視頻,如清華大學,浙江大學等。

三、複習很重要

數據結構這麼門課,你光聽課,是不夠的,如果課後不複習是很容易忘記的,因為它知識點非常多,技巧性也很強,需要很強的理解能力去理解和記憶。

可能上課時聽懂了,但是到下課時就已經忘記了,所以建議計算機專業的學生要定期複習這些算法。

四、上機實踐最重要

前面幾個步驟都可以沒有,但是這個步驟沒有,小館敢肯定你學不會數據結構。

不管是在書上,還是在課堂上,數據結構上的算法實現都是偽代碼,並沒有完整地實現代碼,這些偽代碼只是讓你理解算法原理的並不能直接應用於實際開發中,還需要你去完善它。

所以,當你學會一門編程語言後,必須把數據結構課程上的每一個偽代碼用編程語言在計算機上實現並運行一遍。

當然,第一次寫代碼很困難,因為你不知道該如何下手,萬事開頭難,只要你開始了,就成功了一半。

第一次寫不出來沒關系,可以先看別人的代碼,網上非常多優秀的代碼,你可以先在編輯器上手打著抄一遍,記住一定是自己手打
,不能複制粘貼,複制粘貼是沒有意義的,因為只有自己一個一個字符打出來,你才能感受到寫代碼的樂趣,才能發現問題

小館敢肯定,你第一次抄代碼,肯定會有語法錯誤,導致編譯器運行不通過,這個時候就是鍛煉你的調試能力了。

一般的編輯器都會提示你哪一行有語法錯誤,這個時候就知道去哪一行尋找並對照正確的程序改一遍。

如果你是直接複制粘貼,一般是不會有語法錯誤,這樣也就鍛煉不了你敲代碼和調試代碼的能力。

當你抄完幾次代碼之後,就可以開始模仿著寫代碼了,比如換一種解法看看能不能實現,如數學,通常一道題目都有多種解答方法,算法也一樣,每種解法都有優劣。

然後你就可以開始嘗試的,不看答案,自己一個個代碼寫出來,如何不行那就繼續看著寫,直到你可以不看答案寫出來為止

最後,當你可以不看代碼實現出來之後,就可以把書上的題目都實現一遍,然後繼續研究其他解法,並比較他們之間算法的時間複雜度和空間複雜度。

五、把數據結構與算法應用到實踐應用中

最後一步,就是把你所學,應用到實際項目中,比如參加一些比賽,或者是組織幾個同學一起開發一個軟件、網站、遊戲,在開發過程中肯定會遇到數據的組織、存儲讀取、查找、排序等等這些問題,這個時候你就可以判斷需要使用數據結構中的哪一種算法去解決。

這個過程就是一種鞏固,進階,提升的過程。

相信,經過以上步驟,你的數據結構一定能夠學好,再也不用擔心以後畢業找工作的問題了,面試進大廠So easy。

在這裏小館推薦《大話數據結構》這本書,比大部分學校本科教材都通俗易懂。

歡迎關注我,學習更多計算機知識。


  大家在看