如何零基礎自學 Python?

前言

今天這篇文章是對初學者的一篇學習資料分享與總結!

如何零基礎自學 Python?

簡單介紹下筆者的自學之路

起初學習 Python 是在 2016 年,那時臨近畢業,由於面臨著找工作的不確定性,便學習了相關的網絡安全知識,此時初識 Python 。

在正式工作之後,遇到了各種手工,重複性的工作,例如操作excel、操作網頁去錄相關係統信息等,於是便想起了 Python 這門便捷性語言,自學了一段時間後,發現上手比較快,將其利用在了自己的工作中,減輕了不少所謂程序猿的體能勞動力,實現了不少自動化的小工具。

因為有 Java 相關的基礎在,所以個人感覺學習 Python 怎麼用,是非常容易的!但是隨著後續時間的推移,越來越覺得基礎非常重要,能強烈的感覺到缺少系統性的細節知識,故去慕課網系統性學習了一番,有了此份學習筆記,在個人公眾號裡,將之命名為 Python 小課堂!

通過自己邊學習邊總結的文章,希望也能夠幫助想學習 Python 的入門者快速入門,完成自己的目標!

後臺回覆:【小課堂】,獲取本系列文章整理好的的在線網頁版,電腦上學習時比較舒服!

如何 0 基礎自學 Python ?

在計算機科學領域裡,涉及到的知識點非常多,其學科本身就是一個非常龐大的體系。而對於沒有接觸過編程的同學來說,經常會找不到學習的方向,或者說,不懂得如何進行高效的系統性學習

生在互聯網時代的我們非常幸福,因為現在網上已經有許多優秀的前輩們為後來者奠定了好的基礎,通過自身不斷地堅持,高自律性,完全可以踏入編程世界。

學習本身是有相通性的,就像筆者上面說到的,因為當初自學過 Java,所以在學 Python 並不費力,編程語言之間的知識許多都是相通的!那麼身為 0 基礎的你,應該如何自學呢?

首先,來談談自學時應有的兩個精神品質:堅持與自律

不知道大家有沒有聽說過一句話:“在牛逼的夢想,也扛不住煞筆一樣的堅持!” 雖然看上去很毒雞湯,但確實是真諦。給大家講個真實的故事,就是我自己。(記得曾經在去年的某一篇文章裡簡單的寫過自身學習編程的事情。)

還記得當年高考完,以北京市二本線最低分的分數,勉勉強強上了個北京的二本院校,這真算得上是老天爺的眷顧了。。。接下來為了釋放高中積壓的壓力,開始了“計算機系”中的瘋玩計劃。

熟悉我的大學同學都知道,大學四年時間,前三年爽爽的玩了三年。大部分時間就是在玩遊戲。第一年打了一年 dota1,第二年打了一年 lol,第三年打了一年dota2。後來在學校組織的一次專業實習活動中,意識到不能在這麼渾渾噩噩下去了,碰巧是那次實習,開啟了人生的編程之路。

首先我做的第一件事就是明確目標,希望找一個 Java 方向的工作。在大三下學期的暑假裡,以這個目標為主,每天早上 6:30 起床,7:00 開始 0 基礎的自學編程之路,拋去吃飯上廁所的時間,一直學到下午 13:00 左右。後面的三個月,保持每天如此的高度自律性,從當初 0 基礎的小白算是入了門。正是這份自律性,確實幫我找到了工作。

大學中第二件事,便是四級英語考試了。計算機系學生的優勢就是大一就可以考英語四級。當時哪裡顧得上英語?高中一考完果斷全放棄,後來聽別人說,找工作四級很重要,有的地方需要四級證明。(對於計算機系找工作,真的沒那麼重要,有些國企可能會要) 於是這一考就是四年,每個學期一次,我

堅持了3年半,每年2次考試的機會,一直就沒考過,其中最慘的一次是考了 424 分(425分給證)。最後在不懈的堅持下,終於在大學第7次考試考過了四級。。。都是辛酸史。。。

上面舉了我自己的兩個例子,無非想說的就是在學習的道路上,堅持與自律是必不可少的精神,學習 Python 也是一樣的!

而在學習 Python 中,除了以上說到的兩種必備精神外,還有些軟技能是可以提高學習效率的,下面結合自己學習經驗分享下。

1. 明確學習目標,瞭解學習語言的發展背景

學習要有目的性,盲目的學習只能說是浪費精力與時間。

許多初學者在選定編程語言後,會在網上收集一堆網課或是書籍資料,一存就是幾個GB的百度網盤,反正越多越好,越多心裡就會有一種越踏實的錯覺感。但是你會慢慢的發現,存了這麼多視頻,根本沒有那麼多時間全部看完,大部分的視頻僅僅是佔坑罷了!

也有一些同學自律性比較高,挑出某些系列視頻網課,看個前幾章,然後看著看著,就堅持不下去了,學到的只是視頻前奏的皮毛知識點,自己動手編程的時候,還是一臉懵逼,最終放棄了編程。就像上面提到的觀點一樣,盲目學習只會浪費自己的精力與時間。

筆者當初為什麼選擇了重拾學習 Python ?因為目的性很強,工作中遇到了煩人的瑣碎重複工作,想對其自動化。此時需要選擇一門編程語言,百度查調研了下,很多人推薦 Python ,其自身具有簡潔的語法,適合開發小工具。所以抱著這個目的,筆者首先做的事是去瞭解了 Python 的發展背景

就像負責的網課老師在開頭正式講課之前,會講語言的發展歷史。創始人是誰?名字的由來?迄今為止有多少年的存活歷史了?對應的社區活躍度高不高?到現在最新的版本是多少?涉及的領域有哪些?(說白了就是,能用它幹什麼事情?)

曾經在小課堂開篇就寫過,Python 到底可以來幹什麼:python小課堂00

這些問題應是在學習一門編程語言前調研清楚的,古語云:“知己知彼,才能百戰百勝” 都是一個道理。拿 Python 的版本來說,假設你沒有調研,你知道要學習它的 Python2 還是 Python3 嗎?網上的視頻資料都是有時效性的,依然一些視頻採用的還是 Python2 講解。Python2 系列在去年官方就已經放出,將在 2020 年停止維護的通知,既然這樣,那學習 Python2 還有必要嗎?肯定是強烈推薦學習 Python3 了呀,就不要浪費精力和時間在一個即將停止維護的版本上了。

2. 記筆記,畫思維導圖,查文檔

記筆記是一門學文,試問在高中上學時候,為什麼我們需要記筆記呢?就是因為知識量很大,不得不用筆記下來,等到用到的時候便於回顧。現在科學已經很進步了,筆記就不要採用傳統的方式進行記錄了,在學習的過程中,可以使用有道雲筆記這樣的工具來高效率記錄。一邊學習,一邊整理輸出自己的學習筆記。這樣的過程就像計算機處理程序一樣,輸入 -> 思考 -> 輸出

給你們分享下當初學 java 時記下的筆記,類似下面:

如何零基礎自學 Python?

如果有精力,可以下載一個 xmind 這樣的工具,畫出一個知識點的思維導圖。看過筆者之前文章的,想必看到過思維導圖的出現。思維導圖與文字筆記最大的差別,就是架構分層性

一份好的思維導圖可以很醒目的將知識點分層展現出來,如正則表達式的文章中:

如何零基礎自學 Python?

關於文檔查看這項必備技能,寫 Python 程序中必不可少。大部分時間都是在調用人家寫好的方法或者函數。如何有效的,準確的瞭解你想要的參數,以及參數內容是什麼?必須要學會查詢文檔去得到自己想要的,推薦官方文檔,比較權威且具有時效性。後面會把個人認為權威的文檔整理寫出來。

3. 多動手,鞏固基礎

要明白一個道理“實踐出真理”,往往許多初學者最大的問題就是:我看懂了,不用跟著敲肯定也沒問題!

如果你抱有這種心理,請務必注意,多動手!即使你感覺你會了,相信我,那只是艾賓浩斯記憶曲線在作怪

一個人剛學習時,信息輸入大腦後,遺忘也就隨之開始了。遺忘率隨時間的流逝而先快後慢,特別是在剛剛識記的短時間裡,遺忘最快,這就是著名的艾賓浩斯遺忘曲線。

剛開始學時,你會覺得百分之百會,你等過20分鐘再試試,等過1個小時後試試!!!所以說,初學者一定要動手敲!只有敲才是王道!敲代碼的過程中,伴隨著大腦回顧的記憶與思考,有時即使照著敲,也是會發生錯誤的,此時正是反思的好機會!切記!!!

就像昨天有位讀者正在練習,對著源代碼敲了一遍,意識到了自己打一遍錯誤百出,這一出錯,糾正之後,肯定收穫也不小!所以動手非常重要!為了保護個人隱私,抹去頭像了(別介意哈):

如何零基礎自學 Python?

當你真正動手敲代碼的時候,也許會覺得很浪費時間,但實際上這種學習方法大大提高了攝入知識的效率,以時間換空間的做法,何樂而不為呢?

4. 遇到問題時,合理的利用搜索引擎

在之前的文章中寫過一篇,如何高效的利用搜索引擎。不妨去看看其中介紹的搜索引擎,你在初學過程中遇到的問題,肯定有不少前輩們早已經遇到過了。遇到問題時,首先想到的就是通過搜索引擎去解決,如果自己盡力了還是沒有解決,再去請教別人。比如提問的網站,知乎、慕課網、CSDN等。。。

學習資源推薦

上面都是一些軟技能的乾貨分享,希望可以幫到正在入門學習 Python 的小夥伴們,下面是整理好的一些資料分享。

1. Python 零基礎類相關

入門最快的方法個人認為是看系統性的視頻,書籍是為了後續深入而進階用到的,所以筆者不會上來就推薦書籍。(當然你可以反駁,畢竟每個人不一樣,有人看視頻學習快,有人看書快)

IT相關良心網站,慕課網:

Ø 初識Python (廖雪峰老師主講):

https://www.imooc.com/learn/177

Ø Python進階 (廖雪峰老師主講):

https://www.imooc.com/learn/317

Ø Python3學習文檔 (廖雪峰老師個人站):

https://www.liaoxuefeng.com

入門並不需要太多其餘視頻了,看視頻時可以結合廖雪峰老師的個人網站去看文章。慕課網上每過一章節都有課後的小練習,強烈推薦新手朋友們動手實踐,軟技能中說到的,實踐出真理!

不難發現,筆者推薦的都是一個講師的系列教程。因為自學入門時,一定要有系統性,以及對講師思維的跟隨性。如果今天看這個老師的基礎視頻,明天又看那個老師的基礎視頻,最後很容易打磨掉自己的耐心,原地踏步,每個老師講課的思路都是不一樣的。認準一個官方公認即可。

2. Python 爬蟲方向

Python 爬蟲入門推薦:

一旦度過了初學者的門檻,接下來就是要做小項目去進行練手。首選的就是 Python 爬蟲方向的知識。不少人學習 Python 都是奔著爬蟲去的,其實不僅僅 Python 可以寫爬蟲,其它語言也都是可以寫的,編程重要的是思維。

學習爬蟲方向,你需要了解爬取網站的原理,因為爬蟲就是通過程序去採集網頁上你想要的信息,所以從網頁說起吧。通俗的舉例,你可以將網頁想象成一張大畫布,如果要在這個畫布上作畫,一般都是先有骨架,在對其進行細節修改,填充色彩之類的。

骨架對應的就是 HTML 相關的知識,細節、色彩則是 Js、css等。我們學爬蟲關注的是最終顯示的信息,故 css 可以不必瞭解。同時現在多數網頁數據通過 JSON 來進行“畫布”的動態填充。

HTML是用來描述網頁的一種語言。

JSON是一種輕量級的數據交換格式。

CSS決定了網頁的樣式。

JS決定了網頁與用戶的互動,是一門語言。

所以學習爬蟲之前,關於網頁信息相關需要了解的是:

Ø HTML教程式文檔:

http://www.w3school.com.cn/html/index.asp

Ø 菜鳥文檔式 JSON:

http://www.runoob.com/json/json-intro.html

關於 JSON ,可以回顧這篇文章 python小課堂25 - 你真的瞭解JSON嘛?

瞭解網頁的基礎架構後,你還需要了解一點點 http 協議的小知識。詳見:

Ø 關於 HTTP 協議,一篇就夠了:

https://www.cnblogs.com/ranyonsue/p/5984001.html

開題就說過,計算機學科是一門龐大的體系,要了解的知識非常多,在瞭解以上知識點後,接下來終於可以用我們的 Python 進行爬蟲小項目開始了,此時推薦的是中國慕課大學的公開課,從中你會學到requests庫、beautifulsoup庫、re庫的使用,需要注意的是第四周的課程可以不看,講的是 scrapy 爬蟲框架的使用,入門不需要看此門課程,後續有需要可以回來看。相關資料如下:

Ø 北理工的嵩天老師 Python 爬蟲課程:

https://www.icourse163.org/learn/BIT-1001870001?tid=1003245012#/learn/content

Ø requests庫中文官方文檔:

http://docs.python-requests.org/zh_CN/latest/

Ø BeautifulSoup庫中文官方文檔:

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/

如果你能靜心的學到這裡並且達到掌握的地步,恭喜你,對於 Python 這門語言來說,已經算是一個合格的入門級 Pythoner 了。

來條分割線,寫的太長了....


Python 爬蟲進階推薦:

完成以上說的僅僅是在爬蟲路上的初次冒險,隨著早期知乎以及各大論壇被爬,發展到現在各大網站已經有了良好的反爬(防止爬蟲爬取信息,簡稱反爬)機制。此時到了一個進階階段,你需要了解一些反爬機制,從而實現反反爬。

到此境界,首要學習應該從視頻轉向了,以書籍為主,輔以視頻。結合筆者看過的爬蟲系列,這裡推薦的是崔慶才的《Python3網絡爬蟲開發實戰》。崔大師算是爬蟲屆的過來人了,感興趣的可以瞭解下,非常年輕的一個博主,很厲害。早期寫爬蟲博客,後續整理成了這本書籍,資源如下:

Ø 《Python3網絡爬蟲開發實戰》pdf,公眾號後臺回覆:網絡爬蟲開發實戰 ,即可獲得百度雲資源。

Ø 崔慶才相關爬蟲教程視頻:

https://www.bilibili.com/video/av37497888?from=search&seid=3345792040934280385

在這個學習過程中,你會學習到各種爬蟲框架,以及反反爬的手法。爬蟲是有時效性的,所以部分案例完全有可能出現失敗的情況。

3. Python 後臺web方向

筆者早期就是做 Java web 方向開發的,開始覺得沒有必要學習相關知識,但是由於前一陣有些想法,想結合微信小程序做一些好玩的事情,選擇 Java 進行開發太笨重了,所以現在也在學習 Python web方向的知識,目前框架只學了 Flask 一個,因為非常輕巧,結合小程序開發起來上手應該非常快。

對web後端感興趣的,資料如下:

Ø flask中文文檔官網:

http://docs.jinkan.org/docs/flask/

Ø flask sql數據庫插件 SQLAlchemy 中文文檔官網:

http://www.pythondoc.com/flask-sqlalchemy/quickstart.html

Ø flask orm自動生成model層對象,項目官方地址:

https://github.com/ksindi/flask-sqlacodegen

4. Python 日常好玩的練手小項目

實驗樓相對慕課網而言,適合想找快速練手項目的一些人。上面充滿著各種好玩的項目:

Ø 實驗樓搜索 Python

https://www.shiyanlou.com/search?category=course&search=python

5. Python 面試題相關資源

推薦一個,目前在 github 上高達 9k star,筆者曾經看過一些,對找工作的人非常有幫助,地址如下:

Ø Python面試題

https://github.com/taizilongxu/interview_python

如何零基礎自學 Python?

6. 推薦書籍

知乎上有一篇文章,介紹了 Python 官方推薦的書籍,感興趣可以看下:

Ø 知乎官方書籍推薦:

https://zhuanlan.zhihu.com/p/34378860

7. 其他方向

在早期的開篇小課堂中提到過,Python 涉及的領域非常多,但是筆者結合自身而言,就涉及到上面的,所以其它領域不瞭解,也就不做推薦了。。。望諒解!

結語

本篇文章篇幅略長,筆者認為還是挺乾貨的,粗略的記錄下用時,大概花了 8 小時(一晚上 + 一下午)完成的一篇自學性資料文章,希望能幫到那些正在初學入門 Python 的朋友們!

由於本文中含有大部分鏈接,所以特意貼心的想了一下,將本文整理到了 word 中,便於電腦打開鏈接。公眾號後臺回覆:零基礎自學 即可獲得。

如果您覺得本篇文章確實幫到了您,歡迎點贊轉發,將好的資源分享給身邊正在學習 Python 的朋友們!您最大的支持,就是筆者寫下去的動力!


分享到:


相關文章: