摘要:如果初學(xué)者接觸的第一門語言是,學(xué)習(xí)曲線則會平滑得多,掌握一些基本語法和內(nèi)置的數(shù)據(jù)結(jié)構(gòu),已經(jīng)可以上手寫一些小工具或者小型應(yīng)用。如果你的學(xué)習(xí)時間充足,我的建議是一定要學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。
前言
Python是最容易入門的編程語言,沒有之一。如果初學(xué)者接觸的第一門語言是C或者C++,對他們來說最難的不是語法,而是容易出現(xiàn)內(nèi)存泄漏、指針等問題。有時候排查這些問題對初學(xué)者的打擊很大,尤其是沒掌握排查BUG技巧時。
如果初學(xué)者接觸的第一門語言是Python,學(xué)習(xí)曲線則會平滑得多,掌握一些基本語法和Python內(nèi)置的數(shù)據(jù)結(jié)構(gòu),已經(jīng)可以上手寫一些小工具或者小型應(yīng)用。這對初學(xué)者來說,非常重要。因為學(xué)習(xí)的過程是一個突破舒適區(qū)的過程,會面臨很多痛苦,如果學(xué)習(xí)過程得不到激勵,很容易半途而廢,類似我們開玩笑說的「從入門到放棄」。Python還有很多優(yōu)點:上手快,第三方庫豐富,資料豐富,很容易做出“可見可得”的應(yīng)用。比如你要拿C或者C++做web服務(wù),這上手門檻就有點高了。所以很多工科學(xué)生,甚至是科班學(xué)生會問學(xué)了C/C++到底有什么用,因為想上手做一些“可見可得”的應(yīng)用太難。Python就大不同,你想搞Web開發(fā)?上來一個Flask框架立馬就擼。想搞點數(shù)據(jù)分析?上來一個Panda+數(shù)據(jù)可視化,擼起來輕松愉快甚有快感。想抓取什么數(shù)據(jù)?你自己基于request擼一個小爬蟲采集點網(wǎng)站信息,app信息都不是什么難事。
也是因為這樣,學(xué)習(xí)Python的過程幾乎接近“無痛”,有很好的學(xué)習(xí)正反饋過程,學(xué)一點知識就能做一點小東西,能看得到自己成長和進步。安利了這么多好處,來看看學(xué)Python分幾個階段吧。
1.基礎(chǔ)知識Python最基本的語言特性和語法:
變量
數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)
輸入和輸出
運算符、表達式、語句
控制流(順序控制,選擇控制和循環(huán)控制)
面向過程編程
面向?qū)ο缶幊?/p>
異常處理
組織代碼
標準庫、第三方庫
針對面向?qū)ο筮@一塊需要重點的講一下,為什么會有面向?qū)ο螅恳约拔覀內(nèi)绾卧O(shè)計面向?qū)ο笙到y(tǒng)?這個思考的過程有助于你理解面向?qū)ο缶幊趟枷搿?/p>
可以說「一切皆對象」這句話普適性是很強的,大家都在玩的王者農(nóng)藥,里面每一個對戰(zhàn)英雄,每一個野怪,每一張地圖都是通過面向?qū)ο蟮乃枷霕?gòu)建起來的。如果一開始你覺得太復(fù)雜,大可把用「分而治之」的思想把復(fù)雜的對象break down,分解成多個簡單合理的對象。任何復(fù)雜的系統(tǒng)都可以由若干個簡單可靠的系統(tǒng)組成,多個簡單可靠的系統(tǒng)有序地組織起來是可以實現(xiàn)強大功能的。舉個例子,還拿農(nóng)藥來說,”英雄“是可以作為一個基類的對吧,每個英雄都有血條,移動速度,AD,AP,物防,法扛等等。李白平A后裔一下,這是對象之間的通信(或者說交互)。后裔放大打中李白,李白眩暈,這一系列的觸發(fā)過程都可以通過面向?qū)ο髞斫!?/p>
在掌握了語法特點,掌握了面向?qū)ο蟮乃枷胫螅覀儜?yīng)該能夠在控制臺(windows或者mac的命令行)里邊實現(xiàn)一個有意思的程序。這個程序應(yīng)該解決現(xiàn)實生活中的一個實際問題。比如出現(xiàn)一個職位的發(fā)布和管理系統(tǒng)。有以下功能。我們可以錄入職位信息。保存到文件上。我們還可以加載職位信息。按多種條件去查詢,比如按關(guān)鍵字按城市。按薪資范圍。按商圈工作年限等等。
在做這個的過程中,自己需要設(shè)計一個很好的面向?qū)ο笙到y(tǒng)。也把Python里常用的語言基本特性都用到了。達到這個階段算是勉強及格了吧,不過僅僅是在語言掌握層面。如果想當一個合格的研發(fā)工程師,還需要掌握很多其他技能。
2. 進階的階段現(xiàn)在的開發(fā)大部分是基于web的,比如app要調(diào)web接口,pc端肯定也要調(diào)web接口,所以我們不能光在控制臺里面玩。這個時候需要了解,http協(xié)議和Python web開發(fā)。我們可以重做前面提到的求職發(fā)布系統(tǒng),學(xué)習(xí)基于Python web如何實現(xiàn)。這個時候你需要實現(xiàn)若干個接口:
用戶端:
用戶注冊
用戶登錄
請求首頁刷出默認的職位列表
篩選職位列表
根據(jù)城市
根據(jù)關(guān)鍵字
根據(jù)薪酬
根據(jù)工作商圈
管理后臺:
登錄
發(fā)布職位
更新職位
刪除職位
為了實現(xiàn)以上接口,你需要弄清楚什么是GET,什么是POST請求,什么場景下用GET,什么場景用POST。你還需要明白一個Python web開發(fā)框架,要明白一個http請求到了web框架之后,框架做了什么事情,如何在里面實現(xiàn)業(yè)務(wù)邏輯。哪些數(shù)據(jù)是服務(wù)共享的,哪些數(shù)據(jù)是用戶/請求獨享的。
此外,應(yīng)該學(xué)會Python如何操作數(shù)據(jù)庫實現(xiàn)增刪改查,大部分的任務(wù)都離不開增刪改查。比如我提到的發(fā)布職位就是create的過程,更新就是update,還有刪除是delete,讀是read。江湖有一個戲稱CRUD boy。
如果能順利度過進階階段,你應(yīng)該能舉一反三實現(xiàn)其他類似系統(tǒng)了。比如現(xiàn)在很火的分銷,拼團,還有新聞Feeds等等。
好像我沒怎么提數(shù)據(jù)結(jié)構(gòu)和算法,這個要看個人追求。如果你要在最短時間內(nèi)學(xué)會Python開發(fā),恐怕是沒時間學(xué)好數(shù)據(jù)結(jié)構(gòu)和算法了,能掌握自帶的數(shù)據(jù)結(jié)構(gòu)用法就行。如果你的學(xué)習(xí)時間充足,我的建議是一定要學(xué)數(shù)據(jù)結(jié)構(gòu)和算法。為了以后長期的發(fā)展,為了人民幣,一定要學(xué)好數(shù)據(jù)結(jié)構(gòu)和算法,我簡直苦口婆心地勸啊。
3. 工業(yè)界經(jīng)驗最后一個階段是實際的工業(yè)經(jīng)驗。這個階段,你應(yīng)該對公司用的基礎(chǔ)架構(gòu),如RPC,數(shù)據(jù)庫緩存消息系統(tǒng)中間件,爛熟于心。同時應(yīng)該掌握最基本的系統(tǒng)設(shè)計的技巧。知道如何根據(jù)一個實際需求,設(shè)計一個高可用,高性能高擴展性的系統(tǒng)。
實際上我覺得第一個階段是最容易的,第二個階段會碰到一些坑,有時候不好解決。在第二個階段,你可能需要比較好的自學(xué)能力,或者有一個好的學(xué)長導(dǎo)師。第三個階段需要比較體系化的訓(xùn)練和思考。
如果說你的系統(tǒng)設(shè)計能力ok,甚至經(jīng)驗豐富,再加上你不錯的算法,你肯定有一份好工作,薪資可能說多了顯浮夸,但優(yōu)秀的應(yīng)屆生很多人超過30w,甚至50w已經(jīng)是常態(tài)了。工作3-5年的過百萬的也大有人在。
這個時代,程序員雖然辛苦了一點,但無疑碰上最好的時代了。
PS:辛苦是因為知識更新很快,行業(yè)發(fā)展也很快,逼著程序員也要往前走。保持學(xué)習(xí)才是從業(yè)者的基本素養(yǎng),而不是掌握某門語言某門技術(shù)。
插播廣告最后來個巨硬的廣告,近期凱威老師和SegmentFault正在聯(lián)合推薦精品課,可能是東半球最好的Python課~
該系列的第一節(jié)課:凱威教你學(xué) Python(一):Python 的變量和源代碼機制
該系列的第二節(jié)課:凱威教你學(xué) Python(二):Python 的字符串和列表
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/42329.html
摘要:目前的培訓(xùn)費用都是,這還只是培訓(xùn)費而已,加上一些其他的東西,四個月時間要小三萬吧所以建議選擇線上培訓(xùn),成本低,可以反復(fù)學(xué)。 因為目前python非常火,應(yīng)用非常的廣泛,是目前最火的行業(yè)之一,競爭很大,工資很高,未來發(fā)展也極好。我個人建議:如條件還可以,負擔(dān)不是那么大,可以選擇培訓(xùn),培訓(xùn)一定會比你自學(xué)的好,如果培訓(xùn)都學(xué)好,自學(xué)肯定更難。目前python的培訓(xùn)費用都是2W+,這還只是培訓(xùn)費...
摘要:例后的為比特值表示為真代碼的縮進量縮進等級不同會導(dǎo)致代碼語義的改變,語言要求的是同一代碼塊的每一行代碼必須具有相同的縮進量。例后的為比特值表示為真我以剛才的代碼為基礎(chǔ),不規(guī)范縮進后運行,會出現(xiàn)上圖相應(yīng)的錯誤提示。 ?hello,程序猿們,我是挪威森林的水手,從此篇文章開始,我將和大家一起從0...
摘要:適用人群爬蟲方向數(shù)據(jù)分析方向非程序員加薪四開發(fā)前后端開發(fā)是程序員職業(yè)中的熱門,目前來講,人才缺口依然很大。寄語上面就是所有方向的學(xué)習(xí)路線了,把你感興趣的方向掌握了之后,你去找工作不是什么問題的。 ...
摘要:在這里我分享下我個人入門機器學(xué)習(xí)的經(jīng)歷,希望能對大家能有所幫助。相關(guān)學(xué)習(xí)鏈接,,入門后的體驗在入門了機器學(xué)習(xí)之后,在實際工作中,絕大多數(shù)的情況下你并不需要去創(chuàng)造一個新的算法。 機器學(xué)習(xí)在很多眼里就是香餑餑,因為機器學(xué)習(xí)相關(guān)的崗位在當前市場待遇不錯,但同時機器學(xué)習(xí)在很多人面前又是一座大山,因為發(fā)現(xiàn)它太難學(xué)了。在這里我分享下我個人入門機器學(xué)習(xí)的經(jīng)歷,希望能對大家能有所幫助。 PS:這篇文章...
閱讀 1614·2021-11-16 11:45
閱讀 2544·2021-09-29 09:48
閱讀 3269·2021-09-07 10:26
閱讀 1840·2021-08-16 10:50
閱讀 1866·2019-08-30 15:44
閱讀 2698·2019-08-28 18:03
閱讀 1898·2019-08-27 10:54
閱讀 1823·2019-08-26 14:01