歡迎光臨
每天分享高質量文章

零基礎如何自學Python

來自:Python之禪(微訊號:VTtalk)


這是昨天一位新加入知識星球的讀者問提的問題:機械工程專業零基礎如何自學Python?因為公眾號平時分享得最多的是 Python 中高階程式設計技巧,而面向初學者的入門教程會涉及得少一些,畢竟入門的內容在網上可以很輕鬆獲取而且資源也很多,所以平常我也會推薦一些書籍和課程。

程式員在普通人眼裡就像魔法師,一個指令碼輕鬆搶幾十盒月餅(雖然最後被開除),一個外掛解決春運搶票難題,幾十行程式碼搭建一個 Web 網站,用微信自動和妹紙聊天,在程式員眼裡這些事太稀鬆平常了,他們只不過是利用程式語言指揮計算機去自動完成一些需要人類重覆操作的繁瑣過程,等你會程式設計也就不覺得大驚小怪了。

Photo by PICSELI on Unsplash

有些人學習程式設計剛一開始頭腦發熱,買了很多書,下載很多影片,收藏上100G的資料,沒過幾天,熱情就褪去了,最後完成了從入門到放棄的全過程,究其原因主要是缺乏清晰的標的,沒有方向,或者方向不明確。如果你真正想把程式設計學好,那麼先想想為什麼要學程式設計,找一份程式設計工作,還是為瞭解決某個繁瑣問題,抑或是做個網站給自己用,還是寫個App,或者是爬個資料做分析,最怕的就是不知道為什麼而學,就算是為了擺脫焦慮而學習你也很難學好,很多人跑過來問我入門書看完了,接下來看什麼書?這就是典型的不知道學了有什麼樣,純粹為了學習而學習。

我們的目的是學以致用,用以促學

以學習爬蟲為例子,你學爬蟲的動機什麼?你的動機可以是從網上獲取一些資料做資料分析,例如,前段時間有位朋友找到我說,他想開一個廠房租賃公司,開之前需要選址,選址就要做市場調查,如果僅憑直覺沒有資料支撐,很難說哪個地方好,最好的辦法使用爬蟲去58這樣的平臺把相關的交易資料爬下來做資料分析,這就是一個很好的動機,而且標的非常明確。

Python 程式設計有很多方向,有網路爬蟲、資料分析、Web開發、測試開發、運維開發、機器學習、人工智慧、量化交易等等,各個方向都有特定的技能要求,比如學資料分析就要重點掌握統計學、SQL 等知識,搞運維就要非常熟悉 Linux 系統,所以你首先要清楚你選擇的是什麼方向,這個方向有哪些知識是需要重要掌握的。

以 Web 開發,重點要理解 HTTP 協議,要知道一個網頁從瀏覽器輸入URL開始到頁面呈現出內容的這個過程發生了什麼,然後要知道 Web 開發涉及的前端知識 HTML、JavaScript、CSS都是做什麼用的,然後就是學 Python,掌握基本的語法,常用資料型別、常用模組,就差不多可以去實現你的標的了,幾乎所有網站都需要用到資料庫,那麼你至少需要懂一點資料庫的知識,SQL 的增刪改查操作要會,程式寫完了,我們要部署,而系統一般都是執行在 Linux 環境,這個時候你還需要瞭解如何操作 Linux 命令。

接下來詳細介紹每個過程如何學習,以及所用到的學習資源和掌握的程度。

HTTP 協議是瀏覽器與伺服器通訊的媒介,使用者在瀏覽器輸入URL後瀏覽器會立即向伺服器發起一個請求,服務端接收請求後,從資料庫查詢到合適的資料,最終把資料傳回給瀏覽器。瀏覽器與伺服器之間的通訊嚴格遵守 HTTP 協議,如果你弄懂了 HTTP 協議,那麼也就弄懂了 Web 程式設計的基本原理,這裡推薦兩本關於 HTTP 的書。

  • 《圖解HTTP》

  • 《HTTP權威指南》

前者偏向於入門,後者適合進階閱讀,前期不一定要細讀,大概理解就行,以後你還會回過頭來學習的。

不管再忙都要堅持每天保持3個小時以上的練習時間

任何一個做 Web 開發的,離不開前端三劍客,這裡的三劍客是指 HTML、JavaScript、CSS。HTML 是骨架,CSS是外衣,JS控制前兩者,為了滿足更多使用者互動行為需要 JavaScript 來控制。下麵推薦的這幾本書對一個初入門的小白來說完全夠用,挑選一兩本就行,也不需要你全部看完,一本書看完前面的 60% 差不多就行了。

  • 《HTML5秘籍(第2版) 》

  • 《HTML5權威指南   》

  • 《Head First HTML與CSS(第2版)》

  • 《CSS權威指南(第3版)》

  • 《JavaScript DOM程式設計藝術(第2版)》

  • 《JavaScript高階程式設計(第3版)》

不管再忙都要堅持每天保持3個小時以上的練習時間

瞭解了基本的前端知識後,還是有必要瞭解一下前端的框架,如vue.js、boostrap、react、jquery 等等,雖然不一定每個框架都去學一遍,但至少要知道每個框架的作用,因為以後你不可能什麼都是自己重覆造輪子。

學完前端知識後,你現在應該能簡單的做出一些靜態頁面了,不過,現在幾乎所有的網站都是動態的(不是動畫效果,而是頁面資料是動態變化的),就是說資料都是根據登入使用者個性化推薦的,瀏覽器的請求傳送給伺服器,伺服器從資料庫查詢獲得資料傳回給瀏覽器,伺服器這邊的實現邏輯就需要用 Python 來實現,現在正是開始學 Python 的時候, Python 入門需要掌握的內容包括基本語法、資料結構、常用資料型別和常用的模組的api方法操作等。關於 Python 的書其實很多,這裡推薦幾本入門和進階。

入門

  • 《Python簡明教程》

  • 《Python程式設計:入門到實踐》

  • 《Python程式設計快速上手 : 讓繁瑣工作自動化》

進階

  • 《流暢的Python》

  • 《Python Cookbook》

  • 《Effective Python》

簡明教程就是一本很薄的小冊子,希望你可以認真讀完,後面兩本入門書,至少要把前面的基礎學完,至於後面的實戰,不學也罷,因為你的興趣點不一定在那裡。

不管再忙都要堅持每天保持3個小時以上的練習時間

現在差不多可以用 Python 來做很多事情了,但是你還不知道如何寫一個 Web 應用,因為你可能不知道怎麼運算元據庫,怎麼寫 SQL 陳述句,對資料庫進行增刪查改,所以,別急,先學學資料庫知識吧,MySQL 是最流行的資料庫系統,大公司都在用。對資料庫最基本的瞭解就是要知道什麼表、行、列、主鍵、外來鍵、索引這些概念,稍微複雜的就是查詢,有分組查詢,聯合查詢等各種條件查詢,你需要掌握這些基本操作。

  • 《SQL基礎教程》

  • 《MySQL必知必會》

這兩本數都是面向初學者的基礎教程,挑選一本就夠了,除了MySQL,還有PostgreSQL、Oralce、SQL Server 都屬於關係型資料庫,另外也有 MongoDB、Redis 這樣的非關係型資料庫,你可以相應的都去瞭解一下,不一定非要馬上就學。學完資料庫之後,你要想的一個問題就是如何用 Python 運算元據庫的 CRUD,雖然沒有專門的書籍講這個,但是網上有很多教程寫如何用 Python 操作 MySQL 的,所以,學會使用搜索引擎非常重要,因為以後很多時候都是面向 Google 程式設計。為了防止忘記前面的內容,也要不時地複習、練習前面的內容。

不管再忙都要堅持每天保持3個小時以上的練習時間

現在你差不多所有的基礎知識都有所掌握,終於可以磨刀霍霍迫不及待開始第一個真正屬於你自己作品的開發之旅了,因為前面你已經掌握了 HTTP 協議,所以現在你可以選擇一個 Web 框架,基於這個框架來開發我們的 Web 網站,這裡推薦使用 Flask,這個框架比較流行,然後又是一個比較輕量級的框架,非常靈活。學 Flask 看狗書《Flask Web開發:基於Python的Web應用開發實戰》。一個完整的 Web 網站從前端 HTML、CSS、JavaScript再到後端 Flask,資料庫連線、CRUD操作基本都能跑通了,專案差不多基本成型,只剩下最後一個步驟,就是如何把做好的程式釋出到伺服器讓它一直穩定執行,持續提供服務。

通常,我們的 Web 程式會部署在 Linux 伺服器,很少有用 Windows 作伺服器的,所以,熟悉 Linux 系統還是非常有必要的,Linux 要掌握到什麼程度呢?當然,至少要會基本命令操作才行,推薦下麵這幾本書

  • 《快樂的Linux命令列》

  • 《鳥哥的Linux私房菜》

  • 《Linux命令列與shell指令碼程式設計大全》

熟悉完 Linux,程式也部署好了,其實還差一步,網站需要一個好記的域名方便別人訪問,畢竟沒人能記住你的 IP,所以,後期的域名購買,HTTPS 配置,Nginx 配置,都可以在網上找到相應的答案。

不管再忙都要堅持每天保持3個小時以上的練習時間

學程式設計就是一個打怪升級的過程,這個過程一定是曲折的,但前途是光明的,痛並快樂著。

最後祝你升級成功。


●本文編號321,以後想閱讀這篇文章直接輸入321即可

●輸入m獲取到文章目錄

推薦↓↓↓

Linux學習

更多推薦18個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂