Python零基礎開始學習的經驗分享
Python程式語言由於自身具有的“清晰”、“簡略”等特點而受到眾多使用Python程式語言的IT從業者喜愛。而且,對於初學者來說,比起其他程式語言,Python 更容易上手。加上很多企業都使用Python程式語言,促進了Python程式設計師的市場需求量增加。
轉行零基礎學Python程式設計開發難度大嗎?從哪學起?
近期很多小夥伴問我,如果自己轉行學習Python,完全0基礎能否學會呢?Python的難度到底有多大?
為大家詳細解讀一下這個問題。
首先,我們普及一下程式語言的基礎知識。用任何程式語言來開發程式,都是為了讓計算機幹活,比如下載一個MP3,編寫一個文件等,而計算機幹活的CPU只認識機器指令,所以,儘管不同的程式語言差異極大,最後都得“翻譯”成CPU可以執行的機器指令。而不同的程式語言,幹同一個活,編寫的程式碼量,差距也很大。
比如,完成同一個任務,C語言要寫1000行程式碼,Java只需要寫100行,而Python可能只要20行。
所以Python是一種相當高階的語言。
我贊成把Python作為入門語言:
1、語法簡單明瞭。第一門語言,其實就是語法+Flow control(控制),而Python的語法簡單,程式碼可讀性高,容易入門。
2、Python的哲學是「做一件事情應該只有一種最好的方法」,對於初學者規範自己的學習有很大的幫助,同時也幫助初學者能夠讀懂其他人的程式碼。
3、養成良好的習慣。Python對於程式碼的要求嚴謹,特別是縮排(Indentation),對於初學者養成良好的程式碼習慣很有幫助。
4、Python的語法設計非常優秀,思想也比較現代,可以更快的理解現代程式語言的一些思想。
5、Python仍然是傳統基於Class的OO,和Java、C#、Ruby一樣,比較大眾。從Python去學Design Pattern也是比較合適的。
6、Python的內建資料結構清晰好用,優秀的程式碼很多。
7、Python免費的書很多(英文),可以找到許多資料啃。同時(國外)社群比較集中,有問題可以向高手問。
8、Python在其他領域,比如科學計算等等有廣泛的運用,對於學一門語言作為工具來說,Python很合適。學習python過程中有不懂的可以加入我的python零基礎系統學習交流秋秋qun:前面是784,中間758,後面是214,與你分享Python企業當下人才需求及怎麼從零基礎學習Python,和學習什麼內容。相關學習視訊資料、開發工具都有分享!
如何學Python?
1、選擇好方向
我要學習Python的目的不是為了解這門語言,而是為了要學會運用這門語言來解決問題。
但Python的應用方向,實在太廣了。在Python基礎知識學完之後,如果應用方向不同,要學習的東西也會大不同。
我不能說我要做web開發,學完Python基礎知識,跑去學numpy、pandas等知識;也不能說我要用Python做資料分析,學完Python基礎知識,然後就跑去學django、flask框架。
這個道理,就跟我們想要去泰國旅行,肯定不會買去日本的機票一樣,很簡單。但是我們不得不承認,還是會有人犯迷糊,上來就開幹。
我學習Python,是因為在工作中慢慢了解到Python在資料分析方面,基本涵蓋了“資料獲取→資料處理→資料分析→資料視覺化”這個流程中每個環節,是資料分析的利器,話說這風騷的操作,也是沒誰了。
2、規劃好路徑
當我確定好方向後,下一步驟就是順著這個方向,建立好我自己的學習路徑地圖。
這個路徑是一個系統性的邏輯主線,這個主線會讓我知道每個部分需要完成的目標是什麼,需要學習哪些知識點,哪些知識是暫時不必要的。然後每學習一個部分,我就能夠有一些實際的成果輸出,利用成果產出來形成正向刺激,激勵後續的學習。
而且,如果我們身在職場,大多時候我們是沒有很大塊的時間來集中學習的。我們的學習時間被分割在了一些碎片化的時間裡。在碎片化的時間裡,系統性的學習一門知識,更需要有一個貫穿前後,系統的邏輯主線,來串聯所有相關碎片化的時間的學習。
當我確定好學習Python的資料分析知識,就按照資料分析的流程“資料獲取→資料處理→資料分析→資料視覺化”這個路徑,給自己建立了學習地圖:
A、Python基礎知識
B、爬蟲基本知識+sql
C、。。。(按自己需求選擇)
3、對基本概念建立認知
Python是我學習的第一門程式語言,我在開始學習Python的時候,是一個連什麼是字串都不知道小白。所以對我來說,最重要的開始是,首先對這一領域的基本概念建立認知!
事實上,對一門領域完全零基礎的人,想要開始學習它的話,真正重要的工作是先對這門領域的基本概念建立認知。
比如我在看到教程中有句話是“為變數賦值”,那我至少得知道,什麼是變數?賦值是什麼意思?
不知道為什麼這麼重要的一個開始,很多人都不在意,不知道是大家都天賦異稟,覺得不屑於提起這基礎的步驟,還是很多人已經忘記了從小白一路走過來的痛苦和掙扎。人是會篡改記憶的,會認為現在擁有的都是輕鬆獲得的,但真實的經歷永遠都是坎坷曲折的。
所以網上一些教程典型的通病就是,教學者用一個我們不懂的概念去解釋另一個我們不懂的概念,然後我們還是不懂。因為教學者提前預設了作為0基礎的我們的立場:已經有其他程式語言基礎,只是沒有接觸Python。
但其實,對真正如我一樣的0基礎的小白來說,大多時候,Python是我們學習的第一門程式語言。所以這個時候,對我們來說,學習Python,不僅是學習這門語言本身,還是在藉著這門語言,幫我們建立對程式設計世界的一些基本概念的認知。
當我入了門之後,就是順著在第二步建立的學習路徑,一路升級打怪,畢竟,我的征途是星辰大海!
4、最後學習中需要注意的問題
⑴、一開始絕不陷入底層原理和細枝末節的糾纏
這個坑,是把我坑的最深的坑。
舉個例子,我學到函式的時候,我在開始的時候只需要學會怎麼定義函式,怎麼呼叫函式這些基礎知識,完全不需要一開始就深入到研究函式引數的傳遞規則,到底是值傳遞,還是引用傳遞。
不是說這底層知識不重要,至少在入門的時候,我們不用一上來就深入這個層面。因為知識的學習,是一個線性的,從潛入深的順序。如果一開始,就眉毛鬍子一把抓,不分主次,可能我們很快就會體會到“從入門到放棄”是一種什麼樣的感覺。
而且我們在後續的學習過程中,其本身就是在“運用中深入理解,在深入理解中優化應用”。相互印證理解,是一種自然而然的深入學習過程。
⑵、最好是按照系統性的課程或書本來學習
既然在這個領域是新手,先接受一個已經存在的系統,再在上面修修改改,是最適合的方案。作為新手,根據我的經驗,我認為最好的老師,是一套成體系的課程或書本。
網上的文章或帖子,其實非常不適合充當我們系統性的學習一門知識的教材,因為它是非常碎片化的知識,東一榔頭西一棒子,不成體系。不要指望自己能把散落的資訊整合成系統的,那是高手要做的事情。不過這些東西,可以作為我們對某些細節的查漏補缺的參考。
⑶、以能用起來,解決問題為指導原則
在工作中,需要的更多的是一種解決問題的工程性思維,所以很多時候,我們能掉包解決問題,就沒必要自己造輪子。
舉個例子,boss要去機場,那我只要會開車,驅車把boss送到目的地就行,而不需要我去研究怎麼怎麼造車輪,怎麼造發動機,怎麼造電瓶。。。。。。
當然,如果我們學有餘力,能深入,肯定是隻好不壞。但還是那句話,開始的時候,不眉毛鬍子一把抓。
⑷、沒有什麼牛逼的事情是能夠速成的,越是底層的、收益週期越長的技能越是這樣。
“大道甚夷,而人好徑,終為所誤”。我們總會在踩了無數的坑後,才恍然大悟:捷徑往往是最長的彎路。學習一門領域的知識,對於普通人人在短時間內從0到1入個門,倒是不難,但是從1到10,到100,進階為高手,沒有長時間的投入和刻意練習,無異於痴人說夢。
Python在機器學習領域被廣泛運用,現在的研究熱點大都用Python實現;其次,自動化測驗、運維,關於測驗來說,要把握 Script 的特性,會在規劃指令碼中,有更好的作用。Python 是現在比較流行的 Script。
最重要的是Python能快速開發的特效能夠讓你敏捷驗證你的想法,而不是把時間浪費在程式本身上,並且有豐厚的第三方庫的支撐,也能幫你節省時間!
Python就業方向主要有web開發、爬蟲、人工智慧。Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程式就感覺像是在讀英語一樣,儘管這個英語的要求非常嚴格!Python的這種虛擬碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞