2021-03-15 分類: 網(wǎng)站建設(shè)
Python是最容易入門的編程語言,沒有之一。如果初學(xué)者接觸的第一門語言是C或者C++,對(duì)他們來說最難的不是語法,而是容易出現(xiàn)內(nèi)存泄漏、指針等問題。有時(shí)候排查這些問題對(duì)初學(xué)者的打擊很大,尤其是沒掌握排查BUG技巧時(shí)。
如果初學(xué)者接觸的第一門語言是Python,學(xué)習(xí)曲線則會(huì)平滑得多,掌握一些基本語法和Python內(nèi)置的數(shù)據(jù)結(jié)構(gòu),已經(jīng)可以上手寫一些小工具或者小型應(yīng)用。這對(duì)初學(xué)者來說,非常重要。因?yàn)閷W(xué)習(xí)的過程是一個(gè)突破舒適區(qū)的過程,會(huì)面臨很多痛苦,如果學(xué)習(xí)過程得不到激勵(lì),很容易半途而廢,類似我們開玩笑說的「從入門到放棄」。Python還有很多優(yōu)點(diǎn):上手快,第三方庫豐富,資料豐富,很容易做出“可見可得”的應(yīng)用。比如你要拿C或者C++做web服務(wù),這上手門檻就有點(diǎn)高了。所以很多工科學(xué)生,甚至是科班學(xué)生會(huì)問學(xué)了C/C++到底有什么用,因?yàn)橄肷鲜肿鲆恍?ldquo;可見可得”的應(yīng)用太難。Python就大不同,你想搞Web開發(fā)?上來一個(gè)Flask框架立馬就擼。想搞點(diǎn)數(shù)據(jù)分析?上來一個(gè)Panda+數(shù)據(jù)可視化,擼起來輕松愉快甚有快感。想抓取什么數(shù)據(jù)?你自己基于request擼一個(gè)小爬蟲采集點(diǎn)網(wǎng)站信息,app信息都不是什么難事。
也是因?yàn)檫@樣,學(xué)習(xí)Python的過程幾乎接近“無痛”,有很好的學(xué)習(xí)正反饋過程,學(xué)一點(diǎn)知識(shí)就能做一點(diǎn)小東西,能看得到自己成長(zhǎng)和進(jìn)步。安利了這么多好處,來看看學(xué)Python分幾個(gè)階段吧。
Python最基本的語言特性和語法:
針對(duì)面向?qū)ο筮@一塊需要重點(diǎn)的講一下,為什么會(huì)有面向?qū)ο??以及我們?nèi)绾卧O(shè)計(jì)面向?qū)ο笙到y(tǒng)?這個(gè)思考的過程有助于你理解面向?qū)ο缶幊趟枷搿?/p>
可以說「一切皆對(duì)象」這句話普適性是很強(qiáng)的,大家都在玩的王者農(nóng)藥,里面每一個(gè)對(duì)戰(zhàn)英雄,每一個(gè)野怪,每一張地圖都是通過面向?qū)ο蟮乃枷霕?gòu)建起來的。如果一開始你覺得太復(fù)雜,大可把用「分而治之」的思想把復(fù)雜的對(duì)象break down,分解成多個(gè)簡(jiǎn)單合理的對(duì)象。任何復(fù)雜的系統(tǒng)都可以由若干個(gè)簡(jiǎn)單可靠的系統(tǒng)組成,多個(gè)簡(jiǎn)單可靠的系統(tǒng)有序地組織起來是可以實(shí)現(xiàn)強(qiáng)大功能的。舉個(gè)例子,還拿農(nóng)藥來說,”英雄“是可以作為一個(gè)基類的對(duì)吧,每個(gè)英雄都有血條,移動(dòng)速度,AD,AP,物防,法扛等等。李白平A后裔一下,這是對(duì)象之間的通信(或者說交互)。后裔放大打中李白,李白眩暈,這一系列的觸發(fā)過程都可以通過面向?qū)ο髞斫!?/p>
在掌握了語法特點(diǎn),掌握了面向?qū)ο蟮乃枷胫?,我們?yīng)該能夠在控制臺(tái)(windows或者mac的命令行)里邊實(shí)現(xiàn)一個(gè)有意思的程序。這個(gè)程序應(yīng)該解決現(xiàn)實(shí)生活中的一個(gè)實(shí)際問題。比如出現(xiàn)一個(gè)職位的發(fā)布和管理系統(tǒng)。有以下功能。我們可以錄入職位信息。保存到文件上。我們還可以加載職位信息。按多種條件去查詢,比如按關(guān)鍵字按城市。按薪資范圍。按商圈工作年限等等。
在做這個(gè)的過程中,自己需要設(shè)計(jì)一個(gè)很好的面向?qū)ο笙到y(tǒng)。也把Python里常用的語言基本特性都用到了。達(dá)到這個(gè)階段算是勉強(qiáng)及格了吧,不過僅僅是在語言掌握層面。如果想當(dāng)一個(gè)合格的研發(fā)工程師,還需要掌握很多其他技能。
現(xiàn)在的開發(fā)大部分是基于web的,比如app要調(diào)web接口,pc端肯定也要調(diào)web接口,所以我們不能光在控制臺(tái)里面玩。這個(gè)時(shí)候需要了解,http協(xié)議和Python web開發(fā)。我們可以重做前面提到的求職發(fā)布系統(tǒng),學(xué)習(xí)基于Python web如何實(shí)現(xiàn)。這個(gè)時(shí)候你需要實(shí)現(xiàn)若干個(gè)接口:
用戶端:
篩選職位列表
管理后臺(tái):
為了實(shí)現(xiàn)以上接口,你需要弄清楚什么是GET,什么是POST請(qǐng)求,什么場(chǎng)景下用GET,什么場(chǎng)景用POST。你還需要明白一個(gè)Python web開發(fā)框架,要明白一個(gè)http請(qǐng)求到了web框架之后,框架做了什么事情,如何在里面實(shí)現(xiàn)業(yè)務(wù)邏輯。哪些數(shù)據(jù)是服務(wù)共享的,哪些數(shù)據(jù)是用戶/請(qǐng)求獨(dú)享的。
此外,應(yīng)該學(xué)會(huì)Python如何操作數(shù)據(jù)庫實(shí)現(xiàn)增刪改查,大部分的任務(wù)都離不開增刪改查。比如我提到的發(fā)布職位就是create的過程,更新就是update,還有刪除是delete,讀是read。江湖有一個(gè)戲稱CRUD boy。
如果能順利度過進(jìn)階階段,你應(yīng)該能舉一反三實(shí)現(xiàn)其他類似系統(tǒng)了。比如現(xiàn)在很火的分銷,拼團(tuán),還有新聞Feeds等等。
好像我沒怎么提數(shù)據(jù)結(jié)構(gòu)和算法,這個(gè)要看個(gè)人追求。如果你要在最短時(shí)間內(nèi)學(xué)會(huì)Python開發(fā),恐怕是沒時(shí)間學(xué)好數(shù)據(jù)結(jié)構(gòu)和算法了,能掌握自帶的數(shù)據(jù)結(jié)構(gòu)用法就行。如果你的學(xué)習(xí)時(shí)間充足,我的建議是一定要學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。為了以后長(zhǎng)期的發(fā)展,為了人民幣,一定要學(xué)好數(shù)據(jù)結(jié)構(gòu)和算法,我簡(jiǎn)直苦口婆心地勸啊。
最后一個(gè)階段是實(shí)際的工業(yè)經(jīng)驗(yàn)。這個(gè)階段,你應(yīng)該對(duì)公司用的基礎(chǔ)架構(gòu),如RPC,數(shù)據(jù)庫緩存消息系統(tǒng)中間件,爛熟于心。同時(shí)應(yīng)該掌握最基本的系統(tǒng)設(shè)計(jì)的技巧。知道如何根據(jù)一個(gè)實(shí)際需求,設(shè)計(jì)一個(gè)高可用,高性能高擴(kuò)展性的系統(tǒng)。
實(shí)際上我覺得第一個(gè)階段是最容易的,第二個(gè)階段會(huì)碰到一些坑,有時(shí)候不好解決。在第二個(gè)階段,你可能需要比較好的自學(xué)能力,或者有一個(gè)好的學(xué)長(zhǎng)導(dǎo)師。第三個(gè)階段需要比較體系化的訓(xùn)練和思考。
如果說你的系統(tǒng)設(shè)計(jì)能力ok,甚至經(jīng)驗(yàn)豐富,再加上你不錯(cuò)的算法,你肯定有一份好工作,薪資可能說多了顯浮夸,但優(yōu)秀的應(yīng)屆生很多人超過30w,甚至50w已經(jīng)是常態(tài)了。工作3-5年的過百萬的也大有人在。
這個(gè)時(shí)代,程序員雖然辛苦了一點(diǎn),但無疑碰上最好的時(shí)代了。
PS:辛苦是因?yàn)橹R(shí)更新很快,行業(yè)發(fā)展也很快,逼著程序員也要往前走。保持學(xué)習(xí)才是從業(yè)者的基本素養(yǎng),而不是掌握某門語言某門技術(shù)。
當(dāng)前文章:學(xué)習(xí)Python的建議
文章鏈接:http://m.rwnh.cn/news3/105253.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站建設(shè)、虛擬主機(jī)、品牌網(wǎng)站制作、商城網(wǎng)站、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容