Python作為一個整體可以用於任何軟體開發領域。下面來看看Python可以應用在哪些領域的開發。
1.起步階段
任何一種程式語言都包含兩個部分:硬知識和軟知識,起步階段的主要任務是掌握硬知識。
(1) 硬知識
“硬知識”指的是程式語言的語法、演算法和資料結構、程式設計正規化等,例如:變數和型別、迴圈語句、分支、函式、類。這部分知識也是具有普適性的,看上去是掌握了一種語法,實際是建立了一種思維。例如:讓一個 Java 程式設計師去學習 Python,他可以很快的將 Java 中的學到的面向物件的知識 map 到 Python 中來,因此能夠快速掌握 Python 中面向物件的特性。
如果你是剛開始學習程式設計的新手,一本可靠的語法書是非常重要的。它看上去可能非常枯燥乏味,但對於建立穩固的程式設計思維是必不可少。
下面列出了一些適合初學者入門的教學材料
❖「笨方法學 Python」:
http://learnpythonthehardway.org/book/
這本書在講解 Python 的語法成分時,還附帶大量可實踐的例子,非常適合快速起步。
❖「廖雪峰的 Python 教程」
中文教程的翹楚,專為剛剛步入程式世界的小白打造。
❖「The Hitchhiker’s Guide to Python!」
這本指南著重於 Python 的最佳實踐,不管你是 Python 專家還是新手,都能獲得極大的幫助。
❖「Python 官方文件」
實踐中大部分問題,都可以在官方文件中找到答案。
❖ 輔助工具:Python Tutor
一個 Python 物件視覺化的專案,用圖形輔助你理解 Python 中的各種概念。
(2) 軟知識
“軟知識”則是特定語言環境下的語法技巧、類庫的使用、IDE的選擇等等。這一部分,即使完全不瞭解不會使用,也不會妨礙你去程式設計,只不過寫出的程式,看上去顯得“傻”了些。
起步階段的核心任務是掌握硬知識,軟知識做適當瞭解,有了穩固的根,粗壯的枝幹,才能長出濃密的葉子,結出甜美的果實。
2.發展階段
完成了基礎知識的學習,必定會感到一陣空虛,懷疑這些語法知識是不是真的有用。
沒錯,你的懷疑是非常正確的。要讓 Python 發揮出它的價值,當然不能停留在語法層面。發展階段的核心任務,就是“跳出 Python,擁抱世界”。
在你面前會有多個分支:科學計算和資料分析、爬蟲、Web 網站、遊戲、命令列實用工具等等等等,這些都不是僅僅知道 Python 語法就能解決的問題。
拿爬蟲舉例,如果你對計算機網路,HTTP協議,HTML,文字編碼,JSON一無所知,你能做好這部分的工作麼?而你在起步階段的基礎知識也同樣重要,如果你連迴圈遞迴怎麼寫都還要查文件,連 BFS 都不知道怎麼實現,這就像工匠做石凳每次起錘都要思考錘子怎麼使用一樣,非常低效。
在這個階段,不可避免要接觸大量類庫,閱讀大量書籍的。
(1) 類庫方面
「Awesome Python 專案」
這裡列出了你在嘗試解決各種實際問題時,Python 社群已有的工具型類庫,如下圖所示:
你可以按照實際需求,尋找你需要的類庫。
至於相關類庫如何使用,必須掌握的技能便是閱讀文件。由於開源社群大多數文件都是英文寫成的,所以,英語不好的同學,需要惡補下。
(2)書籍方面
這裡我只列出一些我覺得比較有一些幫助的書籍,詳細的請看豆瓣的書評:
科學和資料分析:
❖「集體智慧程式設計」
❖「數學之美」
❖「統計學習方法」
❖「Pattern Recognition And Machine Learning」
❖「資料科學實戰」
❖「資訊檢索導論」
爬蟲:
❖「HTTP 權威指南」
Web 網站:
❖「HTML & CSS 設計與構建網站」
...
列到這裡已經不需要繼續了。
聰明的你一定會發現上面的大部分書籍,並不是講 Python 的書,而更多的是專業知識。
事實上,這裡所謂“跳出 Python,擁抱世界”,其實是發現 Python 和專業知識相結合,能夠解決很多實際問題。這個階段能走到什麼程度,更多的取決於自己的專業知識。
3.深入階段
這個階段的你,對 Python 幾乎瞭如指掌,那麼你一定知道 Python 是用 C 語言實現的。
可是 Python 物件的“動態特徵”是怎麼用相對底層,連自動記憶體管理都沒有的C語言實現的呢?這時候就不能停留在表面了,勇敢的拆開 Python 的黑盒子,深入到語言的內部,去看它的歷史,讀它的原始碼,才能真正理解它的設計思路。
這裡推薦一本書:「Python 原始碼剖析」,這本書把 Python 原始碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對 C 語言記憶體模型和指標有著很好的理解。
另外,Python 本身是一門雜糅多種正規化的動態語言,也就是說,相對於 C 的過程式、 Haskell 等的函式式、Java 基於類的面向物件而言,它都不夠純粹。換而言之,程式語言的“道學”,在 Python 中只能有限的體悟。學習某種程式設計正規化時,從那些面向這種正規化更加純粹的語言出發,才能有更深刻的理解,也能瞭解到 Python 語言的根源。
這裡推薦一門公開課「程式設計正規化」(斯坦福大學公開課),程式設計正規化講師高屋建瓴,從各種程式設計正規化的代表語言出發,給出了每種程式設計正規化最核心的思想。
值得一提的是,這門課程對C語言有非常深入的講解,例如C語言的範型和記憶體管理。這些知識,對閱讀 Python 原始碼也有大有幫助。
Python 的許多最佳實踐都隱藏在那些眾所周知的框架和類庫中,例如 Django、Tornado 等等。在它們的原始碼中淘金,也是個不錯的選擇。
4. 最後的話
每個人學程式設計的道路都是不一樣的,其實大都殊途同歸。重要的是多練習,多實踐,釋出或者參與開源專案,與其他的開發者積極互動。
Python作為一個整體可以用於任何軟體開發領域。下面來看看Python可以應用在哪些領域的開發。
基於控制檯的應用程式基於音訊或影片的應用程式3D CAD應用程式.Web應用程式企業級應用影象應用python該如何學習?1.起步階段
任何一種程式語言都包含兩個部分:硬知識和軟知識,起步階段的主要任務是掌握硬知識。
(1) 硬知識
“硬知識”指的是程式語言的語法、演算法和資料結構、程式設計正規化等,例如:變數和型別、迴圈語句、分支、函式、類。這部分知識也是具有普適性的,看上去是掌握了一種語法,實際是建立了一種思維。例如:讓一個 Java 程式設計師去學習 Python,他可以很快的將 Java 中的學到的面向物件的知識 map 到 Python 中來,因此能夠快速掌握 Python 中面向物件的特性。
如果你是剛開始學習程式設計的新手,一本可靠的語法書是非常重要的。它看上去可能非常枯燥乏味,但對於建立穩固的程式設計思維是必不可少。
下面列出了一些適合初學者入門的教學材料
❖「笨方法學 Python」:
http://learnpythonthehardway.org/book/
這本書在講解 Python 的語法成分時,還附帶大量可實踐的例子,非常適合快速起步。
❖「廖雪峰的 Python 教程」
中文教程的翹楚,專為剛剛步入程式世界的小白打造。
❖「The Hitchhiker’s Guide to Python!」
這本指南著重於 Python 的最佳實踐,不管你是 Python 專家還是新手,都能獲得極大的幫助。
❖「Python 官方文件」
實踐中大部分問題,都可以在官方文件中找到答案。
❖ 輔助工具:Python Tutor
一個 Python 物件視覺化的專案,用圖形輔助你理解 Python 中的各種概念。
(2) 軟知識
“軟知識”則是特定語言環境下的語法技巧、類庫的使用、IDE的選擇等等。這一部分,即使完全不瞭解不會使用,也不會妨礙你去程式設計,只不過寫出的程式,看上去顯得“傻”了些。
起步階段的核心任務是掌握硬知識,軟知識做適當瞭解,有了穩固的根,粗壯的枝幹,才能長出濃密的葉子,結出甜美的果實。
2.發展階段
完成了基礎知識的學習,必定會感到一陣空虛,懷疑這些語法知識是不是真的有用。
沒錯,你的懷疑是非常正確的。要讓 Python 發揮出它的價值,當然不能停留在語法層面。發展階段的核心任務,就是“跳出 Python,擁抱世界”。
在你面前會有多個分支:科學計算和資料分析、爬蟲、Web 網站、遊戲、命令列實用工具等等等等,這些都不是僅僅知道 Python 語法就能解決的問題。
拿爬蟲舉例,如果你對計算機網路,HTTP協議,HTML,文字編碼,JSON一無所知,你能做好這部分的工作麼?而你在起步階段的基礎知識也同樣重要,如果你連迴圈遞迴怎麼寫都還要查文件,連 BFS 都不知道怎麼實現,這就像工匠做石凳每次起錘都要思考錘子怎麼使用一樣,非常低效。
在這個階段,不可避免要接觸大量類庫,閱讀大量書籍的。
(1) 類庫方面
「Awesome Python 專案」
這裡列出了你在嘗試解決各種實際問題時,Python 社群已有的工具型類庫,如下圖所示:
你可以按照實際需求,尋找你需要的類庫。
至於相關類庫如何使用,必須掌握的技能便是閱讀文件。由於開源社群大多數文件都是英文寫成的,所以,英語不好的同學,需要惡補下。
(2)書籍方面
這裡我只列出一些我覺得比較有一些幫助的書籍,詳細的請看豆瓣的書評:
科學和資料分析:
❖「集體智慧程式設計」
❖「數學之美」
❖「統計學習方法」
❖「Pattern Recognition And Machine Learning」
❖「資料科學實戰」
❖「資訊檢索導論」
爬蟲:
❖「HTTP 權威指南」
Web 網站:
❖「HTML & CSS 設計與構建網站」
...
列到這裡已經不需要繼續了。
聰明的你一定會發現上面的大部分書籍,並不是講 Python 的書,而更多的是專業知識。
事實上,這裡所謂“跳出 Python,擁抱世界”,其實是發現 Python 和專業知識相結合,能夠解決很多實際問題。這個階段能走到什麼程度,更多的取決於自己的專業知識。
3.深入階段
這個階段的你,對 Python 幾乎瞭如指掌,那麼你一定知道 Python 是用 C 語言實現的。
可是 Python 物件的“動態特徵”是怎麼用相對底層,連自動記憶體管理都沒有的C語言實現的呢?這時候就不能停留在表面了,勇敢的拆開 Python 的黑盒子,深入到語言的內部,去看它的歷史,讀它的原始碼,才能真正理解它的設計思路。
這裡推薦一本書:「Python 原始碼剖析」,這本書把 Python 原始碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對 C 語言記憶體模型和指標有著很好的理解。
另外,Python 本身是一門雜糅多種正規化的動態語言,也就是說,相對於 C 的過程式、 Haskell 等的函式式、Java 基於類的面向物件而言,它都不夠純粹。換而言之,程式語言的“道學”,在 Python 中只能有限的體悟。學習某種程式設計正規化時,從那些面向這種正規化更加純粹的語言出發,才能有更深刻的理解,也能瞭解到 Python 語言的根源。
這裡推薦一門公開課「程式設計正規化」(斯坦福大學公開課),程式設計正規化講師高屋建瓴,從各種程式設計正規化的代表語言出發,給出了每種程式設計正規化最核心的思想。
值得一提的是,這門課程對C語言有非常深入的講解,例如C語言的範型和記憶體管理。這些知識,對閱讀 Python 原始碼也有大有幫助。
Python 的許多最佳實踐都隱藏在那些眾所周知的框架和類庫中,例如 Django、Tornado 等等。在它們的原始碼中淘金,也是個不錯的選擇。
4. 最後的話
每個人學程式設計的道路都是不一樣的,其實大都殊途同歸。重要的是多練習,多實踐,釋出或者參與開源專案,與其他的開發者積極互動。