1
在大三的時(shí)候,參加了一次四川省的大學(xué)生網(wǎng)絡(luò)安全競(jìng)賽,對(duì)其中有一道題目印象非常深刻。
這道題要求網(wǎng)絡(luò)編程構(gòu)造一些特殊的TCP數(shù)據(jù)包繞過防火墻拿到服務(wù)器上的一個(gè)文件,里面有通關(guān)的key。
這道題目需要對(duì)TCP報(bào)文格式非常熟悉,同時(shí)還要具備網(wǎng)絡(luò)編程、文件處理能力。
當(dāng)我還在那里吭呲吭呲地用C語言編寫原始套接字網(wǎng)絡(luò)通信部分的代碼時(shí),隔壁組的已經(jīng)拼湊完成通關(guān)了!
后來在答辯環(huán)節(jié)我才知道,原來他們用的不是C語言,而是一個(gè)叫Python的語言,只用了幾行代碼就完成了這個(gè)功能!那是我第 一次聽說這個(gè)語言,不知道是干啥用的,但有被震驚到。
2
畢業(yè)以后,開始工作了,有一次接了一個(gè)私活兒。
這單活是需要開發(fā)一個(gè)爬蟲+掛號(hào)于一體的軟件,3000塊錢,對(duì)于當(dāng)時(shí)的我算是不少錢(不對(duì),對(duì)現(xiàn)在的我也是不少錢)。
軟件自動(dòng)掃描醫(yī)院網(wǎng)站的號(hào)源,自動(dòng)掛號(hào)并發(fā)短信通知,具體是哪個(gè)醫(yī)院我就不方便說了。
那時(shí)候我還是只會(huì)C/C++啊,利用業(yè)余時(shí)間寫了一個(gè)星期,實(shí)在是太麻煩了,尤其是網(wǎng)絡(luò)通信、字符串處理、網(wǎng)頁(yè)解析等等,用C++寫開發(fā)效率實(shí)在太低了,還容易一言不合就崩潰。
于是我下定決心把Python作為我的第二編程語言,買了一本《Python核心編程》開始啃起來。
你還別說,有其他編程語言的功底,再加上面向搜索引擎編程,一個(gè)星期后我就能用Python來做這一單私活兒了。
有了Python的加持,自己能做的東西更多了。
后來又逐步學(xué)習(xí)了Django、Flask兩大web框架,開始能接網(wǎng)站后臺(tái)開發(fā)的活了,而這些是我之前C/C++技術(shù)棧很難做的。
順帶說一句,我曾經(jīng)在一個(gè)項(xiàng)目中用C++寫web服務(wù)器,完全自己實(shí)現(xiàn)HTTP協(xié)議的解包和封包,還有RESTful接口框架的實(shí)現(xiàn),那滋味兒之酸爽,相信做過的都深有體會(huì)吧,不過確實(shí)挺能鍛煉人的。
3
前不久,媳婦兒邀請(qǐng)她的高中同學(xué),還在讀新聞傳播學(xué)博士,來家里吃飯,在吃飯的時(shí)候,她同學(xué)竟然問我如何學(xué)Python。
我當(dāng)即有點(diǎn)吃驚,怎么連博士,還是新聞傳播學(xué)的都要來學(xué)編程了?
她告訴我,她們讀博士要做很多社會(huì)調(diào)查課題,有很多數(shù)據(jù)處理、統(tǒng)計(jì)分析的事情要做,學(xué)校的導(dǎo)師要求她們能夠用Python去做這些事情。
吃驚之余,也感慨Python這家伙影響力真是越來越大了,一個(gè)曾經(jīng)我瞧不起的腳本語言,如今居然這么香,真是啪啪打臉了!
這一切都?xì)w功于Python這門語言的兩大特點(diǎn):
1、簡(jiǎn)單,易上手
2、強(qiáng)大,能做很多事兒
不管是對(duì)于從未從事過編程的新人,還是已經(jīng)掌握了其他語言的編程老手,Python都是一個(gè)非常給力的加分項(xiàng)。
而網(wǎng)絡(luò)上學(xué)習(xí)Python的資料也是五花八門,良莠不齊。如果你問我推薦什么,我推薦極客時(shí)間,口碑靠譜,質(zhì)量過硬,不會(huì)玩什么1元甚至0元套路你。
如果你是從未接觸過Python,在這方面是零基礎(chǔ)的話,那我建議你看看尹會(huì)生的《零基礎(chǔ)學(xué) Python》,這個(gè)專欄基于最 新 Python 3,通過實(shí)際場(chǎng)景來學(xué)習(xí),全面講解標(biāo)準(zhǔn)庫(kù)、第三方庫(kù)和機(jī)器學(xué)習(xí)庫(kù)。另有一個(gè)大模塊專門講解爬蟲技能,是一個(gè)入門 Python 必看的視頻課程。現(xiàn)已有 2.3W 用戶訂閱,跟著這個(gè)課程學(xué),從零基礎(chǔ)到入門絕 對(duì)沒問題。
而如果你有些基礎(chǔ),還想掌握Python的更高階的技術(shù)。那我建議你看看景霄的《Python 核心技術(shù)與實(shí)戰(zhàn)》他的理念就是“從工程的角度去學(xué)習(xí)語言”。
畢竟想要做到精通 Python,必須真正理解知識(shí)概念,適當(dāng)從源碼層面深化認(rèn)知,然后熟悉實(shí)際的工程應(yīng)用,獨(dú)立完成項(xiàng)目開發(fā)。這個(gè)圖譜也是出自于締凡的專欄《Python核心技術(shù)與實(shí)戰(zhàn)》,結(jié)合了多年的工作經(jīng)歷,從工程角度,更為實(shí)戰(zhàn)地梳理了Python核心知識(shí)點(diǎn),從基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)到裝飾器、迭代器,再到并發(fā)編程、垃圾回收機(jī)制等等??梢哉f,跟著這套學(xué)習(xí)框架學(xué),你會(huì)事半功倍地掌握Python。