今天給大家分享一位前輩整理的一個(gè)Python web學(xué)習(xí)路線(xiàn)。這位前輩由于有編程基礎(chǔ),所以采用了自學(xué)Python的方式。學(xué)完后主要做后端開(kāi)發(fā)。希望對(duì)你有所啟發(fā)。
創(chuàng)新互聯(lián)長(zhǎng)期為1000+客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏(yíng)平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為長(zhǎng)白企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),長(zhǎng)白網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
整理的一個(gè) python web 學(xué)習(xí)路線(xiàn),這基本就是筆者自學(xué)后做后端的學(xué)習(xí)路線(xiàn)。
入門(mén)基礎(chǔ)
編程語(yǔ)言: Python
Python入門(mén)相對(duì)容易又可以干很多事(網(wǎng)站,運(yùn)維,數(shù)據(jù),爬蟲(chóng)等),是一門(mén)方便的工具語(yǔ)言。
2016年TIOBE排名顯示Python已經(jīng)名列第四,成為腳本語(yǔ)言之首。 國(guó)外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, Quora等知名應(yīng)用一開(kāi)始都是基于Python構(gòu)建,國(guó)內(nèi)的豆瓣,知乎,果殼,餓了么,搜狐等也是Python應(yīng)用的典型。
如果你想要學(xué)好Python可以加入一個(gè)組織,這樣大家學(xué)習(xí)的話(huà)就比較方便,還能夠共同交流和分享資料,給你推薦一個(gè)學(xué)習(xí)的組織學(xué)習(xí)有可學(xué)習(xí)有困難或者想獲取Python資料請(qǐng)加Python學(xué)習(xí)Q群629440234,互相學(xué)習(xí),互相分享學(xué)習(xí)資料
這也給了國(guó)內(nèi)Python開(kāi)發(fā)者一陣強(qiáng)心劑,Python的生態(tài)環(huán)境可以支撐起重量級(jí)的 產(chǎn)品。這里不想挑起語(yǔ)言之爭(zhēng),php,nodejs,java,ruby等都有豐富的生態(tài)環(huán)境。
不過(guò)目前來(lái)看,技術(shù)選型用Python在招聘、學(xué)習(xí)、培訓(xùn)、敏捷開(kāi)發(fā)等方面還是一個(gè)比較折中的選擇(主要在于人,而不是語(yǔ)言)。 python,ruby之類(lèi)的動(dòng)態(tài)語(yǔ)言?xún)?yōu)勢(shì)在于其生產(chǎn)力,你能在極短時(shí)間內(nèi)就搭建出原型從而贏(yíng)得產(chǎn)品競(jìng)爭(zhēng)。 推薦一下幾本個(gè)人認(rèn)為比較好的Python書(shū)籍:
?《python-guide》 requests作者寫(xiě)的guide,偏向工程方面
?《use python》 use python
?《A Byte of Python》 一百多頁(yè)的小書(shū),可以快速熟悉Python語(yǔ)言。
?《Python核心編程》 比較全面的Python書(shū)籍,介紹了Python語(yǔ)言的方方面面。
?《Dive Into Python》 一本免費(fèi)的開(kāi)源書(shū)
?《Fluent Python》 Python進(jìn)階的好書(shū),沒(méi)有之一,涉及了很多Python高級(jí)主題和實(shí)現(xiàn)特性。
?《Python3 Cookbook》 Python進(jìn)階讀物,匯集了很多技巧。
?《Python高級(jí)編程》 豆瓣工程師董偉明先生寫(xiě)的python高級(jí)編程 ppt
當(dāng)然還有Python的官方文檔作為參考,不過(guò)有些文檔比較晦澀,還是推薦書(shū)籍入門(mén)。網(wǎng)上目前也可以搜到很多免費(fèi)的電子書(shū)。 如果有時(shí)間可以看看國(guó)內(nèi)廖雪峰寫(xiě)的Python教程,簡(jiǎn)單易懂,就是跳躍有點(diǎn)大。
計(jì)算機(jī)網(wǎng)絡(luò)
對(duì)于應(yīng)用開(kāi)發(fā)者來(lái)說(shuō)大部分時(shí)間可能不太會(huì)接觸特別底層的問(wèn)題,但是了解網(wǎng)絡(luò)的運(yùn)行原理還是必要的。網(wǎng)上有個(gè)面試題 從輸入U(xiǎn)RL 到頁(yè)面加載完成的過(guò)程中都發(fā)生了什么事情? 如果對(duì)其中大部分的概念都了解就算是入門(mén)了。網(wǎng)絡(luò)相關(guān)書(shū)籍可以隨便找一本看看。Http協(xié)議對(duì)于web開(kāi)發(fā)者來(lái)說(shuō)比較重要,需要深入了解。推薦書(shū)籍:
? 《圖解Http》 一本小白入門(mén)Http協(xié)議的好書(shū),有大量圖片示例。
? 《Http權(quán)威指南》 Http協(xié)議最權(quán)威的講解,大部頭著作,可以看看最基礎(chǔ)的部分。
? 《網(wǎng)絡(luò)爬蟲(chóng)教程》 非常不錯(cuò)的爬蟲(chóng)教程。感謝原作者,其實(shí)感覺(jué)這種把學(xué)習(xí)的內(nèi)容總結(jié)成小書(shū)的方式很好。
? 《Python3 網(wǎng)絡(luò)爬蟲(chóng)實(shí)戰(zhàn)》
Linux系統(tǒng)
大部分Python應(yīng)用都是跑在Linux服務(wù)器上的,大部分開(kāi)源服務(wù)器軟件使用的也是linux系統(tǒng),即使日常工作不使用linux,一些基本的linux命令也要了解。 比如常用的文件操作,目錄操作,進(jìn)程操作等。你可以使用類(lèi)unix系統(tǒng)mac或者linux版本ubuntu作為學(xué)習(xí)環(huán)境。 推薦:
?《Linux工具快速教程》
?《CONQUERING THE COMMAND LINE》 掌握這上面的命令基本就可以滿(mǎn)足日常需求了。
?《鳥(niǎo)哥的Linux私房菜.基礎(chǔ)學(xué)習(xí)篇》 淺顯易懂,入門(mén)Linux命令的好書(shū)。
數(shù)據(jù)庫(kù)
現(xiàn)在網(wǎng)站業(yè)務(wù)后端用得比較多的有三種類(lèi)型的數(shù)據(jù)庫(kù),關(guān)系型數(shù)據(jù)庫(kù)(MySQL等),文檔型數(shù)據(jù)庫(kù)(MongoDB等),和內(nèi)存型數(shù)據(jù)庫(kù)(redis等)。三種數(shù)據(jù)庫(kù)各有優(yōu)勢(shì)和特色,后端程序員需要了解下不同類(lèi)型數(shù)據(jù)庫(kù)的使用方法和應(yīng)用場(chǎng)景,靈活應(yīng)用到后端代碼中。關(guān)于各種數(shù)據(jù)庫(kù)網(wǎng)上已經(jīng)有不少資料,讀者可以自行搜索學(xué)習(xí),比較重要的是 mysql 和 redis。
python相關(guān)庫(kù)的使用
python一大優(yōu)勢(shì)在于數(shù)量豐富的庫(kù),靈活使用各種python庫(kù)能幫助我們快速做出產(chǎn)品。作為web開(kāi)發(fā)者,你需要了解常用python庫(kù)和框架的使用,比如django/flask/tornado/sqlalchemy/requests/pandas等。
版本控制
目前最流行的應(yīng)該就是git了。版本控制工具是多人協(xié)作必不可少的工具,入門(mén)的程序員需要掌握基本的git命令,可以把github作為個(gè)人練習(xí)的工具。
? 《語(yǔ)義化版本控制》
? 《Pro Git》
Web 服務(wù)器
Nginx 目前很流行,使用比較廣泛,推薦學(xué)習(xí)和使用。熟悉 LNMP 架構(gòu)(Linux + Nginx + Mysql + Python),目前很多公司采用了都是多語(yǔ)言+微服務(wù)架構(gòu)。
前端知識(shí)
基本的 html,css,java 需要有所了解。很多后端工程師需要做一些工具或者管理后臺(tái)之類(lèi)的,了解前端知識(shí)會(huì)有幫助。
學(xué)習(xí)和搜索能力
初學(xué)者碰到的大部分技術(shù)問(wèn)題都是可以通過(guò) google 解決的,用好 google/stackoverflow/github 和各種技術(shù)論壇、牛人博客等能幫助你了解最新的技術(shù)。
專(zhuān)業(yè)素養(yǎng)
公司做項(xiàng)目不是自己過(guò)家家,需要你具備寫(xiě)文檔,注釋?zhuān)瑔卧獪y(cè)試,溝通表達(dá)、與人協(xié)作、處理業(yè)務(wù)的能力。如果你現(xiàn)在還不了解一個(gè)正規(guī)python項(xiàng)目都有哪些組建構(gòu)成,請(qǐng)去github 復(fù)制 一份知名的代碼倉(cāng)庫(kù),花點(diǎn)時(shí)間仔細(xì)分析下它的項(xiàng)目結(jié)構(gòu)和源代碼。 比如著名網(wǎng)站reddit代碼已經(jīng)開(kāi)源,大部分python實(shí)現(xiàn),可以參考下。
另外很多著名的python庫(kù),比如requests/flask等也可以作為參考。從筆者短暫的從業(yè)經(jīng)歷來(lái)看,大部分自學(xué)python的人不怎么遵守代碼規(guī)范(pep8), 不知道或者不重視單元測(cè)試(寫(xiě)個(gè)函數(shù)print下就覺(jué)得OK了),不知道怎么寫(xiě)注釋和文檔(docstring聽(tīng)過(guò)嗎?)。所以希望學(xué)習(xí)python的你能遵守工程實(shí)踐,具備良好的職業(yè)素養(yǎng)和編碼習(xí)慣,推薦閱讀《代碼大全》《編程匠藝》之類(lèi)的工程相關(guān)的書(shū)。
?《程序員的職業(yè)素養(yǎng)》
后端技術(shù)棧
對(duì)于技能需求可以在拉勾上搜一下Python的職位,看看各個(gè)公司對(duì)Python的要求?;蛘吣憧梢詫?xiě)個(gè)拉勾網(wǎng)的爬蟲(chóng),對(duì)數(shù)據(jù)做一個(gè)簡(jiǎn)單的統(tǒng)計(jì),筆者當(dāng)初找工作就是這么干的。
另外,真正做項(xiàng)目還需要你熟悉python的各種庫(kù)和框架,比如django/flask/tornado/requests/sqlalchemy/unittest/celery等等,掌握了合適的工具才能快速上手做東西,公司恨不得你第一天入職第二天就能寫(xiě)項(xiàng)目。
所以,在你入了門(mén)以后請(qǐng)盡快熟悉python web的技術(shù)棧。公司不管你會(huì)什么算法,只在乎你的生產(chǎn)力(有時(shí)候技術(shù)本身不重要,它的價(jià)值在于對(duì)業(yè)務(wù)、用戶(hù)、顧客的貢獻(xiàn))。
推薦一些文章供參考:
? 《全棧增長(zhǎng)工程師指南》
? 《web開(kāi)發(fā)路線(xiàn)圖》
? 《后端都要學(xué)習(xí)什么?》
? 《PYTHON招聘需求與技能體系》
? 《PYTHON后端相關(guān)技術(shù)/工具?!?/p>
自學(xué)坑多,如果希望快速入門(mén),還是老師帶領(lǐng)最靠譜!