Python 從入門到精通:一個月就夠了

毫無疑問,Python 是當下最火的程式語言之一。對於許多未曾涉足計算機程式設計的領域「小白」來說,深入地掌握 Python 看似是一件十分困難的事。其實,只要掌握了科學的學習方法並制定了合理的學習計劃,Python 從 入門到精通只需要一個月就夠了!

要知道,一個月是一段很長的時間。如果每天堅持用 6-7 小時來做一件事,你會有意想不到的收穫。作為初學者,第一個月的月目標應該是這樣的: 熟悉基本概念(變數,條件,列表,迴圈,函式)練習超過 30 個程式設計問題利用這些概念完成兩個專案熟悉至少2 個框架開始使用整合開發環境(IDE),Github,hosting,services 等整體計劃現在,我們先將月計劃細化成周計劃。

第一週:熟悉 Python要積極探索 Python 的使用方法,儘可能多的完成下面這些任務:

第一天:基本概念(4 小時):print,變數,輸入,條件語句

第二天:基本概念(5 小時):列表,for 迴圈,while 迴圈,函式,匯入模組

第三天:簡單程式設計問題(5 小時):交換兩個變數值,將攝氏度轉換為華氏溫度,求數字中各位數之和,判斷某數是否為素數,生成隨機數,刪除列表中的重複項等等

第四天:中級程式設計問題(6 小時):反轉一個字串(迴文檢測),計算最大公約數,合併兩個有序陣列,猜數字遊戲,計算年齡等等

第五天:資料結構(6 小時):棧,佇列,字典,元組,樹,連結串列。

第六天:面向物件程式設計(OOP)(6 小時):物件,類,方法和建構函式,面向物件程式設計之繼承

第七天:演算法(6 小時):搜尋(線性和二分查詢)、排序(氣泡排序、選擇排序)、遞迴函式(階乘、斐波那契數列)、時間複雜度(線性、二次和常量)別急著安裝 Python 環境!這看起來很矛盾,但是你一定要相信我。我有幾個朋友,他們因為語言工具包和 IDE 安裝的失敗而逐漸失去了學習下去的慾望。因此,我的建議是先使用一些安卓 app 來探索這門語言,比如程式設計英雄(https://play。google。com/store/apps/details?id=com。learnprogramming。codecamp)或者線上程式碼遊樂場 Repl(https://repl。it/)等等。如果你是個技術小白,安裝 Python 環境可不是你的首要任務。

第二週:開始軟體開發(構建專案)接下來,讓我們朝著軟體開發任務進軍吧!不妨嘗試綜合你學到的知識完成一個實際的專案:

第一天:熟悉一種 IDE(5 小時): IDE 是你在編寫大型專案時的操作環境,所以你需要精通一個 IDE。在軟體開發的初期,我建議你在 VS code 中安裝 Python 擴充套件或使用 Jupyter notebook。

第二天:Github(6 小時):探索 Github,並建立一個程式碼倉庫。嘗試提交(Commit)、檢視變更(Diff)和上推(Push)你的程式碼。另外,還要學習如何利用分支工作,如何合併(merge)不同分支以及如何在一個專案中建立拉取請求(pull request)。

第三天:第一個專案——簡單計算器(4 小時):熟悉 Tkinter,建立一個簡單的計算器。

第四、五、六天:個人專案(每天 5 小時):選定一個專案並完成它。如果你不知道你該做什麼,可以檢視下面的清單(https://www。quora。com/what-some-good pythonprojects -for-an- middle - programmer/answer/jhankar - mahbub2)

第七天:託管專案(5 小時):學習使用伺服器和 hosting 服務來託管你的專案。建立一個 Heroku 設定並部署你構建的應用程式。為什麼要寫專案?如果僅僅按部就班地學習課堂上或影片中的內容,你無法擁有獨立思考能力。所以,你必須把你的知識應用到一個專案中。當你努力尋找答案時,你也在慢慢地學會這些知識。

第三週:讓自己成為一名程式設計師第 3 周的目標是熟悉軟體開發的整體過程。你不需要掌握所有的知識,但是你應該知道一些常識,因為它們會影響你的日常工作。

第一天:資料庫基礎(6 小時):基本 SQL 查詢(建立表、選擇、Where 查詢、更新)、SQL 函式(Avg、Max、Count)、關係資料庫(規範化)、內連線、外連線等

第二天:使用 Python 資料庫(5 小時):利用一種資料庫框架(SQLite 或 panda),連線到一個數據庫,在多個表中建立並插入資料,再從表中讀取資料。

第三天:API(5 小時):如何呼叫 API。學習 JSON、微服務(micro-service)以及表現層應用程式轉換應用程式介面(Rest API)。

第四天:Numpy(4 小時):熟悉 Numpy(https://towardsdatascience。com/lets-talk-about- Numpy -for- datascies-beginners-b8088722309f)並練習前 30 個 Numpy 習題(https://github。com/rougier/numpy- 100/blob/master/100_numpy_excercises。md)

第五、六天:作品集網站(一天 5 小時):學習 Django,使用 Django 構建一個作品集網站(https://realpython。com/get- start-with-django -1/),也要了解一下 Flask 框架。

第七天:單元測試、日誌、除錯(5 小時):學習單元測試(PyTest),如何設定和檢視日誌,以及使用斷點除錯。真心話時間(絕密)如果你非常「瘋狂」,並且非常專注,你可以在一個月內完成這些任務。你必須做到:把學習 Python 作為你的全職活動。你需要從早上 8 點開始學習,一直到下午 5 點。在此期間,你可以有一個午休時間和茶歇時間(共 1 小時)。8 點列出你今天要學的東西,然後花一個小時複習和練習你昨天學過的東西。從 9 點到 12 點:開始學習,並進行少量練習。在午飯後,你需要加大練習量,如果你卡在某個問題上,可以在網上搜索解決方案。

嚴格保持每天 4-5 小時的學習時間和 2-3 小時的練習時間(每週最多可以休息一天)。你的朋友可能會認為你瘋了。走自己的路,讓別人去說吧!如果你有一份全職工作,或者你是一名學生,完成這些流程可能需要更長的時間。

作為一名全日制學生,我花了 8 個月的時間來完成這份清單。現在我是一名高階開發人員。我妻子在美國一家大銀行工作。她花了 6 個月才完成本文中提到的任務。  所以,不管花多長時間,一定要完成它們。

第四周:認真考慮工作(實習)問題第 4 周的目標是認真思考如何才能被錄用。即使你現在不想找工作,你也可以在探索這條道路的過程中學到很多東西。

第一天:準備簡歷(5 小時):製作一份一頁的簡歷。把你的技能總結放在最上面,必須在寫專案的同時附上 Github 連結。

第二天:作品集網站(6 小時):寫幾個部落格,將它們新增到你之前開發的作品集網站中。

第三天:LinkedIn 簡介(4 小時):建立一個 LinkedIn 個人簡介,把簡歷上的所有內容都放到 LinkedIn 上。

第四天:面試準備(7 小時):準備一些谷歌常見的面試問題,練習白皮書中的 10 個面試程式設計問題。在 Glassdoor、Careercup 等網站中檢視前人遇到的面試問題。

第五天:社交(~小時):走出房門,開始參加聚會、招聘會,與其他開發人員和招聘人員見面。

第六天:工作申請(~小時):搜尋「Python Job」,檢視 LinkedIn Job 和本地求職網站。選擇 3 個工作崗位併發送工作申請。為每個工作定製你的簡歷。在每個工作要求中找出 2 到 3 件你不知道的事情,並在接下來的 3-4 天裡學會它們。

第七天:在拒絕中學習(~小時):每次你被拒絕的時候,找出兩件為了獲得這份工作你應該知道的事情,然後花 4-5 天 的時間來掌握它們。這樣,每次拒絕都會讓你成為更好的開發人員。為工作做準備現實情況是,你永遠不可能百分之百地為工作做好準備。

你所要做的就是精通一兩件事,並且熟悉其它的事情,最終透過面試。一旦你開始工作了,你會在工作過程中學到很多。享受學習的過程學習是一個過程,只要學習就會有挑戰。天道酬勤,你越努力,就會成為越優秀的開發人員。如果你能在 28 天內完成所有的任務,那你堪稱天才。然而,如果你能完成 60-70% 的內容,你就已經開始具備成為一名程式設計師的正確特徵了。