復(fù)雜的東西沒有想象中那么復(fù)雜
以前沒有接觸過編程的時(shí)候?qū)幊逃幸环N誤解祠乃,認(rèn)為寫代碼就是一種很牛逼的行為琴拧,就是普通人都難以做到的一件事挣饥。然后從未想過要去學(xué)習(xí)編程,更沒有想到自己還可以從事這個(gè)職業(yè)茧吊。
現(xiàn)在回過頭來看看,我很早的時(shí)候就已經(jīng)在學(xué)習(xí)編程了,比如自己研究按鍵精靈寫了一些代碼,當(dāng)時(shí)我不知道那就是編程云石,我以為那不就是一個(gè)邏輯運(yùn)算嗎?運(yùn)用一些數(shù)學(xué)知識(shí)就能解決的問題。
再仔細(xì)想想铅乡,原來我在小學(xué)玩游戲的時(shí)候就已經(jīng)在學(xué)習(xí)編程了。當(dāng)時(shí)玩的游戲叫做《坦克大戰(zhàn)》,那個(gè)游戲當(dāng)時(shí)挺火的咬腕,玩過插卡游戲的人應(yīng)該都知道。
如下圖
這個(gè)游戲有一個(gè)功能就是可以自己diy地圖火鼻,也就是自己創(chuàng)建自己想要什么樣的地圖融撞,在游戲力所能及的情況下鹏控,你可以創(chuàng)建你能夠想象出來的任何地圖。
然后當(dāng)時(shí)想著一個(gè)問題,在我創(chuàng)建的這個(gè)地圖上那些坦克只能如何如何運(yùn)動(dòng)?只能在何種范圍內(nèi)生存澡刹?然后我按照這種思考方法呻征,就能夠讓我創(chuàng)建的地圖對(duì)我永遠(yuǎn)有利。
雖然我提前預(yù)判我編出的地圖會(huì)產(chǎn)生什么樣的結(jié)果罢浇,但實(shí)際上當(dāng)我運(yùn)行了游戲之后又發(fā)現(xiàn)了地圖上的一些漏洞陆赋,然后我又開始修補(bǔ),最后才能夠接近完美嚷闭。
而編程的過程和這個(gè)差不多攒岛,也就是讓機(jī)器按照我既定的程序執(zhí)行。如果輸出的結(jié)果錯(cuò)誤胞锰,那么一定是我的程序有問題灾锯,于是我又反復(fù)修改直至正確。
這幾年有一款游戲也很火嗅榕,叫做《我的世界》顺饮,這個(gè)游戲也有點(diǎn)類似編程一樣吵聪,可以自由構(gòu)建你想要的世界。
首先你得知道自己想要的世界是什么樣的兼雄,先在煩大腦中大概想一想吟逝,然后就可以實(shí)踐了。最后發(fā)現(xiàn)有偏差赦肋,繼續(xù)修改块攒,直到你想象中的情況和結(jié)果相同。
你看佃乘,看起來復(fù)雜的編程其實(shí)和游戲差不多囱井。
當(dāng)我開始學(xué)習(xí)編程的時(shí)候我漸漸發(fā)現(xiàn)編程的原理實(shí)際上很簡(jiǎn)單,但是真的那么簡(jiǎn)單嗎恕稠?
簡(jiǎn)單的東西也沒有想象中那么簡(jiǎn)單
最開始接觸到的幾個(gè)程序都很簡(jiǎn)單琅绅,這是從現(xiàn)在看過去。但是當(dāng)時(shí)我并不這樣想啊鹅巍,隨便寫一個(gè)很小的程序都要費(fèi)很大的力氣千扶。
原理很簡(jiǎn)單,知易行難骆捧。
開始寫程序的時(shí)候才發(fā)現(xiàn)很多我以為懂得的知識(shí)其實(shí)并不太懂澎羞。比如很小的一個(gè)功能,在剛開始我都要花費(fèi)幾天的時(shí)間才能完成敛苇。
真是應(yīng)了那句話萬事開頭難妆绞。
但是編程這事也不是說開頭難完之后就不難了,之后還有一堆有一堆更難的問題枫攀。
但是后面的問題都是基于前面的積累從而變得越來越難括饶,就像打怪升級(jí)一樣。
正如《道德經(jīng)》說:天下難事,必作于易 ,天下大事 必作于細(xì)来涨。
于是那些難的東西實(shí)際上都是由最開始的簡(jiǎn)單構(gòu)成的图焰。
不斷思考,不斷獲得成就感
編程一入深似海
只要學(xué)習(xí)了編程蹦掐,那問題不是一般多技羔,任何一個(gè)小小的程序可能都會(huì)引發(fā)無數(shù)問題,導(dǎo)致了一個(gè)情況就是必須不斷思考解決問題的方法卧抗。
當(dāng)我解決了一個(gè)又一個(gè)問題的時(shí)候還有些許成就感藤滥。還能夠體會(huì)到打怪升級(jí)的樂趣。
那樂趣社裆,就是不斷解決更難的問題帶來的拙绊。
思考是免不了的,因?yàn)閱栴}擺在那,不解決它它不會(huì)自動(dòng)被解決时呀,只有去张漂,去嘗試才能夠被解決。
在不斷解決問題的過程中谨娜,我漸漸發(fā)現(xiàn)深入思考能力真的是一項(xiàng)很重要的能力航攒。
這里有個(gè)故事:
美國華盛頓廣場(chǎng)有一座宏偉的建筑,這就是杰弗遜紀(jì)念館大廈趴梢。這座大廈歷經(jīng)風(fēng)雨滄桑漠畜,年久失修,表面斑駁陳舊坞靶。政府非常擔(dān)心憔狞,派專家調(diào)查原因。
調(diào)查的最初結(jié)果以為侵蝕建筑物的是酸雨彰阴,但后來的研究表明瘾敢,酸雨不至于造成那么大的危害。最后才發(fā)現(xiàn)原來是沖洗墻壁所含的清潔劑對(duì)建筑物有強(qiáng)烈的腐蝕作用尿这,而該大廈墻壁每日被沖洗的次數(shù)大大多于其他建筑簇抵,因此腐蝕就比較嚴(yán)重。
問題是為什么每天清洗呢?因?yàn)榇髲B被大量的鳥糞弄得很臟射众。為什么大廈有那么多鳥糞?因?yàn)榇髲B周圍聚集了很多燕子碟摆。為什么燕子專愛聚集在這里?因?yàn)榻ㄖ锷嫌醒嘧訍鄢缘闹┲搿槭裁催@里的蜘蛛特別多?因?yàn)閴ι嫌兄┲胱钕矚g吃的飛蟲叨橱。為什么這里的飛蟲這么多?因?yàn)轱w蟲在這里繁殖特別快典蜕。為什么飛蟲在這里繁殖特別快?因?yàn)檫@里的塵埃最適宜飛蟲繁殖。為什么這里的塵埃最適宜飛蟲繁殖?其原因并不在塵埃罗洗,而是塵埃在從窗子照射進(jìn)來的強(qiáng)光作用下愉舔,形成了獨(dú)特的刺激致使飛蟲繁殖加快,因而有大量的飛蟲聚集在此伙菜,以超常的激情繁殖轩缤,于是給蜘蛛提供了豐盛的大餐。蜘蛛超常的聚集又吸引了成群結(jié)隊(duì)的燕子流連忘返仇让。燕子吃飽了,自然就地方便躺翻,給大廈留下了大量糞便……
因此解決問題的最終方法是:拉上窗簾丧叽。杰弗遜大廈至今完好。
你看公你,要是不深入思考我們是難以找到最終的答案的踊淳,從而做出來的決定不同,導(dǎo)致的后果也不同。
在編程的時(shí)候只有深入思考才能夠?qū)懗稣_的程序迂尝,只有真正理解了項(xiàng)目的需求才能夠?qū)懗鲇杏玫拇a脱茉。
知道了實(shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)
在編程的世界,對(duì)或錯(cuò)垄开,真或假都容易判斷琴许。因?yàn)榻Y(jié)果就擺在那里,日常生活中我們失敗了可能還會(huì)自欺欺人不愿意接受事實(shí)溉躲。但是編程不行榜田,錯(cuò)了就是錯(cuò)了,不能抱怨機(jī)器有問題而是代碼有問題锻梳。
于是每次自己的想法通過編程實(shí)現(xiàn)后都能通過編程去檢驗(yàn)箭券。
編程算是反饋很高的一種事情了,很容易得到反饋疑枯,任何想法都能實(shí)踐辩块,要么得到答案,要么錯(cuò)誤荆永。
同理废亭,一個(gè)人說了什么并不重要,看他做了什么屁魏。因?yàn)檎f出來的東西是沒有經(jīng)過檢驗(yàn)的滔以,只有真正去做了才能得到真正的經(jīng)驗(yàn)。
總結(jié):