為什麼我覺得Python的學習很沒有條理?

我是一個高中學生。對編程很有興趣。最近開始認真學習Python,作為入門的一門語言

我之前對C有一些涉獵,但也僅僅是對語法有一些了解。那些編程的理論也是不知道的。

學習Python用的是《Python基礎教程》這本書,內容似乎很簡略,才第7章就講到OOP。我看的時候覺得自己的思路很不條理,而且從看OOP那章開始覺得很困難,對於什麼「魔法方法」就更是不明就裡。學到現在,我也就能那簡單遞歸寫個比較「複雜」的楊輝三角。

知乎er們能幫幫我嗎?

^_^


麻省理工學院公開課:計算機科學及編程導論

個人覺得這是學Python最好的入門教程,先跟著看一遍,比看國內的書好多了。

看第二遍的時候結合Learn Python The Hard Way這本書一起看,同時開始編程。

先明白編程的目標和原理是最重要的,直接啃無聊的書只會把自己的興趣抹殺掉。

以上,希望對你有幫助。


你要是決定將來從事計算機方面的專業工作,我建議你去學scheme,

去讀一讀sicp, the little schemer。

這些才能讓你明白為什麼計算是一門科學,而寫代碼不是。正如建築是一門科學,而砌牆不是。

如果只想做一名賺錢的碼農,學什麼都一樣。那麼多公開課隨便挑幾個看一看,比如udacity上大神Peter Norvig的。

然後在去自己做幾個玩具,基本上就入門了。

=====

為什麼你覺得沒有條理,因為你對這個領域根本沒有經驗。 就像是手裡只有一個手電筒,卻要讓你探索一大片原始森林,你怎麼可能覺得有條理。 人的認知都是建立在已有經驗的基礎上,你總需要跟自己已有的知識來類比,並且不斷修正,才能擴大自己的認知領域。

沒開發過軟體基本上很難理解oop,學習本身就是一個過程,你需要更耐心一點。另外就是不要只見樹木不見樹林,死抱著一本書不放。更好的學習資源還有很多。

另外你不要小看遞歸,the little schemer整本書可以算是就是在教人什麼是遞歸,怎樣遞歸。遞歸可以算的上是整個計算機科學入門時最重要的概念。去了解一下recursive descent parser,你就會領會遞歸的強大和美。

作為一名高中生,要把自己的期望定的更高一點。我建議你可以去搞搞編程競賽,去研究演算法,這些東西能讓你將來不至於停留在碼農的水平上。並且你也能因此遇到一群將來這個領域裡最聰明最有能力的人。

你要知道具體的技術具體的語言都是可能過時的,但是計算機里永恆的精靈與世長存。


隨便做點啥吧,成績管理,圖書館借入借出管理,自己的音樂管理之類的,不斷的重構,不斷加新功能,從單機到CS再到BS再到雲端。


我說說我的看法,既然是初學者,那麼就是三點最重要,樂趣或者說成就感,條理性以及結構。
樂趣不用說,自學任何東西最強力的驅動力,但是如何保持驅動力,不同的教材有不同的側重,比如我學python看的《python核心編程》,對於我而言非常合適,後來給幾個人推薦過之後發現效果不好,我回頭仔細看看,通篇嚴謹,初學者從這本書找不到一點樂趣,必然pass。所以這方面,可以參考《可愛的Python》
條理性……就個人而言,看到的書一般如果保持了樂趣很少能兼顧到條理的,所以我個人的建議是,學好一個語言,只看一本書是肯定而且絕對不夠的。所以,這方面,《Python核心編程》我還是很推薦的。
至於結構,就是從大局觀來看了(9神勿怪)。一般來說,書很少,我也還沒到這地步,對於Python而言,PEP是不錯的文獻,然後多看看其他「高貴的語言」比如lisp之類的,這都是慢慢積累的。

除此之外,一本工具字典之類的書也是必要的,比如《Python標準庫示例》
手機作答,排版較差請原諒。

#!!!!!!
更新

最重要的是,找個東西寫!!實踐!!


學習Python是一個很大的範圍,最好找個目標,是要做網站開發,還是想做桌面級別的應用軟體,或者其他的什麼,單學語法當然很沒意思,也不條理,也不是不可以,只是效果可能差一點,也容易忘.

你也許剛入門或者沒入門,基礎淺功底差,有些不知所措都是必經之路,不必著急,只要堅持就行.

我也在看Python基礎教程這本書,最近有其他事就放下了,其實還沒你看的快,但是有些東西大同小異,要急緩得當,詳略適度,建議你先把除項目示例的部分大概過一遍,不要想一次吃透,先理解一些概念,樹立一些觀念,然後在看第二遍,第三遍,深入理解,把書上的代碼多敲一敲,自然也就快得多,這本書最寶貴的就是後面的幾個項目示例,當然也需要其他的一些知識,比如網站開發的知識,資料庫的知識等等,你需要自己拓展,可以看看head first系列的書,入門很好.

在高中就能學習編程說明你很有想法,我高中學過很少的一點pascal上了大學學其他語言都比其他同學快很多,如果將來你在大學能夠進行相關專業的學習,此時的積累也是很寶貴的.

加油.

(五中的同學啊,好吧,估計學習不錯~~)


更新: 現在回過頭來看這本書,真的很不錯。高級特性和模塊做到了雨露均沾,至少以後再看到相關的詞時不會發怵。最好每到不會或者不理解的地方,都取stackoverflow上查一下例子博客什麼的,幫助理解。

初學者強答一下:

對比入門的headfirst來說,其實簡明教程這本書整!本!都特別晦澀。第九章對我已經到了不能閱讀的地步……需要查找其他的書籍對照理解下。

類=特定數據結構+處理該數據的函數。魔法方法即是對繼承的類(object or str, list)中方法的重寫,包括操作符,常用函數都可以。還有訪問控制和自定義序列的功能。這樣即使看上去相同的函數作用於不同的類上,可以有不同的結果,而不會產生衝突。只要創建一個類,「.」後面就可以看見可以重寫的魔法方法。總之魔法方法是服務於特定數據結構的。一個例子。

class Word(str):
"""單詞類,按照單詞長度來定義比較行為"""
def __init__(self,a_add):
str.__init__(self)
self.add=a_add
def __gt__(self, other):
return len(self) &> len(other)
def __lt__(self, other):
return len(self) &< len(other) def __ge__(self, other): return len(self) &>= len(other)
def __le__(self, other):
return len(self) &<= len(other) def __len__(self): return len(self.add)+1 a=Word("a") b=Word("b") &>&>&> a&>=b
True
&>&>&> "a"&>="b"
False
&>&>&> len(a)
2

不想看的書就別看了QAQ畢竟還有那麼多書可以看……

11. (譯)Python魔法方法指南 更詳細的參考這裡。

如理解有誤,還望指教。


你看的這是目錄


推薦閱讀:

非計算機專業的程序員能達到什麼樣的高度?
想學編程,請問從哪個開始較好:C/C++,Python 還是 Lisp?
熱愛編程,什麼時候開始學習?
Python中實現 (a and b or c) in xx 這種邏輯最簡潔的方式是怎樣的?
關於學習數據結構與演算法的一些疑惑?

TAG:Python | 編程 | 編程學習 |