人生苦短,我用 Python。
爲何?
簡單明瞭的理由固然是開發效率高。可是學習 Python 的初學者每每會面臨如下殘酷的現狀:
網上充斥着大量的學習資源、書籍、視頻教程和博客,可是大部分都是講解基礎知識,不夠深刻;也有的比較晦澀,難以理解。
若是你真的想要高效地學習 Python,那就須要掌握如何過濾網上的垃圾教程資源的技能,並從其餘有經驗的程序員或在線編程社區中得到幫助。
假若你沒有任何編程知識,或者知之甚少,從一張白紙起步,或許會更容易一些。
在本篇文章中,咱們將分享 6 位技術專家學習 Python 的最佳方法,也許當你學習舉步維艱之時,他們的經驗將會幫你躲避不少沒必要要的坑,以及可讓你學會如何經過 Python 教程編寫出色的 Python 程序。程序員
Quan Nguyen
第一位 Quan Nguyen,是來自越南的國際學生,在美國印地安那州 DePauw 大學攻讀計算機科學和數學專業學位,同時還攻讀哲學專業的學位。他兩年前開始使用 Java 進行編程,後來發現本身須要一種具備更高可讀性且可以快速實現原型開發的編程語言,不久以後,Python 就成爲他最喜歡的語言。
他對數據科學和機器學習領域很是感興趣,特別是對文本的情感分析。此外,他對人臉和物體識別也具備很是豐富的經驗。算法
最初學習 Python 時,我使用的主要編程語言仍是 Java。之因此學習 Python,是由於我想要使用一種可讀性更高而且可以快速實現原型開發的編程語言(最直接的反映就是編程語言的「print」語句)。
第一階段學習
從一開始,我本身很是喜歡用 Python 編寫代碼,由於 Python 語法不只直接、直觀,並且具備高度的一致性。一種特定的語法除了適用於特定的數據結構以外,還適用於其餘相似的數據結構,好比 Python 的內置函數 len(),它用於返回一個Python列表連接 Java 中則有多種不一樣的語法,如 [variable].length、[variable].length()、length([variable])。
就如何高效地學習 Python 而言,勤加練習是最好的途徑。
在我我的的學習經歷中,首先我是經過閱讀 Codecademy 的 Python 在線指南連接 語法,固然也有其餘相似的教程或指南來幫助你學習 Python 語法。
在第一階段的學習以後,保持必定的持續性並繼續學習 Python 是相當重要的。
進階
在此階段就須要一些中高級的教程或編程書籍,或者解決一些具備挑戰性的編程問題。可實踐的網站有:
Project Euler連接
HackerRank連接
CodeFights連接
dailyprogrammer連接
雖然教程和書籍從多個角度提供不一樣的編程教學,讓你能夠深刻了解該語言的特性,但實際的上手編程讓你們有了一種更加有趣且更具挑戰性的通道來學習不一樣的編程技巧、數據結構和第三方庫,從而解決不一樣的編程問題。
這兩種方法都有各自存在的價值,二者的結合將會讓你對編程語言瞭解得更全面。
再次強調,關鍵點仍是要在於對編程保持持續性,讓你的大腦保持住對語言語法的瞭解,並改善你解決問題的思惟過程。
實踐
建立本身的項目,或加入開源社區連接 Github,這些都是編程的必經之路。對於像 Python 這樣的語言來講更是如此,現在開發者社區正以驚人的速度增加,天天都有新的庫和項目在快速更新。
經過學習一個新的 Python 庫,你不但能夠繼續熟悉這門語言,還能夠增長你的知識面,爲將來解決實際問題打下基礎。
在開源項目上與其餘人一塊兒工做將有助於對特定主題進行深刻研究和了解,同時增長你的專業性和可信度。
Dibakar Saha
第二位 Dibakar Saha,是孟加拉工程技術學院(隸屬於 Maulana Abul Kalam 科技大學)計算機科學與工程專業的一名 B.Tech 學生。他使用了不少編程語言,如 C、C ++、Java、Android、VB.NET、VB六、Python、Javascript 等。在他的博客連接 Python 項目。數據庫
從我我的經驗來說,學習一門編程語言最好的方法就是挑選一個問題,而後用編程語言來解決它。
想要解決一個問題,你須要很是清楚地瞭解問題自己。個人意思是你須要瞭解輸入、輸出、約束條件、規則和許多其餘的東西。
如下是我推薦的一些步驟:
瞭解 Python 的基礎知識
掌握任何一門編程語言的基礎都是很是重要的。你至少首先應該明白如何輸入和輸出。
同時須要對 Python 中的列表、元組、集合和字典連接 等不一樣的數據結構足夠熟悉,可以理解循環和列表。
O'Reilly 出版的《Learning Python 第 5 版》和 Google 的 Python 在線教程連接 能夠幫助你對 Python 基礎進行足夠的瞭解。在看書的同時,你還應該跟隨你所學的教程進行編程練習。假設你今天學習了輸入和輸出,那麼編寫一個程序,以便你能夠實現該功能。可是,若是你已經熟悉了這一點,那就沒必要了。
作項目
當你學習了 Python 的基礎知識以後,就須要作一個真正的項目來實踐了。
該項目能夠是任何東西。能夠是一個簡單的 GUI 計算器項目,也能夠是一個能夠區分消息是「spam」仍是「ham」的複雜 AI 項目。
在這種狀況下,有一個很適合初學者的網站能夠幫助你,那就是 Automate the Boring Stuff with Python連接 AI 或數據分析領域的初學者,你不妨看看這個連接
持續專一於這個問題,直到你能解決全部的子問題。
先把問題放到一邊,作一些與原問題有關的簡單問題,而後再回來解決原來的問題。
經過谷歌搜索解決方案是能夠的,可是要儘可能先獨立解決問題,本身編寫代碼,以後在去看別人是如何寫的。
借鑑其餘高質量代碼
假設你是初學者,那麼你極可能寫的代碼緩慢而醜陋。所以你須要閱讀別人優秀的代碼。能夠了解一下 GitHub 或者其餘開源平臺的 Python 項目。
瞭解 Python 模塊和庫
Python 有一大堆免費的庫和模塊能夠直接拿來使用,所以你須要瞭解經常使用的 Python 庫,好比 NumPy、SciPy、Pandas、Matplotlib 等。
這些庫擁有豐富的功能,你沒必要本身從頭開始編寫像貝葉斯類這樣的算法。使用庫可讓你的代碼量更少且易讀。
Meenakshi Agarwal
Meenakshi Agarwal 是 TechBeamers.com 網站的聯合創始人。她是 Lucknow 大學計算機科學專業畢業生,擁有計算機應用碩士學位。她曾與大型跨國公司合做,花費數年時間,使用 C / C ++、Visual C ++、Python、Java、J2EE、C#、DotNet、Selenium、FitNesse 和其餘一些技術進行軟件開發,產品設計,測試和自動化。編程
我是 Meenakshi Agarwal,一名計算機科學專業的畢業生,在軟件產品開發和測試方面有豐富的經驗。因爲我對編程和寫做充滿熱情,因此我開始使用 Techbeamers連接
在個人職業生涯中,我學過不少的編程語言。可是 Python 是我最喜歡的一個。由於我是經過自學掌握 Python 的。我沒有參加任何線上、線下的培訓,主要經過在線教程和一些書來學習 Python。
在分享個人 Python 學習方法以前,你首先要清楚學習 Python 的理由。
Python 的如下優勢足以說服你學習它:
Python 很是簡單直接。你幾乎能夠像僞代碼同樣讀寫它。
它有豐富的內置庫以及第三方框架和庫。
它有一個強大的社區,能夠幫助你得到任何與編程有關的答案。
如今讓咱們看看你如何快速學習 Python。
首先是核心語法,簡單的數據類型、變量、關鍵字、條件判斷(好比if ... else)和控制語句(好比 loop)等基本語法塊。
掌握基本語法以後,編寫一些簡單的程序,如階乘、斐波納契數列、單數/偶數、計算器等等。
下一步是瞭解列表、集合、元組、字典等特殊的數據結構。再次使用這些技能來解決一些實際問題,並使用這些數據結構來構建程序。
而後學習錯誤處理(異常連接
以後,瞭解 Python 中函數連接
瞭解 Python 的模塊和庫。Python 有很是多的庫,雖然沒有直接包含,可是很容易安裝,沒有任何理由去從新造輪子。
如今是幫助他人學習 Python 的時候了。教會別人是增強你所學知識的最好方法之一。
參加論壇上的討論貼,幫助其餘成員解決問題。加入社區,並考慮在 StackOverflow 或 Reddit 上回答問題。
最後,選擇一個專業領域。例如,你能夠開始投身機器學習。這將須要你學習一些第三方庫和包,如 Pandas、NumPy、SciPy 等。
Aniruddha Chaudhari
Aniruddha Chaudhari 擁有計算機科學碩士學會(來自印度 NIT Trichy),他是 CSEstack.org (Programming and Computer Science Portal)的創始人。Python 是他第一個也是他最喜好的語言。除此以外,他還學習了多種編程語言,如 C、C ++ 等。他的博客連接 Python 教程。瀏覽器
同其餘編程語言(如 C、C ++ 和 Java)相比,Python 學習起來很容易,至少入門很容易。
Python 有兩個版本:Python 2.x 和 Python 3.x。選擇合適的 Python 版本很是重要。
有不少大公司使用 Python 2.x 構建項目。因此若是你想參與這些項目,Python 2.x 是正確的選擇。若是你不肯定,那麼選擇 Python 3.x 吧,由於 Python 3.x 是將來。
若是你想有效地學習 Python,你首先應該專一於兩件事:
瞭解 Python 中的數據結構;
熟悉 Python 庫的使用。
Python 數據結構包括字符串、列表、元組等等。
它們的區別是什麼?什麼時候使用哪一種結構及其各類關聯的方法來操縱數據?
Python 提供的庫很是強大。有大量的庫可用於各類項目。
例如,若是你想成爲一名數據科學家,有許多模塊和庫供你使用,如 Panda、Numpy、Tensoflow 。找到你感興趣的領域,並搜索該領域的庫,這些庫一般均可以避免費使用。
爲了進行實際編程,須要遵循以下步驟:
建立一個目錄來保存全部的 Python 程序;
開始先開發一些小項目。若是你正在學習 GUI,那麼能夠開發一個計算器連接
把實用函數編寫成一個 Python 程序;
在新的 Python 程序中使用這些實用函數做爲模塊。(重複使用代碼是很好的作法,能夠節省大量時間。)
從你的小項目中創造出一些東西來激勵本身,給本身一些值得學習的東西,並保持持續。找機會獎勵本身。開發本身的興趣保持長期學習!
學習一門編程語言不是要知道它全部的語法。而是瞭解它的特色和優點,以及你能夠用它解決什麼實際問題。至於語法你隨時均可以經過 Google 進行查詢。
你練習的越多,對編程語言的掌握就越好。用 Python 進行快樂編程!
Krishna Kant Mishra數據結構
我是 Krishna Kant Mishra,喜歡看板球,解決數學難題和聽音樂。我來自印度,是一名計算機科學工程專業的畢業生。我目前在 Wipro Technology 公司擔任 VMWare / Cloud 管理員。
高效學習 Python 的方法
首先要回答的問題是我爲何學習 Python?這是前提。
學習 Python 的基礎知識很簡單,但想要將知識應用到項目中可能很困難。我自身在嘗試學習沒有上下文和應用程序的代碼。
如下是我高效學習 Python 的技巧:
1、學習 Python 語法
毫無疑問,你須要掌握基本知識。你應該有一個基本的語法在你的腦海中,至少可以知道用[:]進行字符串操做。
若是你連基本的語法都不瞭解,那麼很難實現有用的東西。可是不要學習基礎方面花太長的時間。咱們的目標是學習很是基礎的知識,而後在本身感興趣的領域開始本身的項目。
我本身花了不到一個星期的時間,在 Codecademy 上學習 Python 的基礎知識。這足以開始一個項目了。
2、看盡量多的教程
假設我想了解 Python 中的 SQLite 數據庫。
我首先在 Google 上搜索教程並掃描搜索結果,而後選擇深刻和易於理解的教程。
我一般使用「Print Friendly&PDF」(谷歌瀏覽器擴展)將在線教程轉換爲 PDF,以便我能夠離線閱讀在線教程。固然閱讀書籍也能夠,我選擇了特定領域且通俗易懂的書籍(SQLite database in Python)。
在學習過程當中若是遇到困難,我會在 Reddit、StackOverflow 和 Quora 等社區中向其餘 Python 程序員尋求幫助。
問題解決以後,我會想一個我能夠實現的項目,好比把我從網上抓取的數據存儲在數據庫中。
個人原則是,不要只閱讀教程,你須要親自動手寫代碼,不然很容易遺忘。
獨立完成項目
掌握了 Python 語法的基本知識以後,你又完成了 Python 中一個特定領域的教程。如今就能夠開始一個項目了。
你的項目能夠是任何東西:
自動化領域(Practical Programming for Total Beginners連接
編寫一些你感興趣的東西,好比數據分析(Python Programming Tutorials連接
須要注意的是:不是不提倡看教程,而是不提倡看大量的基礎教程。例如,當你嘗試執行特定的項目時,Python 編程教程是能夠查看的。
可是要儘可能獨立,先嚐試本身解決問題,而後再看別人是怎麼解決問題的。
不斷迭代寫好的代碼
不斷溫習 Python 語言特性,找出哪些方法是已通過時的。因此,再次強化字典的使用,以及對字符串進行切片和反轉處理等等。
當你意識到你的代碼很差時該怎麼作
在這一點上,你能夠把本身的代碼與其餘人的進行比較。比較時,請記住如下問題:
如何使個人代碼更快?
如何改進個人代碼?
總結
Python 發展和變化很是之快。大概只有少數人能夠聲稱本身徹底理解它。你須要進行持續地學習和開發項目。
若是你這樣作的話,你會發現本身在 6 個月前寫的代碼簡直糟糕得無法看。若是你有這樣的體會,那證實你走在正確的軌道上。
Python 是一門很是有趣和有益的語言,若是使用正確的學習方法,我相信任何人均可以達到高水平的掌握程度。
Cliff John Hill框架
入門
Python 從一開始就被設計成一門易學的語言。最有效的學習方法是經過在線課程學習,好比:
Google 的 Python 教程:
連接
Codecademy 一些課程:
連接
Python.org 的 Python 教程:
連接
學習 Python 之時,首先須要掌握簡單的語法和基本概念。我的建議找一個感興趣的開源項目並投入其中。
進階
進一步的培訓能夠來自 PyCon講座連接 YouTube 在線得到。Python Mush Watch 連接 我推薦 Raymond Hettinger 的視頻(他很是擅長搞演講)此外 David Beazly、Brandon Rhodes、Guido van Rossum 和 Ned Batchelder 的教程也不錯。
「Python Crash Course」這本書很棒,它可讓你快速掌握基本知識,而後使用 Python 進行一些實用的編程。
Python 學習資源彙總
如下是一些有用的學習資料,能夠幫助你學習 Python。
Python官方文檔
Python 3.6.3 文檔連接
Python 2.7.14 文檔連接
Python 好書推薦
Tony Gaddis 的《Starting Out with Python》
Python Crash 課程:Eric Matthes 撰寫的《Python編程 從入門到實踐》
Zed Shaw 的 《"笨辦法"學 Python》
Doug Hellmann 的 《The Python Standard Library by Example》
Al Sweigart 的 《Python 編程快速上手:讓繁瑣工做自動化》
Allen B. Downey 的 《像計算機科學家同樣思考 Python》
Mark Pilgrim 的《Dive Into Python 3》
Python 程序員播客
Michael Kennedy 的 Talk Python To Me Podcast:
連接
Michael Kennedy 和 Brian Okken 主持的 PythonBytes:
連接
obias Macey 主持的 Podcast.__init__:
連接
Kenneth Reitz 和 Alex Gaynor 主持的 Import This: A Podcast for Humans
Test and Code Podcast:
連接
Python 程序員簡報
Pycoder’s Weekly連接
PythonTips連接
ImportPython連接
Python Weekly連接
最後,也歡迎你們在評論區補充 Python 的學習資料,技術之路,咱們共同進步。
原文:
連接
做者:Rapture Godson
譯者:安翔
責編:蘇宓
————— END —————機器學習