1. 程式人生 > >轉行零基礎該如何學Python?這些一定要明白!

轉行零基礎該如何學Python?這些一定要明白!

tro 網上 人在 學習 alt 開始 另一個 flask 部分

轉行零基礎學Python編程開發難度大嗎?從哪學起?近期很多小夥伴問我,如果自己轉行學習Python,完全0基礎能否學會呢?Python的難度到底有多大?今天,小編就來為大家詳細解讀一下這個問題。

技術分享圖片

學習Python難嗎?

首先,我們普及一下編程語言的基礎知識。用任何編程語言來開發程序,都是為了讓計算機幹活,比如下載一個MP3,編寫一個文檔等,而計算機幹活的CPU只認識機器指令,所以,盡管不同的編程語言差異極大,最後都得“翻譯”成CPU可以執行的機器指令。而不同的編程語言,幹同一個活,編寫的代碼量,差距也很大。

比如,完成同一個任務,C語言要寫1000行代碼,Java只需要寫100行,而Python可能只要20行。

所以Python是一種相當高級的語言。

是不是越低級的程序越難學,越高級的程序越簡單?

表面上來說,是的。

但是,在非常高的抽象計算中,高級的Python程序設計也是非常難學的,所以,高級程序語言不等於簡單。

但是,對於初學者和完成普通任務,Python語言是非常簡單易用的。

技術分享圖片

我0基礎學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?

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語言學習”關註

歡迎大家加入千人交流答疑裙:699+749+852

轉行零基礎該如何學Python?這些一定要明白!