1. 程式人生 > >零基礎學Python,這是阿里Python8年開發經驗寫給你的學習路線圖

零基礎學Python,這是阿里Python8年開發經驗寫給你的學習路線圖

今天給大家分享一位前輩整理的一個Python web學習路線。這位前輩由於有程式設計基礎,所以採用了自學Python的方式。學完後主要做後端開發。希望對你有所啟發。

整理的一個 python web 學習路線,這基本就是筆者自學後做後端的學習路線。

入門基礎

程式語言: Python

Python入門相對容易又可以幹很多事(網站,運維,資料,爬蟲等),是一門方便的工具語言。

2016年TIOBE排名顯示Python已經名列第四,成為指令碼語言之首。 國外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, Quora等知名應用一開始都是基於Python構建,國內的豆瓣,知乎,果殼,餓了麼,搜狐等也是Python應用的典型。

這也給了國內Python開發者一陣強心劑,Python的生態環境可以支撐起重量級的 產品。這裡不想挑起語言之爭,php,nodejs,java,ruby等都有豐富的生態環境。

不過目前來看,技術選型用Python在招聘、學習、培訓、敏捷開發等方面還是一個比較折中的選擇(主要在於人,而不是語言)。 python,ruby之類的動態語言優勢在於其生產力,你能在極短時間內就搭建出原型從而贏得產品競爭。 推薦一下幾本個人認為比較好的Python書籍:

當然在學習Python的道路上難免會遇到各種困難,沒有好的學習資料,我們如何學習Python呢?所以小編這裡有一份學習資料,新增小編學習交流群813542856即可。

•《python-guide》 requests作者寫的guide,偏向工程方面

•《use python》 use python

•《A Byte of Python》 一百多頁的小書,可以快速熟悉Python語言。

•《Python核心程式設計》 比較全面的Python書籍,介紹了Python語言的方方面面。

•《Dive Into Python》 一本免費的開源書

•《Fluent Python》 Python進階的好書,沒有之一,涉及了很多Python高階主題和實現特性。

•《Python3 Cookbook》 Python進階讀物,彙集了很多技巧。

•《Python高階程式設計》 豆瓣工程師董偉明先生寫的python高階程式設計 ppt

當然還有Python的官方文件作為參考,不過有些文件比較晦澀,還是推薦書籍入門。網上目前也可以搜到很多免費的電子書。 如果有時間可以看看國內廖雪峰寫的Python教程,簡單易懂,就是跳躍有點大。

在學習python中有任何困難不懂的可以加入我的python交流學習秋秋群:629614370,多多交流問題,互幫互助,群裡有不錯的學習教程和開發工具。學習python有任何問題(學習方法,學習效率,如何就業),可以隨時來諮詢我。

計算機網路

對於應用開發者來說大部分時間可能不太會接觸特別底層的問題,但是瞭解網路的執行原理還是必要的。網上有個面試題 從輸入URL 到頁面載入完成的過程中都發生了什麼事情? 如果對其中大部分的概念都瞭解就算是入門了。網路相關書籍可以隨便找一本看看。Http協議對於web開發者來說比較重要,需要深入瞭解。推薦書籍:

• 《圖解Http》 一本小白入門Http協議的好書,有大量圖片示例。

• 《Http權威指南》 Http協議最權威的講解,大部頭著作,可以看看最基礎的部分。

• 《網路爬蟲教程》 非常不錯的爬蟲教程。感謝原作者,其實感覺這種把學習的內容總結成小書的方式很好。

• 《Python3 網路爬蟲實戰》

Linux系統

大部分Python應用都是跑在Linux伺服器上的,大部分開源伺服器軟體使用的也是linux系統,即使日常工作不使用linux,一些基本的linux命令也要了解。 比如常用的檔案操作,目錄操作,程序操作等。你可以使用類unix系統mac或者linux版本ubuntu作為學習環境。 推薦:

•《Linux工具快速教程》

•《CONQUERING THE COMMAND LINE》 掌握這上面的命令基本就可以滿足日常需求了。

•《鳥哥的Linux私房菜.基礎學習篇》 淺顯易懂,入門Linux命令的好書。

資料庫

現在網站業務後端用得比較多的有三種類型的資料庫,關係型資料庫(mysql等),文件型資料庫(mongodb等),和記憶體型資料庫(redis等)。三種資料庫各有優勢和特色,後端程式設計師需要了解下不同型別資料庫的使用方法和應用場景,靈活應用到後端程式碼中。關於各種資料庫網上已經有不少資料,讀者可以自行搜尋學習,比較重要的是 mysql 和 redis。

python相關庫的使用

python一大優勢在於數量豐富的庫,靈活使用各種python庫能幫助我們快速做出產品。作為web開發者,你需要了解常用python庫和框架的使用,比如django/flask/tornado/sqlalchemy/requests/pandas等。

版本控制

目前最流行的應該就是git了。版本控制工具是多人協作必不可少的工具,入門的程式設計師需要掌握基本的git命令,可以把github作為個人練習的工具。

• 《語義化版本控制》

• 《Pro Git》

Web 伺服器

Nginx 目前很流行,使用比較廣泛,推薦學習和使用。熟悉 LNMP 架構(Linux + Nginx + Mysql + Python),目前很多公司採用了都是多語言+微服務架構。

前端知識

基本的 html,css,java 需要有所瞭解。很多後端工程師需要做一些工具或者管理後臺之類的,瞭解前端知識會有幫助。

學習和搜尋能力

初學者碰到的大部分技術問題都是可以通過 google 解決的,用好 google/stackoverflow/github 和各種技術論壇、牛人部落格等能幫助你瞭解最新的技術。

專業素養

公司做專案不是自己過家家,需要你具備寫文件,註釋,單元測試,溝通表達、與人協作、處理業務的能力。如果你現在還不瞭解一個正規python專案都有哪些組建構成,請去github克隆一份知名的程式碼倉庫,花點時間仔細分析下它的專案結構和原始碼。 比如著名網站reddit程式碼已經開源,大部分python實現,可以參考下。

另外很多著名的python庫,比如requests/flask等也可以作為參考。從筆者短暫的從業經歷來看,大部分自學python的人不怎麼遵守程式碼規範(pep8), 不知道或者不重視單元測試(寫個函式print下就覺得OK了),不知道怎麼寫註釋和文件(docstring聽過嗎?)。所以希望學習python的你能遵守工程實踐,具備良好的職業素養和編碼習慣,推薦閱讀《程式碼大全》《程式設計匠藝》之類的工程相關的書。

•《程式設計師的職業素養》

後端技術棧

對於技能需求可以在拉勾上搜一下Python的職位,看看各個公司對Python的要求。或者你可以寫個拉勾網的爬蟲,對資料做一個簡單的統計,筆者當初找工作就是這麼幹的。

另外,真正做專案還需要你熟悉python的各種庫和框架,比如django/flask/tornado/requests/sqlalchemy/unittest/celery等等,掌握了合適的工具才能快速上手做東西,公司恨不得你第一天入職第二天就能寫專案。

所以,在你入了門以後請儘快熟悉python web的技術棧。公司不管你會什麼演算法,只在乎你的生產力(有時候技術本身不重要,它的價值在於對業務、使用者、顧客的貢獻)。

推薦一些文章供參考:

• 《全棧增長工程師指南》

• 《web開發路線圖》

• 《後端都要學習什麼?》

• 《PYTHON招聘需求與技能體系》

• 《PYTHON後端相關技術/工具棧》

自學坑多,如果希望快速入門,還是老師帶領最靠譜!