大一剛學數據結構怎么讓自己的編程水平有質的飛躍?
數據結構是一門很有意思的課程,也是非常重要和實用的課程,最重要的是數據結構課程是算法課程的基礎。
我上學的時候就很喜歡學習數據結構,為我后面學習算法打下了良好的基礎。經過多年的工作,我特別慶幸自己當年認真學習數據結構和算法課程。
有意思嗎?數據結構都是有形狀的。從鏈表到樹,都是可以在紙上畫出來的。而且我覺得自己動手在紙上畫出來非常有助于理解和建立形象思維。
形象思維很重要嗎在工作中,大家經常會做頭腦風暴(brain storming),然后大家都會在白板上畫圖,把自己的設計想法用圖像表達出來,不僅有助于思考,還有助于表達和溝通。優秀的架構師,設計師都是在白紙或者白板上把自己的設計手繪出來的。所以通過學習數據結構這門課程,多練習手繪數據結構的構建過程,慢慢就會提高你的設計和分析能力。
我在頭條里分享了很多動畫,來演示分布式系統原來,可以幫助理解抽象的理論。所有的動畫,我都是在紙上設計好了以后才開始在電腦上編程繪制。
如何學習手動繪制。在紙上多畫多練。把這些數據結構的靜態和動態的圖像都印在自己的大腦。
編程實踐。在紙上畫熟練了,理解的差不多了。就可以開始編程實踐了。大一一般編程語言也剛開始學習,我們當時是用C語言學習的數據結構,我覺得很好。現在很多大學用python學習,python相對于C來說是更加高級的語言(抽象級別更高),編程更加簡單。但是C是基礎,建議要好好學。學好數據結構的同時,打好編程基礎。
結合算法學習。我昨天剛回答了一個關于算法學習的問題。《作為計算機專業的學生,算法很差,該怎么提升?》等你的數據結構有點感覺了就可以進階算法了。
我后面計劃結合數據結構和算法出一些動畫視頻,幫助想學習的同學快速找到感覺。歡迎關注。
想成編程高手MIT《算法導論》的作者之一Charles E. Leiserson在他的算法導論公開課的第一堂課上的一句話:
如果你想成為編程大牛,一種方法是不學習算法,做編程工作10年。一種方法是學好算法,編程工作1年。
本人,@小馬過河Vizit,專注于分布式系統原理和實踐分享。希望利用動畫生動而又準確的演示抽象的原理。歡迎關注。
關于我的名字。小馬過河Vizit,意為凡事像小馬過河一樣,需要自己親自嘗試,探索才能獲得樂趣和新知。Vizit是指Visualize it的縮寫。一圖勝千言,希望可以利用動畫來可視化一些抽象的原理。