-
1 # MGG0
-
2 # 自可樂
相對來說,Python 是一門比較適合自學的程式語言,因為 Python 語言簡明,可讀性好,無需編譯即可執行,而且其自帶的 shell 以及 IPython shell 允許你隨時方便地進行互動式地探索和測試。儘管如此,也並非哪一本書就能讓你學好學會 Python,你需要遵循一定的步驟,循序漸進,一步一個腳印地打好基礎,方能登堂入室,真正地做到由入門到精通。
下面是對學習 Python 的一些建議,你可以大致採取三步走的策略:
第一步是熟練掌握 Python 本身的語法,這是進一步學習和使用 Python 的基礎。可以找一本完整而且全面的講解 Python 基礎語法的書,比如說 Mark Lutz 的《Python 學習手冊》,認認真真地學習至少兩遍,特別是要熟練掌握 Python 中最常用的幾種資料結構:列表、字典、元祖和集合,掌握 Python 的函式語法及用法,特別應該理解 Python 函式的各種型別的引數匹配和傳遞,如位置引數,*args 引數,**kargs 引數等,熟練理解並能靈活運用 Python 的面向物件程式設計思想和方法,包括其抽象、封裝、繼承和多型的概念以及多繼承中常用的 Mixin 技術,掌握 Python 的異常處理機制,另外對一些比較常用的高階特性,如果屬性和裝飾器等,也要有所瞭解,至少在別人的程式碼中看到時要知道是什麼。
第二步便是 Python 的標準庫了。可以結合 Python 的標準庫文件和一本中文翻譯的《Python 標準庫》,將其中所有看著順眼、覺得有用或覺得可能會有用的模組都過一篇。期間也可以輔助學習一些更進階的 Python 知識,值得看的書籍很多,比如說 《Python 高階程式設計》、《The Hacker"s Guide to Python》等。
第三步是針對一個或幾個特定的方向和領域學習和掌握一些 Python 的模組和軟體包。比如說,如果主要用 Python 做科學計算,則可以深入學習和掌握 numpy、scipy、sympy、matplotlib 等;如果主要用 Python 做統計學、經濟學資料分析,可以深入學習 Pandas、statsmodels 等;主要進行機器學習、人工智慧方向,可以深入學習 scikit-learn、tensorflow、pytorch 等;如果主要進行大資料方向,可以深入學習 pyspark 等;如果主要用 Python 做 web 程式設計,則可以學習使用 Django、flask、web2py 等框架。在這每一個方向和領域都有一些比較經典和優秀的學習書籍,而且每年都會有很多新的好書出來,在此不一一列舉,等到你需要時可以再 Google 或者百度一下。
在學習程式設計的過程中一定要多動手實踐,多寫程式碼才能記得牢,理解得透,逐步形成一種自己的穩定的且規範的程式碼編寫風格,可以使用像 git 和 github 這樣的工具將自己的程式碼加以整理並很好地管理起來,另外也應該多讀和多分析一些其他大牛程式設計人員所寫的程式碼。等達到一定的程式設計水平後,可以嘗試參與到一些開源的專案或者一些公司企業的程式設計專案中,在實踐中進一步學習和提高。經過以上的努力學習和實踐,相信你的程式設計水平就會越來越高了。
回覆列表
我也是中年開始學Python,30多年前學的basic早就扔到九霄雲外去了,幾個月下來勉強算是來到了門邊。Python入門好書很多,我用了兩本:Downey的《像計算機科學家一樣思考Python(第2版)》和Matthes的《Python程式設計:從入門到實踐》。兩本書都很不錯,但各有側重和特點。downey的書恰如其名,側重於教思維方式,對語言的細節作了較大割捨,雖然專門有《Python拾珍》一章,而不足就也在於此,很可能你幾周後連IDLE都不知道,當然我們本不應對一本只有200多頁的好書過於求全責備。裡面的習題很多,且很有挑戰性,能為進一步學習演算法等課程打下牢固的基礎。matthes的書相對更容易一些,最大特點是全面,且兼顧了2和3,尤其是第二部分手把手教的3個專案:遊戲、資料、網路程式設計,代表了Python最熱門的應用領域,能激發學習的興趣。兩本書翻譯都還不錯,除了matthes那本的書名。怎麼進行選擇,關鍵是看自己的基礎、興趣、愛好、下一步的方向等。最好是兩本書一起看,如果條件允許的話。個人的經驗,無論學什麼,只讀一本好書是不夠的,畢竟不是在武俠小說的世界裡。另外,我在書店還看到梁勇也寫了一本Python的入門書,感覺不及上兩本,但書中每章有大量繪圖方面的習題和例子,倒是一大特色。