自學c和py需要學習數據結構嗎(入門階段)?


先不用學數據結構。

我曾經當過好幾年的數據結構課助教,數據結構的很多練習都需要有一定的編程知識。我接觸過不少同學連基本的程序都寫不出來,就開始學習數據結構了。其實這樣很浪費時間,又沒法專註於學習數據結構。

我建議先學習一門語言,c或者py都可以,練到有一定熟練度了,至少寫個for循環和聲明個函數這樣的東西都不用查書了,再來學數據結構。


先搞定能寫出代碼解決一般的問題,再去學習數據結構和演算法。

免費的c 語言的書,請看

http://www.kciti.edu/wp-content/uploads/2017/07/cprogramming_tutorial.pdf?

www.kciti.edu

推薦買本書,認真敲代碼,做適當的練習題。

黃哥:黃哥推薦學習C語言好書?

zhuanlan.zhihu.com圖標


作為入門的同學,建議你先學習編程語言,在工作的過程中再進行數據結構的學習,一方面數據結構可以幫助你提升代碼質量,另一方面編寫代碼也方便你了解數據結構的思想。

本質上數據結構不屬於任何一門編程語言,但其中的演算法是體現在每門標準語言裡面。舉一個實際的例子,在100顆假鑽石裡面混著一個真鑽石,真鑽石和假鑽石的唯一區別就是重量不同,問使用什麼樣的方法可以最快確定是真鑽石還是假鑽石?針對這個問題,有的人會使用拿一顆鑽石,然後使用剩餘的99顆挨個去進行稱重,如果找不到則更換下一顆繼續操作;而有的人會選擇將100顆鑽石分成兩份,通過對半稱重進行對比,最後確定假鑽石。很明顯,作為第二種方法就是數據結構熟悉的最好體現。


入門階段可以稍稍放緩,但是入門之後數據結構與演算法都是必學內容,就算是只寫些業務邏輯的碼農,也會用到一些數據結構的


不管是c還是python,數據結構都是必然會接觸到的。c裡面的數組一開始就會用到,字元串也是一樣的,它本質上就是數組啊。這些都是一開始就會用到,但是你不一定要理解原理的東西。

等你學的多了,自然會希望了解,這樣的一組數是怎麼存在內存里,到時候就會主動去了解數據結構了。

之所以專門開數據結構和演算法的課,不才認為這樣集中學一件事情效率更高。數據結構和演算法是和各種語言正交的,是放在任何語言里都存在的知識


想了解入門學習python的話可以去我的專欄里看看。有需要的話私信找我


不學數據結構學語言就沒意義。

學語言是為了能進行下一步學習。

只靠對語言的掌握,寫什麼都是虛招子。


感覺學個一學期吧 用py能寫點小腳本了,面向過程寫的比較熟悉了,就可以開始搞了,其實難不到哪去,大二的課程而已


python肯定需要,因為Python主要用來做科學計算,當然你只是為了學著玩另說。c的話入門不需要數據結構,進階需要。學數據結構不是為了讓你去設計一個結構,而是讓你去了解這些結構都是幹什麼的,當遇到一個實際問題該選擇哪種。


入門可以先不用學,但進階必學數據結構與演算法。


學點最基本的數據結構和演算法就好,比如棧、隊列、鏈表這種最好能在學完入門階段後能自己寫出來,而堆、二叉樹、哈希表等這類了解下各種操作(讀寫改刪等等)的時間複雜度,演算法也是了解些簡單演算法(快排等)、的時間、空間複雜度就好,也就是了解些這些數據結構/演算法的效果和消耗。

不過到了後面最好也是能夠熟悉後面這些的實現細節,最好是能寫出來。


C語言需要學,學會C語言的基本語法之後就可以學了。

Python無所謂,學了有好處,不學也沒關係。


推薦閱讀:

樹型結構
二叉樹的非遞歸遍歷
圖解圖的存儲結構
初試只考數據結構的985院校
LeetCode刷題之路(第一天)

TAG:Python | 自學 | 數據結構 | 計算機基礎 | CC |