-
1 # 程式猿陌小江
-
2 # 還算牛逼吧
學習任何知識都講究由淺入深。
python是一種程式語言,針對學習程式語言的正確姿勢,及python自身的特點,根據答主10餘年的軟體程式設計開發經驗,這裡詳細說一下正確學習python的個人建議,如下學習路徑建議逐步學習,循序漸進。
語言基礎:
1、瞭解python語言的特點、發展歷史和版本,及環境安裝
2、學習python基礎語法,包括書寫規則、基本資料型別、變數定義、函式操作
資料結構及控制流程:
1、序列、字串、元組、列表,對於此部分學習其定義及常用操作
2、條件和迴圈: 條件語句、for迴圈、while迴圈、if巢狀
3、對映及字典:字典、列表推導式、字典推導式
高階語法:
1、檔案操作、輸入和輸出
2、錯誤、異常的檢測和處理
3、函式:定義、引數、作用域、迭代器和生成器、Lambda表示式、內建函式、閉包、裝飾器
4、模組定義及用法
5、語法規範
程式設計晉級:
1、標準庫使用和定義,如正則表示式、日期和時間庫、數學相關庫、檔案操作庫等
2、多執行緒程式設計,併發程式設計基礎,可實現簡單的生產者和消費者問題
3、機器學習庫,主要是Numpy、pandas、Series、Dataframe、Matplotlib等
專案實踐: 實現一個網路爬蟲系統
python應用範圍很廣,目前在如下領域應用範圍最廣: linux運維自動化、資料分析、大資料處理、機器學習等,可以根據自己的興趣愛好及發展方向,學習相關領域知識,這裡不再額外闡述。
每一部分的學習,可以透過書籍,可選擇銷量最高的python基礎學習書籍即可。網上也有很多影片,比如可以透過騰訊課堂搜尋python關鍵字,很多免費影片學習起來比較輕鬆。
所有的程式設計學習最終目的都是應用,最最重要也是需要特別提醒的一點是,學習過程中,務必多實踐、多動手!
祝你可以有效並快樂的學習python,加油^0^~
-
3 # 菜菜菜鳥
一、選擇好python學習方向
我要學習python的目的不是為了解這門語言,而是為了要學會運用這門語言來解決問題。
但python的應用方向,實在太廣了。在python基礎知識學完之後,如果應用方向不同,要學習的東西也會大不同。
我不能說我要做web開發,學完python基礎知識,跑去學numpy,pandas等知識,也不能說我要用python做資料分析,學完python基礎知識,然後就跑去學django,flask框架。這個道理,就跟我們想要去泰國旅行,肯定不會買去日本的機票一樣,很簡單,但是我們不得不承認,還是會有人犯迷糊,上來就開幹。
二、Python就業方向?
1)網站後端程式設計師:使用它單間網站,後臺服務比較容易維護。如:Gmail、Youtube、知乎、豆瓣
2)自動化運維:自動化處理大量的運維任務
3)資料分析師:快速開發快速驗證,分析資料得到結果
4)遊戲開發者:一般是作為遊戲指令碼內嵌在遊戲中
5)自動化測試:編寫為簡單的實現指令碼,運用在Selenium/lr中,實現自動化。
6)網站開發:藉助django,flask框架自己搭建網站。
7)爬蟲獲取或處理大量資訊:批次下載美劇、執行投資策略、爬合適房源、系統管理員的指令碼任務等。
8)人工智慧:Python由於簡便、庫多、可讀性強、可植入等優點,被作為人工智慧的主要開發語言,所以學Python是進入人工智慧行業的不二利器。
三、規劃好python學習路徑
當我確定好方向後,下一步驟就是順著這個方向,建立好我自己的學習路徑地圖。
這個路徑是1個系統性的邏輯主線,這個主線會讓我知道每個部分需要完成的目標是什麼,需要學習哪些知識點,哪些知識是暫時不必要的。然後每學習一個部分,我就能夠有一些實際的成果輸出,利用成果產出來形成正向刺激,激勵後續的學習
當我確定好學習python的資料分析知識,就按照資料分析的流程“資料獲取→資料處理→資料分析→資料視覺化”這個路徑,給自己建立了學習地圖:
1、python基礎知識
2、爬蟲基本知識+sql
3、numpy
4、pandas
5、matplotlib
6、sklearn
7、統計學與機率論
四、對python基本概念建立認知
python是我學習的第一門程式語言,我在開始學習python的時候,是一個連什麼是字串都不知道小白。所以對我來說,最重要的開始是,首先對這一領域的基本概念建立認知!
事實上,對一門領域完全零基礎的人,想要開始學習它的話,真正重要的工作是先對這門領域的基本概念建立認知。
比如我在到教程中有句話是“為變數賦值”,那我至少得知道,什麼是變數?賦值是什麼意思?
所以網上一些教程典型的通病就是,教學者用一個我們不懂的概念去解釋另一個我們不懂的概念,然後我們還是不懂。因為教學者提前預設了作為0基礎的我們的立場:已經有其他程式語言基礎,只是沒有接觸python。
但其實,對真正如我一樣的0基礎的小白來說,大多時候,python是我們學習的第一門程式語言。所以這個時候,對我們來說,學習python,不僅是學習這門語言本身,還是在藉著這門語言,幫我們建立對程式設計世界的一些基本概念的認知。
當我入了門之後,就是順著在第二步建立的學習路徑,一路升級打怪,畢竟,我的征途是星辰大海!
五、python學習中需要注意的問題
1、一開始絕不陷入底層原理和細枝末節的糾纏
這個坑,是把我坑的最深的坑。
舉個例子,我學到函式的時候,我在開始的時候只需要,學會怎麼定義函式,怎麼呼叫函式這些基礎知識,完全不需要一開始就深入到,研究函式引數的傳遞規則,到底是值傳遞,還是引用傳遞。
不是說這底層知識不重要,至少在入門的時候,我們不用一上來就深入這個層面。因為知識的學習,是一個線性的,從潛入深的順序。如果一開始,就眉毛鬍子一把抓,不分主次,可能我們很快就會體會到“從入門到放棄”是一種什麼樣的感覺。
而且我們在後續的學習過程中,其本身就是在“運用中深入理解,在深入理解中最佳化應用”。相互印證理解,是一種自然而然的深入學習過程。
2、最好是按照系統性的課程或書本來學習
既然在這個領域是新手,先接受一個已經存在的系統,再在上面修修改改,是最適合的方案。作為新手,如果依靠自學來學習一門領域的知識,根據我的經驗,我依然認為最好的老師,仍舊是成體系的課程或書本。
網上的文章或帖子,其實非常不適合充當我們系統性的學習一門知識的教材,因為它是非常碎片化的知識,東一榔頭西一棒子,不成體系。不要指望自己能把散落的資訊整合成系統的,那是高手要做的事情。不過這些東西,可以作為我們對某些細節的查漏補缺的參考。
3、以能用起來,解決問題為指導原則
在工作中,需要的更多的是一種解決問題的工程性思維,所以很多時候,我們能掉包解決問題,就沒必要自己造輪子。
舉個例子,boss要去機場,那我只要會開車,驅車把boss送到目的地就行,而不需要我去研究怎麼怎麼造車輪,怎麼造發動機,怎麼造電瓶......
當然,如果我們學有餘力,能深入,肯定是隻好不壞。但還是那句話,開始的時候,不眉毛鬍子一把抓。
4、沒有什麼牛逼的事情是能夠速成的,越是底層的、收益週期越長的技能越是這樣。
“大道甚夷,而人好徑,終為所誤”。我們總會在踩了無數的坑後,才恍然大悟:捷徑往往是最長的彎路。學習一門領域的知識,對於普通人人在短時間內從0到1入個門,倒是不難,但是從1到10,到100,進階為高手,沒有長時間的投入和刻意練習,無異於痴人說夢。
回覆列表
最早接觸python的時候,他並沒有現在這麼火,我也沒把他太當回事,那時候我對python的印象就是給運維人員使用的一門很古老的語言,顯然隨著tensorflow(以下簡稱tf)的興起,python開始頻繁的進入我們視野,不知不覺他就火成了今天這個樣子。
當然學習一門語言,也是單純的跟風,是因為像tf這樣優秀的專案,雖然支援的主流語言比較多,比如go、java、javascript(前幾天剛公佈),但現在能找到的,大部分tf的樣例,依然是python寫的,所以,python的優勢不言而喻。
還有對我特別有吸引的力的opencv(一款非常優秀的跨平臺開源視覺庫),也和tf的情況類似,這讓我意識到,必須要系統的、深入的學習一下python了,如果你和我一樣也是喜歡折騰的程式設計師,我想這種情況你也一定遇到過。這就是我學習python的初衷,也是這篇文章誕生的原因。
自我介紹一下先,我是08年用了一年半的時間主學了java和C#語言,之後4-5年的工作一直從事的是C#方面的開發,直到前幾年,因為工作的原因,先後學習並使用了nodejs、golang、以及手機混合開發。其中手機混口開發包括:dcloud、deviceone、xamarin、reactnative等,nodejs的框架有:express、thinkjs、pomelo等,所以對於如何學習一門新語言,對我來說是手到擒來,輕而易舉的事(自信如我)。
學習思路
學習所有語言的套路基本都是一樣的,主要來自以下幾點:
配置開發環境
瞭解語法特點
資料型別、資料轉換
if判斷、迴圈使用
函式、類使用
異常處理
IO操作
垃圾回收機制
多執行緒開發
心裡有了學習的方向之後,只需要深入淺出的檢視對於的資料,把以上的問題以此消除,基本上也就掌握了這門語言的基礎了。
如果要深入理解這門語言的精髓和加深理解這個python就要了解一下問題了:
python語言誕生的原因和解決的問題
python的優缺點
python設計的原理
python的語法特點
自學目錄
開發環境搭建
基礎
變數
資料型別
條件判斷和迴圈
函式和類
模組
檔案操作
異常處理
垃圾回收gc
多執行緒
時間模組
http模組
以上的目錄為本人學習的指導思路!