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

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

選自Medium,做者:Jhankar Mahbub,機器之心編譯,參與:王子嘉、Geek AI。
git

要知道,一個月是一段很長的時間。若是天天堅持用 6-7 小時來作一件事,你會有意想不到的收穫。

做爲初學者,第一個月的月目標應該是這樣的:程序員

  • 熟悉基本概念(變量,條件,列表,循環,函數)github

  • 練習超過 30 個編程問題面試

  • 利用這些概念完成兩個項目算法

  • 熟悉至少 2 個框架數據庫

  • 開始使用集成開發環境(IDE),Github,hosting,services 等django

總體計劃

如今,咱們先將月計劃細化成周計劃。編程

第一週:熟悉 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,建立一個簡單的計算器

  • 第4、5、六天:我的項目(天天 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、六天:做品集網站(一天 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% 的內容,你就已經開始具有成爲一名程序員的正確特徵了。

原文連接: medium.com/@jhankar.ma…
相關文章
相關標籤/搜索