老師都不會告訴你的,關(guān)于編程的秘密壳猜,看完以后恍然大悟勾徽,炸鍋了

如果編程是一門“藝術(shù)”,那么編程語言就是工具统扳,而“藝術(shù)”的根在哪里喘帚?

我在初學(xué)編程的時候,是以一門課程來學(xué)習的咒钟,記得非常清楚吹由,第一門編程語言學(xué)的是匯編,那個時候沒有人告訴我朱嘴,編程到底是什么倾鲫,我們只是想將它學(xué)好,按照教科書上的內(nèi)容萍嬉,找參考資料乌昔,將所有參考資料上的例子全部實驗一遍,尋找哪里有錯誤壤追,詢問老師磕道,當時老師也是很努力的給我們解決實際過程中遇到的問題,可是行冰,當我們學(xué)完了以后呢溺蕉?考試結(jié)束了伶丐,伴隨而來的也是這門語言的遺忘,為什么焙贷?因為缺少了應(yīng)用撵割、缺少了核心的理解。

第二門語言也是以課程的形式學(xué)習的辙芍,C啡彬,這門語言比匯編容易一些,至少能夠去理解一些故硅,但是庶灿,考試結(jié)束了伴隨而來的是什么?還是遺忘吃衅!同樣是因為缺少了應(yīng)用和核心的理解往踢。

這種情況持續(xù)了很久很久,當時我和我的同學(xué)們基本上看不到希望徘层,因為我們不知道我們到底學(xué)了什么峻呕,我們不知道我們將來畢業(yè)以后能干什么?難道就是這樣畢業(yè)嗎趣效?

直到我們學(xué)了算法瘦癌,我當時有一種感覺,在黑暗的森林中跷敬,看到了曙光讯私,終于看到了希望,因為我明白了一個道理西傀,語言是算法的一種體現(xiàn)斤寇,在設(shè)計的過程中,核心內(nèi)容為算法拥褂,工具為語言娘锁。這個時候又出現(xiàn)了另外一個問題,計算機是機器肿仑,只認01致盟,我們?nèi)绾巫層嬎銠C理解我們的內(nèi)容,并且存儲尤慰?當時詢問老師,老師回答:“回去找數(shù)據(jù)結(jié)構(gòu)的書看雷蹂,看完以后再來找我伟端。”我遍尋圖書館匪煌,借來5本參考書责蝠,如饑似渴的讀党巾,我記得當時我每天只睡3到4個小時,那個時候真的是有點得到了武功秘籍一樣的感覺霜医。讀完了以后齿拂,我好似打通了任督二脈,終于明白了編程的根本肴敛,也終于明白了為什么編程是一門“藝術(shù)”署海!

如果說編程是一門“藝術(shù)”,是因為編程是優(yōu)雅的與機器交互医男,從而讓機器解決現(xiàn)實問題砸狞,能夠更好的解決人力發(fā)展的局限性。簡單來講:我們制造出來機器镀梭,為了替代我們?nèi)祟惾ソ鉀Q一些問題刀森,而如何讓機器工作,就是編程的“藝術(shù)”报账!

如果說編程語言是工具呢研底?是因為人類的語言與機器的語言是互不相通的,而你要讓機器去解決問題透罢,必然要通過一種工具使得人類與機器能夠交互榜晦,這就是編程語言的工具。

“藝術(shù)”的根琐凭,在于算法與數(shù)據(jù)結(jié)構(gòu)芽隆,這些是是計算機的根本,因為算法解決了如何讓機器做的問題统屈,數(shù)據(jù)結(jié)構(gòu)解決了存儲的問題胚吁!算法中的優(yōu)化問題,能夠處理問題的速度更加迅速愁憔、或者更加符合業(yè)務(wù)腕扶。

打開UC瀏覽器 查看更多精彩圖片

編程語言是在不斷的發(fā)展的,在每一個階段吨掌,會有一個階段的王者半抱!

跨度大一點,我們討論完“藝術(shù)”的問題膜宋,再來討論一下工具的問題窿侈。什么是工具,工具就是為了解決我們現(xiàn)實中遇到的一個問題秋茫,使得更加簡單史简、方便、高質(zhì)的一個可以使用的物體肛著。從進化學(xué)的角度來講圆兵,工具也是區(qū)別于人與動物的根本跺讯。人為什么既無尖牙也無利爪的情況下,還可以處于食物鏈的頂端殉农?就是會使用個工具刀脏。那么編程也是一樣的。人為什么能夠命令機器超凳,因為咱有工具愈污!

那么,既然是工具聪建,就必須要符合這個社會的需要钙畔,需要不斷進步,根據(jù)社會的條件而進行更新?lián)Q代金麸。編程語言也是一樣的道理擎析。比如:在計算機發(fā)明出來的時候,計算機算力以及存儲是很寶貴的挥下,編程語言要求盡可能的節(jié)省存儲于算力揍魂,這是硬件的要求,你沒地方說理棚瘟。就好像是遠古社會现斋,每天人類都吃不飽,你還考慮穿衣的內(nèi)容嗎偎蘸?穿暖就行了庄蹋,不考慮樣式;現(xiàn)在解決掉了溫飽問題迷雪,對于穿衣限书、吃飯也就提出了要求,要吃的好章咧、穿的美倦西!這是社會發(fā)展的必然,沒什么奇怪的赁严。那么扰柠,這就會出現(xiàn)一個問題,編程語言這個工具是如何進化呢疼约?其實也是相同的道理卤档,比如:C,面向過程程剥,極大程度上節(jié)省硬件資源裆装,同時由于是面向過程,所以邏輯上更加清晰倡缠,使得機器在運行過程中效率很高哨免。為啥,因為在C的廣泛應(yīng)用的時候昙沦,那個時候計算機硬件是相當昂貴的琢唾,你沒事不可能上一個現(xiàn)在的超級計算機上去,沒有盾饮!所以只有節(jié)約采桃,高效。那現(xiàn)在呢丘损?比如:python普办,效率比C低很多,但是無所謂徘钥,為什么衔蹲?因為現(xiàn)在很多地方對于計算機算力及存儲要求的不高,很多都是過剩的呈础;但是對于開發(fā)效率以及迭代效率要求的比較高舆驶,因為現(xiàn)在是一個高速的時代,你慢了就有可能被替代而钞!所以誕生了偏向開發(fā)高效的一些語言沙廉!你能說這些語言不好嗎?并不是臼节,只是適應(yīng)社會發(fā)展而已撬陵。同樣也是工具在進步而已。

這里我用一個比喻我覺得比較恰當:好比是農(nóng)民伯伯種地用的鋤頭网缝,一開始巨税,農(nóng)民伯伯由于體力優(yōu)先,因此他會去優(yōu)化鋤頭頭途凫,優(yōu)化鋤地動作垢夹,讓鋤地更加的方便,高效维费,從而節(jié)省體力果元,能夠干更多的工作。因為這個時候農(nóng)民伯伯的體力是有限的犀盟,也就是說而晒,計算機算力是有限的。(鋤頭好比是編程語言阅畴,鋤頭頭和鋤地動作好比是數(shù)據(jù)結(jié)構(gòu)與算法倡怎。) 那么,現(xiàn)在我們出現(xiàn)了機械化,從某種意義上講监署,我只要加油颤专,就可以耕地,那么钠乏,我們考慮問題就會轉(zhuǎn)變栖秕,轉(zhuǎn)變?yōu)椋胰绻嗟母囟@得更多的收益晓避,因為有了機械化簇捍,我加油就可以了。這就是工具的提升(機械化是編程語言)俏拱。但是暑塑,這里面有一個問題,你再機械化锅必,是不是也得需要一個類似于鋤頭的東西在耕地事格?這就是根。 如果再繼續(xù)推理下去况毅,所謂的算法是分蓖,我的這個鋤頭用什么樣的力量鋤下去湾戳,用什么角度鋤下去良风,能夠耗費的能源最少籽懦,獲得的收益最高规辱,這就是算法的優(yōu)化内边,也是算法的根介汹。那么數(shù)據(jù)結(jié)構(gòu)是什么意思呢骂铁?我的這個鋤頭的 頭用什么樣的材料睛竣?用鐵余佛?用銅柠新?還是用其他金屬?能夠使得這個鋤頭用的時間最長辉巡。 這就是計算機的根恨憎。

打開UC瀏覽器 查看更多精彩圖片

既然是工具,那么如何能夠?qū)W好呢郊楣?

這是一個很高深的課題憔恳,很多人會告訴你,你要多練净蚤,沒錯钥组,多練是根本,我這里就不再贅述了今瀑〕堂危可是我們要理解一個問題点把,這個問題是,僅僅是多練就可以了嗎屿附?

相信大家都看過一本書《天龍八部》郎逃,里面有個角色叫虛竹,到最后厲害吧拿撩?可是之前他如何呢衣厘?換句話說,僅僅是多練压恒,沒有很好的方法,沒有理解是絕對不行的错邦,因為招式的厲害是一時探赫,當你不再年輕,體力不再好撬呢,那么伴隨而來的是什么呢伦吠?淘汰!

還記得《天龍八部》里最牛的人是誰嗎魂拦?“掃地僧”毛仪,他呢?不年輕芯勘,招式幾乎沒有寫箱靴,為什么大家都覺得他比較厲害呢?這就叫“內(nèi)功”荷愕,“內(nèi)功”是可以隨著你的不斷深入的理解而不斷加深的衡怀,到一定程度就變?yōu)椤盁o招勝有招”了!

現(xiàn)在整個社會過于浮躁安疗,造成大家只重視招式的訓(xùn)練抛杨,而忽略掉“內(nèi)功”的修為,這從某種意義上講荐类,也是為什么產(chǎn)生中年危機的原因怖现,尤其是IT這一行!

打開UC瀏覽器 查看更多精彩圖片

既然“內(nèi)功”重要玉罐,我要如何修為“內(nèi)功”屈嗤!

我不是一個“專家”,所以我不敢說的比較大厌小,僅僅是建議吧恢共,其實多聽聽“專家”的蠻好的,聽的多了璧亚,再聽聽我的讨韭,有點幫助最好脂信,建議、建議透硝、建議狰闪!

無論你是要做什么,開始的第一步必須是打好基礎(chǔ)濒生,這你沒有跑的埋泵,只有基礎(chǔ)打好了,才有繼續(xù)提升的根罪治,根穩(wěn)了丽声,才能長的高,長的快觉义!基礎(chǔ)是什么雁社?數(shù)學(xué)是基石,很多情況下晒骇,算法的思維借用了數(shù)學(xué)中的極限思維霉撵,比如:蟻群算法,蟻群算法的核心思維就是無限的螞蟻一直爬洪囤,爬的多了徒坡,留下的最深的那條線就是最優(yōu)解×鏊酰可能有小伙伴說喇完,我數(shù)學(xué)不好,注意款咖,我講的是數(shù)學(xué)思維何暮,很多情況下數(shù)學(xué)思維比數(shù)學(xué)解幾道題重要!

其次铐殃,編程思維海洼,編程思維也有很多很多“專家”講過,大家看看富腊,也可以參考一下我的坏逢,我認為的編程思維其實很簡單,就是將復(fù)雜的問題分解掉赘被,然后分別抽象出模型是整,之后識別模型,利用算法解決問題民假。說的高大上是吧浮入,我們舉個例子:包餃子(餃子是世界上最好吃的食物。)我們需要干嘛羊异?第一步事秀,問題分解彤断,面皮、餡料易迹、合二為一宰衙。然后抽象出的模型分別為:面皮、餡料睹欲、手法供炼。繼續(xù)我們進行模型識別,面皮要通過和面窘疮、揉面袋哼、搟面,存放面皮等等考余,餡料需要剁肉先嬉、剁菜、調(diào)味楚堤、攪拌均勻。手法需要正常包含懊、花樣包身冬、機器包等等。然后我們利用某種算法解決掉這個問題岔乔。這其實就是編程思維酥筝,我們很多人都有這種思維,只是沒有很好的利用而已雏门。

再次嘿歌,你理解了這些以后,你需要學(xué)習計算機基礎(chǔ)知識茁影,你得知道計算機的構(gòu)造是什么宙帝,怎么運行的對吧,你不知道這些怎么和人家聊募闲?就好像是你和一男朋友(女朋友)談戀愛步脓,你都不知道人家的喜歡什么討厭什么,你怎么談戀愛浩螺?

然后你需要學(xué)習數(shù)據(jù)結(jié)構(gòu)和算法靴患,只有理解了這些,才是開始要出。這一步其實會困擾很多人的鸳君,因為你缺少方向感,所以很多人在這一步退縮了患蹂。

最后或颊,你需要使用一個工具砸紊,將你理解的內(nèi)容寫出來,因為你只有寫出來了饭宾,才能實現(xiàn)批糟,就像你心中的白馬王子(公主)長什么樣子,你得畫出來或者寫出來吧看铆,不然誰知道徽鼎。所以需要一門編程語言來進行。

到這一步弹惦,基本上圓滿了否淤,之后就是按照自己所想的內(nèi)容,無限輸出就好了棠隐,但是我的建議是石抡,遵循開源的理念,別動不動就收個費神馬的助泽,計算機這玩意得開源才能發(fā)展啰扛,技術(shù)的保留其實從某種意義上講限制了技術(shù)的發(fā)展。

打開UC瀏覽器 查看更多精彩圖片

打開UC瀏覽器 查看更多精彩圖片

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嗡贺,一起剝皮案震驚了整個濱河市隐解,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诫睬,老刑警劉巖煞茫,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異摄凡,居然都是意外死亡续徽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門亲澡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钦扭,“玉大人,你說我怎么就攤上這事谷扣⊥寥” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵会涎,是天一觀的道長裹匙。 經(jīng)常有香客問我,道長末秃,這世上最難降的妖魔是什么概页? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮练慕,結(jié)果婚禮上惰匙,老公的妹妹穿的比我還像新娘技掏。我一直安慰自己,他們只是感情好项鬼,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布哑梳。 她就那樣靜靜地躺著,像睡著了一般绘盟。 火紅的嫁衣襯著肌膚如雪鸠真。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天龄毡,我揣著相機與錄音吠卷,去河邊找鬼。 笑死沦零,一個胖子當著我的面吹牛祭隔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播路操,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼疾渴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了屯仗?” 一聲冷哼從身側(cè)響起程奠,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祭钉,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體己沛,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慌核,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了申尼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垮卓。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖师幕,靈堂內(nèi)的尸體忽然破棺而出粟按,到底是詐尸還是另有隱情,我是刑警寧澤霹粥,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布灭将,位于F島的核電站,受9級特大地震影響后控,放射性物質(zhì)發(fā)生泄漏庙曙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一浩淘、第九天 我趴在偏房一處隱蔽的房頂上張望捌朴。 院中可真熱鬧吴攒,春花似錦、人聲如沸砂蔽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽左驾。三九已至镣隶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間什荣,已是汗流浹背矾缓。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稻爬,地道東北人嗜闻。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像桅锄,于是被迫代替她去往敵國和親琉雳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354