我對(duì)于編程這項(xiàng)技能一直都很向往川背。我經(jīng)常在做到一些繁瑣的重復(fù)型的工作的時(shí)候,想如果有一個(gè)小程序能幫我做一些簡(jiǎn)單的重復(fù)工作就好了蛤袒,這個(gè)時(shí)候往往就覺得自己如果會(huì)編程的話熄云,就能幫助自己更好的工作了。但是隔行如隔山啊妙真,像我這種美術(shù)出身的人來說缴允,編程簡(jiǎn)直就像另一個(gè)世界的語言,完全不能理解珍德×钒悖看了這本《寫給所有人的編程思維》之后,我覺得我和編程的世界好像拉近了一點(diǎn)锈候。
這本書的書名叫做《寫給所有人的編程思維》薄料,顧名思義,它非常的通俗簡(jiǎn)單晴及,可以讓所有的人都懂都办。所有人是什么概念,我想大約是從兒童到老人都可以吧虑稼。
這本書的封面上就把這本書的主旨給寫的非常清楚了琳钉。什么是編程思維呢?蛛倦。就是框架設(shè)計(jì)思維--發(fā)現(xiàn)問題歌懒,問題拆解思維--思考問題,函數(shù)思維--解決問題溯壶。如果用“框架設(shè)計(jì)思維及皂,拆解思維和函數(shù)思維”甫男,大家一定都覺得很難。但是如果用“發(fā)現(xiàn)問題验烧,思考問題板驳,解決問題”,大家都會(huì)發(fā)現(xiàn)碍拆,這不就是我平常都在做的事情嗎若治?
比爾蓋茨說過:學(xué)習(xí)編程可以鍛煉你的思維,幫助你更好地思考感混,創(chuàng)建一種我認(rèn)為在各領(lǐng)域都非常有用的思維方式端幼。
沒錯(cuò),感覺這本書的作者的初衷就是希望大家都能從日常生活中發(fā)現(xiàn)自己的編程思維弧满,進(jìn)而對(duì)編程這門課程有一個(gè)非常系統(tǒng)的了解婆跑。
一,
這本書的開始第1章庭呜,介紹了一下計(jì)算機(jī)的特征滑进,計(jì)算機(jī)的分類。計(jì)算機(jī)并不是我們大家所認(rèn)為的就只有電腦疟赊,其實(shí)很多的我們身邊的電器現(xiàn)在也都算是計(jì)算機(jī)的一部分郊供,甚至我們看的電子書也算是一種計(jì)算機(jī)峡碉。第1章還介紹了編程與計(jì)算機(jī)的歷史近哟,幫我們梳理了一下計(jì)算機(jī)從最原始的狀態(tài)到現(xiàn)在遍布我們身邊這段時(shí)間發(fā)生了怎么樣的變遷。
二鲫寄,
第2章就直接跳到了解決問題吉执,這里就有了一個(gè)疑問〉乩矗“發(fā)現(xiàn)問題”這一章在哪里呢戳玫?我思考了一下,發(fā)現(xiàn)“發(fā)現(xiàn)問題”這個(gè)根本就不用專門的講未斑,因?yàn)槲覀兤綍r(shí)身邊都是在不停的產(chǎn)生問題咕宿。
如何用編程的思維來解決問題呢?這里面講的其實(shí)非常的詳細(xì)蜡秽,大致上來說就是府阀,當(dāng)碰到問題的時(shí)候,我們應(yīng)該怎么解決芽突?
第一试浙, 弄清楚我們碰到的是什么樣的問題。
第二寞蚌, 思考問題是否有不同的解決方法田巴?
第三钠糊, 我們驗(yàn)證我們想到的這些解決方法是不是可行?
聽起來是不是很熟悉壹哺,這不就是我們平時(shí)碰到問題解決問題的一個(gè)思路嗎抄伍?其實(shí)人的大腦就是一臺(tái)特別精密的天然計(jì)算機(jī),所以計(jì)算機(jī)可以說是在模仿人的一個(gè)大腦管宵,但是并不及大腦那么精細(xì)逝慧。所以當(dāng)人們給電腦下指令的時(shí)候,就需要把它拆解成非常非常精細(xì)的一步一步的指令啄糙。
比如說疊被子這個(gè)指令就需要告訴機(jī)器人笛臣,
——先查看羽絨被,被子拉平了嗎隧饼?沒有的話就拉平沈堡。
——再看毯子,毯子拉平了嗎燕雁?沒有的話就拉平毯子
——在看枕頭诞丽,枕頭放在毯子上了嗎?沒有的話就把枕頭放在毯子上
——然后才能結(jié)束拐格。
這個(gè)看起來是不是覺得計(jì)算機(jī)很傻呢僧免?嗯,其實(shí)就是如此捏浊,聰明的還是編程的程序員啊懂衩。
看到這里的時(shí)候才發(fā)現(xiàn),作者其實(shí)并不是告訴你該如何編程金踪,而是告訴你浊洞,我們做任何事情都要有一個(gè)編程思維,編程思維是什么思維呢胡岔?就是把各個(gè)方面都想到法希,然后做到最完善最圓滿最不會(huì)出錯(cuò)的那一個(gè)行動(dòng)。
麥肯錫公司的第一個(gè)女咨詢顧問芭芭拉·民托(Barbara Minto)曾提出著名的思考方式——“金字塔原理(The Minto Pyramid Principle)”靶瘸。
其中苫亦,提到了一個(gè)重要原則:MECE,即Mutually Exclusive Collectively怨咪。Exhaustive屋剑,中文意思是“相互獨(dú)立,完全窮盡”惊暴。也就是饼丘,將影響一個(gè)重大議題的原因,不重疊辽话、不遺漏地拆分肄鸽,藉此有效把握問題核心卫病,找到解決方案。
當(dāng)遇到簡(jiǎn)單問題的時(shí)候典徘,可能只需要幾個(gè)步驟就可以圓滿的解決一件事情蟀苛。但如果遇到一個(gè)很復(fù)雜的問題的時(shí)候,我們?cè)撊绾斡镁幊趟季S來解決呢逮诲?這本書里面也給了一個(gè)完美的答案帜平,就是把這個(gè)復(fù)雜的問題拆成無數(shù)個(gè),或者說若干個(gè)簡(jiǎn)單的小問題梅鹦,然后一步一步的來解決裆甩,這個(gè)是不是就跟王首富說的,先給自己定一個(gè)小目標(biāo)是一個(gè)意思呢齐唆?
當(dāng)我們碰到一個(gè)很難的問題的時(shí)候嗤栓,我想大部分人都可能會(huì)覺得非常的棘手,一部分人就會(huì)馬上開始做箍邮,其實(shí)辯證思維告訴我們最正確的方法應(yīng)該是先把這個(gè)問題拆解了茉帅,拆解成一部分,然后我們立刻就能知道這些問題的難點(diǎn)在哪里锭弊。我們需要攻克的方向在哪里堪澎?并且這個(gè)看起來很復(fù)雜的問題拆解完之后就會(huì)變成無數(shù)個(gè)簡(jiǎn)單的小問題,這樣是不是對(duì)人的壓力更小一些呢味滞?
作者還提醒我們解決這些問題的時(shí)候樱蛤,要關(guān)注那些沒有給出的條件和信息,因?yàn)榇鸢笗?huì)藏在我們看不見的地方桃犬。有些時(shí)候這些問題可能會(huì)受到約束刹悴,我們記得一定要在這些約束條件之下做。
三攒暇,
第3步學(xué)習(xí)編程語言。這一部分其實(shí)可能是我看的最累的一部分子房,因?yàn)槲覍?shí)在是跟不上理科生的這個(gè)思維形用。
作者先介紹了各種編程語言,世界上有那么多的編程語言证杭,人不可能全部都學(xué)會(huì)田度。作者把一些經(jīng)常用的程序語言都做了一個(gè)普及性的了解,讓我們知道了原來這些編程語言的原理是什么解愤,該如何的運(yùn)用镇饺。
作者在其中還配套了有趣的小游戲和小小的插畫,讓看的人更能簡(jiǎn)單易懂的了解作者到底在說什么送讲。當(dāng)你的編程語言編程思維都已經(jīng)準(zhǔn)備好的時(shí)候奸笤,剩下的就是不停的練習(xí)了惋啃。
這本《寫給所有人的編程思維》,看完之后給我最大的感受并不是說如何學(xué)習(xí)編程监右,而是說原來我們生活中遇到的所有的事情都可以用編程思維來解決边灭,讓問題分解簡(jiǎn)化,可以大大的減少我們對(duì)于碰到問題時(shí)候的焦慮健盒,這不是比學(xué)會(huì)編程更大的收獲嗎绒瘦?
正如美國(guó)麻省理工學(xué)院的計(jì)算機(jī)教授瑞斯尼克所說的:“在學(xué)編程的過程中教會(huì)孩子們?nèi)绾螌?fù)雜的想法分解成幾個(gè)部分,不管孩子以后做什么扣癣,都可以用的到惰帽,這才是學(xué)編程的意義所在「嘎牵”