首頁>Club>
10
回覆列表
  • 1 # 丹增

    他的主要建議就是先找到自己學習 Python 的初衷和興趣所在,不在基礎語法上耗過多的時間,邊練專案邊學習。當然這種方法不一定適合每個人,初學 Python 的朋友可以瞭解一下他的建議,做個參考。下面我們詳細看看 Vik 總結出的正確學習 Python 的 5 個姿勢都有哪些。

    學習任何程式語言都很嚇人。我(作者 Vik Paruchuri——譯者注)個人認為 Python 比其他大多數語言都要好學,但我的學習 Python 之路也並非一帆風順。最令我鬱悶的是,所有學習資料感覺都差不多。我想學習用 Python 建網站,但似乎所有學習資料都希望我在做任何有意思的事之前,先花漫長且無聊的兩個月來學習 Python 的語法。

    這種落差讓我對學習 Python 甚至有了排斥心理,於是學 Python 這事兒往後拖了好幾個月。我看了點教材和影片後,就沒繼續下去。我看 Python 的程式碼只覺得很陌生,很令人費解。

    上述程式碼來自 Django 的一個教程,Django 是個很流行的 Python Web 開發架構。有些程式設計師老手常常會扔出上面這樣的程式碼段給你並保證,“這很簡單的!”。但就算一開始幾行程式碼看起來很簡單,後面的程式碼還是很難懂。舉例來說,這幾行為什麼要註釋掉?django.http 是什麼?為什麼這些要放在括號裡?當你還不太瞭解 Python 的時候,你會很難理解一切是怎麼組合起來的。

    問題在於,如果你想做有意思的事情,你必須先理解 Python 的構建模組。上面的程式碼段建立了一個檢視,這是使用流行的 MVC 架構的網站的關鍵構建模組之一。如果你不知道怎麼寫建立檢視的程式碼,你基本上不可能搭建一個動態網網站。

    大多數教程覺得在開始做有意思的事情之前,你需要先學會 Python 的所有語法。因此當你想要分析資料、搭建網站,或者開發無人機的時候,你要先在語法上花幾個月的時間。這也是為什麼你會越來越缺乏動力,甚至直接放棄。我願意把它想作是一個“無聊懸崖”,你必須要先爬上“無聊懸崖”才能到達“你想做的有意思的事情之地”(需要一個更好的名字)。

    幾次面對“無聊懸崖”並走開之後,我發現了一個在我身上有用的方法。關鍵在於把學習基礎知識和做有意思的事情結合起來。我花盡量少的時間學習基礎,然後馬上投入我感興趣的事情當中。在這篇博文裡,我將會一步一步帶你重複這個過程,無論你想學 Python 的原因是什麼。

    1.找到你的動力

    在你一頭扎入 Python 的學習之前,你很有必要先問問自己為什麼想要學 Python。這會是一段很漫長,有時候甚至痛苦的旅程,沒有足夠的動力很難堅持下來。舉例來說,高中和大學的程式設計課我都在睡覺,因為我沒有動力去記那些語法。而另一方面,當我需要用 Python 搭建一個可以自動給文章打分的網站時,我是熬夜做完的。

    找到你的動力可以幫你找到你的目標,以及實現目標的途徑,而且期間毫不無聊。你不用想出一個很具體的專案,只要一個你感興趣的大概領域就足夠了。

    選一個你感興趣的領域,比如:

    資料科學/機器學習

    移動應用程式

    網站

    遊戲

    硬體/感測器/機器人

    自動化工作的指令碼

    找出一兩個你感興趣並願意堅持的領域,你會朝這個方向學習,最終搭建相關的專案。

    2.學習基礎語法

    不幸的是,這是你逃不開的一步。在深入你所選的領域之前,你必須先學會 Python 的基礎語法。你會希望花盡可能少的時間在語法上,因為你很難有動力去學習這些。

    這是一些能幫你打好基礎的資源:

    《Learn Python the Hard Way》——一本覆蓋從基礎到深入的 Python 概念的書。

    The Python Tutorial ——Python 主頁上的教程(https://docs.python.org/3/tutorial/)。

    我要再次強調你只需要花盡可能少的時間學習基本語法。你越快開始專案,你就學得越快。之後你遇到障礙的時候可以隨時回頭看語法。這個階段你只應該花幾周時間,絕對不需要超過一個月。

    3.建立結構化專案

    一旦你學會了基本語法,你就可以開始自己做專案了。專案是一個很好的學習方法,因為你可以實踐你的知識。如果你不實踐你的知識,你很難記住它。專案可以推進你的能力,幫助你學習新事物,並幫你建立一個可以展示給潛在僱主看的作品集。

    然而,在這個階段形式自由的專案可能會讓你很痛苦——你會經常碰到障礙,必須看文件。因此,在你可以完全自己做專案之前,最好先從更結構化的專案開始。很多學習資源都提供了結構化的專案,這些專案可以讓你在感興趣的領域做有意思的事情且不會碰到太多障礙。

    我們來看一下各個領域裡一些比較好的結構化專案:

    資料科學/機器學習

    Dataquest ——互動式教學 Python 和資料科學。你可以分析一系列有趣的資料集,從 CIA 檔案到 NBA 選手資料,最終開發複雜的演算法,包括神經網路和決策樹。

    《Python for Data Analysis》 ——本書由一個重要的 Python 資料分析庫的作者所寫,很好的介紹了 Python 中的資料分析。

    Scikit-learn documentation ——Scikit-learn 是主要的 Python 機器學習庫,這裡有很多很好的文件和教程。

    CS109 ——這是哈佛的一門利用 Python 進行資料分析的課程,其中一些專案和資料可以在網上找到(https://cs109.github.io/2015/)。

    移動應用程式

    Kivy guide ——Kivy 是一個幫你用 Python 寫移動應用程式的工具,有使用指南(https://kivy.org/docs/gettingstarted/intro.html)。

    網站

    Flask tutorial —— Flask 是一個流行的 Python Web 架構,這是 Flask 的入門教程(http://flask.pocoo.org/docs/0.10/tutorial/)。

    Bottle tutorial ——Bottle 是另一個 Python Web 架構,你可以從這裡開始(http://bottlepy.org/docs/dev/tutorial_app.html)。

    How To Tango With Django ——Django 是一個複雜的 Python Web 架構,這裡是它的指南(http://www.tangowithdjango.com/)。

    遊戲

    Pygame tutorials ——Pygame 是一個流行的做遊戲的 python 庫,這裡是一系列教程(http://www.pygame.org/wiki/tutorials)。

    《Invent your own computer games with Python》 ——一本帶你用 Python 做幾個遊戲的書。

    硬體/感測器/機器人

    Using Python with Arduino ——學習用 Python 控制連到 Arduino 的感測器:http://www.toptechboy.com/using-python-with-arduino-lessons/

    Learning Python with Raspberry Pi ——用 Python 和樹莓派搭建硬體專案:https://www.raspberrypi.org/blog/learning-python-with-raspberry-pi/

    Learning Robotics using Python ——學習用 Python 搭建機器人https://www.amazon.com/dp/B00YEVZ6UK

    Raspberry Pi Cookbook ——學習Python和樹莓派搭建機器人

    一旦你在自己的領域裡完成了幾個結構化專案,你就可以開始著手你自己的專案了。但在開始之前,你有必要先花一點時間學習解決問題的方法。

    4.著手你自己的專案

    你已經完成了一些結構化專案,接下來就是你著手自己的專案的時候了。你依然需要找資料,學習概念,但你可以開始做你想做的事了。在你開始做自己的專案之前,你需要能自如的除錯你專案中的錯誤和問題。這裡是一些你應該熟悉的資源:

    Google——每一個經驗豐富的程式設計師最常使用的工具。當你除錯錯誤的時候會非常有用。

    Python documentation ——可以找到 Python 的參考文件(https://docs.python.org/3/)

    當你可以熟練的除錯程式的問題時,你就可以開始著手你自己的專案了。你要做你感興趣的事情。比如我就在學會程式設計之後馬上做了一個自動交易股票的工具。

    這是一些可以幫你到找有趣的專案的小貼士:

    拓展你之前的專案,加入更多功能。

    參加你所在領域的 Python 集會,找到正在做有趣專案的人。

    找到你可以貢獻的開源專案。

    看當地的非營利機構是否需要志願開發者。

    找別人做好的專案,看你能否拓展或者修改它,你可以在 Github 上找。

    瀏覽別人的部落格看有沒有有趣的專案想法。

    想想有沒有什麼工具可以讓你的日常生活更方便,做出來。

    記得要從小處開始。從簡單的事情開始,你就可以建立自信心。開始一個小專案並完成要比一個永遠做不完的大專案要好。

    和其他人一起工作也能給你更多動力。

    資料科學/機器學習

    一個預測你所在地區天氣的演算法

    一個預測股市的工具

    一個自動總結新聞的演算法

    移動應用程式

    一個追蹤監測你一天走了多少步的 app

    一個通知你天氣的 app

    一個基於地理位置的實時聊天工具

    網站

    一個幫你規劃每週飲食的網站

    一個筆記平臺

    遊戲

    一個可以讓你基於地理位置佔據領土的移動端遊戲

    一個讓你程式設計解謎的遊戲

    硬體/感測器/機器人

    可以監控家裡溫度並讓你遠端監控家中情況的感測器

    一個更智慧的鬧鐘

    一個可以檢測障礙物的自動駕駛機器人

    自動化工作的指令碼

    一個自動輸入資料的指令碼

    一個從網路抓取資料的指令碼

    我的第一個個人專案是把我的給文章自動打分的演算法從 R 移植到 Python。最終效果不是很好,但讓我很有成就感,並讓我開始培養自己的能力。

    關鍵在於選一個東西並去上手做。如果你一直在選完美的專案,很有可能你永遠都不會做成一個。

    5.不斷做更難的專案

    不斷提高你的專案的難度並擴大範圍。如果你對你在做的事情非常熟悉,那麼是時候嘗試一些更困難的事情了。

    你需要不斷的學習,做新專案。如果你做的正確的話,你會回看你六個月之前的程式碼覺得怎麼這麼糟糕。這樣就說明你在正確的道路上。做你感興趣的事情意味著你永遠不會感到疲倦或無聊。

    Python 是一門很有趣很好學的語言,我認為只要找到動力,任何人都可以熟練掌握它。

  • 2 # TD905

    感覺有本書你學的差不多了就基本具備了一名合格的python程式設計工程師,不過可惜的是這本書沒有電子版,只有紙質的。

    第 1章 從數學建模到人工智慧

    1.1 數學建模1.1.1 數學建模與人工智慧1.1.2 數學建模中的常見問題1.2 人工智慧下的數學1.2.1 統計量1.2.2 矩陣概念及運算1.2.3 機率論與數理統計1.2.4 高等數學——導數、微分、不定積分、定積分第2章 Python快速入門2.1 安裝Python2.1.1 Python安裝步驟2.1.2 IDE的選擇2.2 Python基本操作2.2.1 第 一個小程式2.2.2 註釋與格式化輸出2.2.3 列表、元組、字典2.2.4 條件語句與迴圈語句2.2.5 break、continue、pass2.3 Python高階操作2.3.1 lambda2.3.2 map2.3.3 filter第3章 Python科學計算庫NumPy3.1 NumPy簡介與安裝3.1.1 NumPy簡介3.1.2 NumPy安裝3.2 基本操作3.2.1 初識NumPy3.2.2 NumPy陣列型別3.2.3 NumPy建立陣列3.2.4 索引與切片3.2.5 矩陣合併與分割3.2.6 矩陣運算與線性代數3.2.7 NumPy的廣播機制3.2.8 NumPy統計函式3.2.9 NumPy排序、搜尋3.2.10 NumPy資料的儲存第4章 常用科學計算模組快速入門4.1 Pandas科學計算庫4.1.1 初識Pandas4.1.2 Pandas基本操作4.2 Matplotlib視覺化相簿4.2.1 初識Matplotlib4.2.2 Matplotlib基本操作4.2.3 Matplotlib繪圖案例4.3 SciPy科學計算庫4.3.1 初識SciPy4.3.2 SciPy基本操作4.3.3 SciPy影象處理案例第5章 Python網路爬蟲5.1 爬蟲基礎5.1.1 初識爬蟲5.1.2 網路爬蟲的演算法5.2 爬蟲入門實戰5.2.1 呼叫API5.2.2 爬蟲實戰5.3 爬蟲進階—高效率爬蟲5.3.1 多程序5.3.2 多執行緒5.3.3 協程5.3.4 小結第6章 Python資料儲存6.1 關係型資料庫MySQL6.1.1 初識MySQL6.1.2 Python操作MySQL6.2 NoSQL之MongoDB6.2.1 初識NoSQL6.2.2 Python操作MongoDB6.3 本章小結6.3.1 資料庫基本理論6.3.2 資料庫結合6.3.3 結束語第7章 Python資料分析7.1 資料獲取7.1.1 從鍵盤獲取資料7.1.2 檔案的讀取與寫入7.1.3 Pandas讀寫操作7.2 資料分析案例7.2.1 普查資料統計分析案例7.2.2 小結第8章 自然語言處理8.1 Jieba分詞基礎8.1.1 Jieba中文分詞8.1.2 Jieba分詞的3種模式8.1.3 標註詞性與新增定義詞8.2 關鍵詞提取8.2.1 TF-IDF關鍵詞提取8.2.2 TextRank關鍵詞提取8.3 word2vec介紹8.3.1 word2vec基礎原理簡介8.3.2 word2vec訓練模型8.3.3 基於gensim的word2vec實戰第9章 從迴歸分析到演算法基礎9.1 迴歸分析簡介9.1.1 “迴歸”一詞的來源9.1.2 迴歸與相關9.1.3 迴歸模型的劃分與應用9.2 線性迴歸分析實戰9.2.1 線性迴歸的建立與求解9.2.2 Python求解迴歸模型案例9.2.3 檢驗、預測與控制第10章 從K-Means聚類看演算法調參10.1 K-Means基本概述10.1.1 K-Means簡介10.1.2 目標函式10.1.3 演算法流程10.1.4 演算法優缺點分析10.2 K-Means實戰第11章 從決策樹看演算法升級11.1 決策樹基本簡介11.2 經典演算法介紹11.2.1 資訊熵11.2.2 資訊增益11.2.3 資訊增益率11.2.4 基尼係數11.2.5 小結11.3 決策樹實戰11.3.1 決策樹迴歸11.3.2 決策樹的分類第12章 從樸素貝葉斯看演算法多變 19312.1 樸素貝葉斯簡介12.1.1 認識樸素貝葉斯12.1.2 樸素貝葉斯分類的工作過程12.1.3 樸素貝葉斯演算法的優缺點12.2 3種樸素貝葉斯實戰第13章 從推薦系統看演算法場景13.1 推薦系統簡介13.1.1 推薦系統的發展13.1.2 協同過濾13.2 基於文字的推薦13.2.1 標籤與知識圖譜推薦案例13.2.2 小結第14章 從TensorFlow開啟深度學習之旅14.1 初識TensorFlow14.1.1 什麼是TensorFlow14.1.2 安裝TensorFlow14.1.3 TensorFlow基本概念與原理14.2 TensorFlow資料結構14.2.1 階14.2.2 形狀14.2.3 資料型別14.3 生成資料十二法14.3.1 生成Tensor14.3.2 生成序列14.3.3 生成隨機數14.4 TensorFlow實戰

    希望對你有幫助!!!

    貴在堅持,自己掌握一些,在工作中不斷打磨,高薪不是夢!!!

  • 中秋節和大豐收的關聯?
  • 女人辛苦生娃,坐月子哪些傳統誤區不能聽老人的,寧可忍42天也不要以後遭罪?