Python確實(shí)容易上手搪搏,對初學(xué)者的門檻很低垂券。
但是對于小白真正的門檻在于系統(tǒng)知識玉罐,這就和用什么語言完全沒有任何關(guān)系了因惭。
你不能讓一個(gè)才會寫print函數(shù)的同學(xué)用python寫個(gè)圖形界面出來岳锁,也不能讓一個(gè)才知道網(wǎng)絡(luò)協(xié)議是什么東西的同學(xué)寫個(gè)多完美的爬蟲出來。
因?yàn)樗麄儗W(xué)的再好蹦魔,也只是先了解了已經(jīng)學(xué)到的東西激率,他甚至可能還會卡在pip?install?xxx命令好久,原因可能是pip版本不對勿决,又或者是沒有正確的安裝路徑乒躺,
也可能會調(diào)試一個(gè)簡單的程序很久,但是總會報(bào)錯(cuò)低缩,這又是因?yàn)榱硗庖恍┰颍?/span>這些嘉冒,都是每一個(gè)初學(xué)者可能遇到的問題,那么如何解決呢咆繁?
1)空出時(shí)間補(bǔ)充理論知識
很多人會強(qiáng)調(diào)learn by doing讳推,邊做項(xiàng)目邊學(xué)習(xí),這也是我自己采用的方式玩般。
在這種方式中银觅,你不斷犯錯(cuò),改正……學(xué)習(xí)效率非常高坏为。
但是究驴,很多人走了極端,最后的結(jié)果就是不注意理論知識的學(xué)習(xí)匀伏。你會發(fā)現(xiàn)自己Google的能力越來越高洒忧,但是真實(shí)的編程能力并沒有得到提升。
如果有這種情況够颠,你需要反思一下熙侍。
一種可能是你太過于依賴各種成熟的框架,結(jié)果編程就變成了用「膠水」去粘合不同的框架完成需求。
另外一種可能是你完全沉浸在做項(xiàng)目中核行,忽略了學(xué)習(xí)理論知識牢硅。做項(xiàng)目雖然充滿困難,但回報(bào)是強(qiáng)烈的成就感芝雪,很容易沉浸其中。
我覺得這是極其錯(cuò)誤的综苔。
首先半路出家的程序員都沒有經(jīng)過系統(tǒng)的學(xué)習(xí)惩系,沒有形成自己的知識體系,如果你不懂?dāng)?shù)據(jù)結(jié)構(gòu)如筛,算法復(fù)雜度堡牡,操作系統(tǒng)這些理論,那么你能達(dá)到的高度就極其有限杨刨。
你若不學(xué)計(jì)算機(jī)組成原理晤柄,你便不知道一個(gè)int型數(shù)據(jù)類型占4個(gè)字節(jié)是何物理意義,更不會透徹理解變量聲明和變量定義的區(qū)別妖胀;你若不學(xué)數(shù)據(jù)結(jié)構(gòu)芥颈,你便不知究竟該如何用最優(yōu)的算法進(jìn)行最優(yōu)的深度優(yōu)化。基礎(chǔ)是重中之重赚抡,打好基礎(chǔ)在工作后能讓你甩開大部分同行一條街爬坑。
所以,在每天做項(xiàng)目的同時(shí)涂臣,一定要保證抽出一定的時(shí)間盾计,惡補(bǔ)理論知識。這部分的書單在豆瓣和知乎上都有很多總結(jié)赁遗,可以自行搜索署辉。
2)不要太糾結(jié)于無意義的問題,
換句話說岩四,就是不要好高騖遠(yuǎn)哭尝,不要東想西想。
比如什么框架好炫乓,XX語言比XX語言好啦這種問題刚夺。
前期確定了練手項(xiàng)目,就去專心積累代碼量末捣,積累基礎(chǔ)知識侠姑。那些你現(xiàn)在還看不懂的炫酷技術(shù)你慢慢也就能明白是怎么回事了,反而沒有基礎(chǔ)箩做,再炫酷的框架對你而言都是天書莽红。
3)少要用CV大法。
很多人認(rèn)為python程序很簡單,一看就懂安吁,但是一寫就蒙醉蚁,其原因就是寫的少了。
我曾經(jīng)對照著書上代碼敲這樣的學(xué)習(xí)方式一度十分嗤之以鼻鬼店,自負(fù)地認(rèn)為簡直不可理喻网棍,但事實(shí)證明,你老師終歸是你老師妇智,這種做法一定有其存在的合理性滥玷。你能看懂的和你能寫下的絕非是同種東西,一旦落筆便能知道巍棱,你很可能連靜態(tài)局部變量和動態(tài)局部變量都沒有徹底搞清惑畴。
例如,
int fun(int n){
static int f=1;
f=f*n;
return f;
}
void main(){
int i;
for(i=1;i<=10;i++)
printf("fun(%d)=%d\n",i,fun(i));
}
static會導(dǎo)致輸出結(jié)果是通過階乘還是單純的乘法航徙,如果不自己敲一遍如贷,真的很難發(fā)現(xiàn)這些東西,
總而言之到踏,少用復(fù)制粘貼代碼(不是不用)杠袱,尤其是在初學(xué)的時(shí)候。
4)學(xué)會發(fā)問夭禽。
好問題是建立在你自己已經(jīng)實(shí)踐或者思考的基礎(chǔ)上問出來的霞掺,這是對自己的負(fù)責(zé),也是對別人的尊重讹躯。
不要一遇到困難就直接詢問別人:「這個(gè)問題是怎么回事捌斜颉?」潮梯,「我不明白你能不能幫我看看……」骗灶,結(jié)果Google的第一個(gè)就是解決方法思路甚至是步驟。
對于這一點(diǎn)可以參考著名的《提問的智慧》[1]
5)學(xué)好英語秉馏。(尤其是對于用python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法的同學(xué))
THE END
關(guān)注【panda一塊磚】耙旦,回復(fù)【python編程】,可獲得經(jīng)典python入門教程:《python編程:從入門到實(shí)踐》PDF
長按二維碼關(guān)注panda一塊磚
學(xué)習(xí)方法萝究、學(xué)習(xí)資料一站收入
References
[1]
?《提問的智慧》:?https://coding.laiczhang.com/2019-07-20/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7/
[2]
?你們都是怎么學(xué)Python的免都?:?https://www.zhihu.com/question/55493026/answer/163642949