我是一個高中學生。對編程很有興趣。最近開始認真學習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再到雲端。初學者強答一下:
對比入門的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)+1a=Word('a')b=Word('b')>>> a>=bTrue>>> 'a'>='b'False>>> len(a)2
我說說我的看法,既然是初學者,那麼就是三點最重要,樂趣或者說成就感,條理性以及結構。樂趣不用說,自學任何東西最強力的驅動力,但是如何保持驅動力,不同的教材有不同的側重,比如我學python看的《python核心編程》,對於我而言非常合適,後來給幾個人推薦過之後發現效果不好,我回頭仔細看看,通篇嚴謹,初學者從這本書找不到一點樂趣,必然pass。所以這方面,可以參考《可愛的Python》條理性……就個人而言,看到的書一般如果保持了樂趣很少能兼顧到條理的,所以我個人的建議是,學好一個語言,只看一本書是肯定而且絕對不夠的。所以,這方面,《Python核心編程》我還是很推薦的。至於結構,就是從大局觀來看了(9神勿怪)。一般來說,書很少,我也還沒到這地步,對於Python而言,PEP是不錯的文獻,然後多看看其他「高貴的語言」比如lisp之類的,這都是慢慢積累的。除此之外,一本工具字典之類的書也是必要的,比如《Python標準庫樣本》手機作答,排版較差請原諒。#!!!!!!更新最重要的是,找個東西寫!!實踐!!學習Python是一個很大的範圍,最好找個目標,是要做網站開發,還是想做案頭層級的應用軟體,或者其他的什麼,單學文法當然很沒意思,也不條理,也不是不可以,只是效果可能差一點,也容易忘.
你也許剛入門或者沒入門,基礎淺功底差,有些不知所措都是必經之路,不必著急,只要堅持就行.
我也在看Python基礎教程這本書,最近有其他事就放下了,其實還沒你看的快,但是有些東西大同小異,要急緩得當,詳略適度,建議你先把除項目樣本的部分大概過一遍,不要想一次吃透,先理解一些概念,樹立一些觀念,然後在看第二遍,第三遍,深入理解,把書上的代碼多敲一敲,自然也就快得多,這本書最寶貴的就是後面的幾個項目樣本,當然也需要其他的一些知識,比如網站開發的知識,資料庫的知識等等,你需要自己拓展,可以看看head first系列的書,入門很好.
在高中就能學習編程說明你很有想法,我高中學過很少的一點pascal上了大學學其他語言都比其他同學快很多,如果將來你在大學能夠進行相關專業的學習,此時的積累也是很寶貴的.
加油.
(五中的同學啊,好吧,估計學習不錯~~)