這兩天一直想做的客棧市場(chǎng)以及競(jìng)品消息搜集工具開始成型了。作為只在10年前學(xué)過一點(diǎn)C語言皮毛的我,這次學(xué)習(xí)python來實(shí)現(xiàn)自己的需求,領(lǐng)悟到了一些道理,和大家分享。
1.機(jī)器不會(huì)錯(cuò),如果錯(cuò)了,一定是人的問題
2.思維定勢(shì),讓人對(duì)錯(cuò)誤視若無睹,比如:
1.page = request.GET.get('page',1)
寫成get, Get,尤其是Get ,還完全意識(shí)不到自己的錯(cuò)誤。
2.在使用爬蟲時(shí), 把 soup = Beautiful( *.text, 'lxml') 寫成 *.txt,意識(shí)不到自己的錯(cuò)誤。
把 web_data, 寫成 wb_data, 意識(shí)不到自己的錯(cuò)誤。
眼睜睜的看著實(shí)例都能寫錯(cuò),可見思維定勢(shì)的強(qiáng)大。
那日常生活中,工作中,學(xué)習(xí)中,有多少是因?yàn)樗季S定勢(shì),而讓你錯(cuò)失了了解真相的機(jī)會(huì)呢?
下圖是一個(gè)很明顯的例子。
為什么會(huì)這樣?
在心理學(xué)上,定勢(shì)又稱心向,是指主體對(duì)一定活動(dòng)的預(yù)先的特殊準(zhǔn)備狀態(tài)。具體地說,人們當(dāng)前的活動(dòng)常受前面從事的活動(dòng)的影響,傾向于帶有前面活動(dòng)的特點(diǎn)。當(dāng)這種影響發(fā)生在知覺過程中時(shí),產(chǎn)生的就是知覺定勢(shì)。
因此,你對(duì)現(xiàn)有事物的認(rèn)知和反應(yīng),依據(jù)于你過往對(duì)類似事務(wù)的認(rèn)知和經(jīng)驗(yàn)。
當(dāng)你去認(rèn)知新事物的時(shí)候,是無法知道自己錯(cuò)在哪里了的。正如你不能提著自己的衣領(lǐng)把自己舉起來。
怎么破?
結(jié)識(shí)和你有不同背景,具有高度自知之明的人,通過和他們的互相探討,來逐步拼湊出事情更完整的面貌。
3-對(duì)于高門檻的新技能,付錢學(xué)習(xí)是最便宜高效的入門方法
Python 其實(shí)我15年初九嚷嚷在學(xué),學(xué)到年底,也不過可以編一些計(jì)算類的(比如漢諾塔什么的)小程序自?shī)首詷贰?br> 11月份報(bào)了實(shí)戰(zhàn)計(jì)劃的爬蟲入門班,包括過年,產(chǎn)品更新迭代上新版等等,到目前4個(gè)多月時(shí)間,我已經(jīng)能夠用Django搭建自己的簡(jiǎn)單網(wǎng)站,展示自己爬取的簡(jiǎn)單數(shù)據(jù)(搜狗數(shù)據(jù)還是不行,js控制的數(shù)據(jù)有部分不行),并從中受益。
如果早知道,我會(huì)早去花錢學(xué)習(xí)。而不是自己茫然地在網(wǎng)上導(dǎo)出尋找免費(fèi)資料,浪費(fèi)了近1年的時(shí)間。
為什么呢?
在入門的時(shí)候,我們其實(shí)還沒有掌握尋找問題的方法,更不用說怎么去解決。而高門檻的新技能一般有復(fù)雜的初始要求,比如說配置電腦環(huán)境:python3.X升級(jí), pip的安裝,pycharm的安裝,mongdo的安裝,這些問題,隨便一個(gè)都能讓尚未入門的小白折騰一天,然后發(fā)現(xiàn)自己連生產(chǎn)工作都搞不定,更不要說學(xué)習(xí)生產(chǎn)了,只好絕望放棄。
所謂師傅領(lǐng)入門,是讓你在碰到這些問題的時(shí)候,指導(dǎo)你該如何去尋找解決的辦法。
然后,才有可能自學(xué)。
4. 剛需,是戰(zhàn)勝任何困難的第一推動(dòng)力
學(xué)習(xí)爬蟲有個(gè)很關(guān)鍵的目標(biāo),是想做一個(gè)自己的信息搜集器。
把和客棧相關(guān)的所有信息,能夠搜集到一個(gè)地方,自己每天可以閱讀。
這是我作為產(chǎn)品的剛需:了解市場(chǎng),了解競(jìng)品。
因此每次遇到困難的時(shí)候,也只能咬咬牙,然后到處查資料問人,知道最后完成。
如果只是玩玩而已的話,早放棄了。
5. 先整理思路框架,再開干
寫程序的時(shí)候,先想清楚要干什么,比馬上開始干重要。
比如我寫36氪的爬蟲的時(shí)候,第一次只想爬文章標(biāo)題,鏈接。
爬完之后發(fā)現(xiàn)不夠,于是改數(shù)據(jù)庫(kù),加上了品類;之后發(fā)現(xiàn)需要時(shí)間否則排序有問題,又改數(shù)據(jù)庫(kù),加上了時(shí)間。而在寫知乎的時(shí)候,吸取之前的經(jīng)驗(yàn),一開始把所有需要的內(nèi)容都整理列出來,然后再寫,效率明顯提高。
寫完36氪一個(gè)品類的爬蟲之后,寫第二個(gè)品類的爬蟲寫到一半才意識(shí)到自己可以把品類作為參數(shù)每次輸入,爬蟲本身是一樣的。
于是標(biāo)準(zhǔn)化了爬蟲,增加了參數(shù)輸入。
當(dāng)然,這些問題其實(shí)都很菜鳥,通過這些菜鳥的步驟,我們才能慢慢學(xué)習(xí)成長(zhǎng)。
6. 集中地長(zhǎng)時(shí)間的反復(fù)練習(xí),才有可能前進(jìn)
年后因?yàn)橐獪?zhǔn)備3.0新版的事情,忙到經(jīng)常一周才學(xué)習(xí)一次,每次有60%的時(shí)間都在回顧之前學(xué)到哪里了,怎么做的。40%的時(shí)間來往前走一小步。對(duì)于學(xué)習(xí)而言,是效率很低的方式。
315這周,3.0上線了,于是恢復(fù)了早上學(xué)習(xí)1個(gè)小時(shí),周末花半天學(xué)習(xí)的習(xí)慣。速度明顯加快,第一版半成品的客棧輿情網(wǎng)也做出來了。
一般的編程(不涉及到高級(jí)的算法什么的),其實(shí)是門手藝活,熟能生巧。因此,手熟很重要。