如今,學(xué)習(xí)編程已經(jīng)變得越來越熱門,越來越多的人都在討論這個(gè)話題,但還是有很多人會(huì)產(chǎn)生這樣的疑問:到底有沒有必要學(xué)習(xí)編程?討論這個(gè)問題,我覺得可以從學(xué)習(xí)編程的好處和用處這兩個(gè)方面來分析一下。 好處 喬布斯有句名言:人人都應(yīng)該學(xué)習(xí)編程,它將教會(huì)你如何思考。相信很多人都已經(jīng)很熟悉這句話了,那編程是怎樣幫助我們思考的呢? 抽象化 抽象化絕對(duì)是編程提供給我們的最有力的武器,那什么叫抽象化呢?我們舉個(gè)例子,排隊(duì)是怎么回事?排隊(duì)說到底,就是一個(gè)先進(jìn)先出,后進(jìn)后出的模式,這個(gè)模式不受排隊(duì)的是老人還小孩,隊(duì)伍的長短這些表象的事物所影響,提煉出事物的模式,就叫做抽象化。 在編程中,無論你是要設(shè)計(jì)一個(gè)游戲,還是設(shè)計(jì)一個(gè)網(wǎng)頁,都要不斷地提煉各種模式,你也會(huì)在這個(gè)過程中積累大量的模式。經(jīng)過這樣一種抽象化的練習(xí)之后,你會(huì)獲得一種快速洞察事物的本質(zhì)的能力,在分析各種問題時(shí)也能快速找到問題的本質(zhì),從而提升解決問題的能力。 結(jié)構(gòu)化 編程中的結(jié)構(gòu)化是指將一個(gè)復(fù)雜的問題拆解成一個(gè)個(gè)獨(dú)立的子問題,形成一個(gè)個(gè)模塊,再將這些模塊組合在一起,形成完整的方案。 雖然編程不是鍛煉結(jié)構(gòu)化唯一的方法,但卻是鍛煉結(jié)構(gòu)化非常有力的工具。因?yàn)槟阍诰幊讨锌梢哉媲械捏w驗(yàn)到結(jié)構(gòu)化帶來的好處,它不僅能讓你的思路更清晰、讓調(diào)試更容易、還能提高程序的復(fù)用率。在不斷體會(huì)結(jié)構(gòu)化力量的同時(shí),它也形成了你的思維方式,幫你在思考其他問題時(shí)更高效。 調(diào)試 前面我們已經(jīng)提到了調(diào)試,它是編程里的一個(gè)專業(yè)術(shù)語,是指在程序出錯(cuò)時(shí),找到錯(cuò)誤,把它修復(fù)好。看起來好像是很平常是一件事,但請(qǐng)仔細(xì)想一下,在我們的現(xiàn)實(shí)生活中如果犯了錯(cuò)誤,會(huì)怎么樣呢?現(xiàn)實(shí)社會(huì)的價(jià)值觀中并不歡迎錯(cuò)誤,所以造成很多孩子無法面對(duì)失敗,沒有從失敗中學(xué)習(xí)的能力。 在編程的世界中則不一樣,很少有程序能一次成功,反復(fù)出錯(cuò),反復(fù)修改都是再正常不過的事情了。出現(xiàn)問題時(shí),大家都會(huì)馬上尋找錯(cuò)誤、分析錯(cuò)誤、改正錯(cuò)誤,正如Seymour Parert 所說:“在過程中不斷的修正才是智力活動(dòng)的精髓。” 我找不到一個(gè)比編程世界更包容錯(cuò)誤,更鼓勵(lì)在錯(cuò)誤中學(xué)習(xí)的環(huán)境了,在這樣的環(huán)境中,孩子不僅可以學(xué)會(huì)從容地面對(duì)失敗,他們的思考能力也在不斷迭代更新。 讓思維可見 編程是一個(gè)讓我們的思維可見化的過程。不論是從最開始的流程圖、時(shí)序圖,還是到最后將我們的思維變成代碼,都是將我們腦袋里的想法變成可見的事物的過程。 那讓思維可見有什么好處呢?當(dāng)我們把自己腦袋中的想法變成可看到的事物時(shí),我們才能抓住它們,然后理解它們、審視它們,最后改進(jìn)它們,完成思考能力的提升。 這就是編程教我們思考的方式,經(jīng)過在編程世界的練習(xí),它們會(huì)變成我們思維中的助推器,在我們面對(duì)各種挑戰(zhàn)時(shí),幫助我們擁有更強(qiáng)大的思考能力。 用處 如果前面這些在思維方面給我們帶來的好處還沒有打動(dòng)你的話,我們?cè)賮砜纯磳W(xué)會(huì)編程后,都有哪些用處吧。在很多人的印象中,學(xué)習(xí)編程只有一個(gè)用處就是成為程序員,其實(shí)除了當(dāng)程序員,學(xué)會(huì)編程還有很多其他的用處。 處理數(shù)據(jù) 都說現(xiàn)在是一個(gè)信息的時(shí)代,我們每天接觸到的各種信息越來越多,在未來更會(huì)是一個(gè)數(shù)據(jù)爆炸的世界。我們做的很多事情都離不開數(shù)據(jù),所以如何運(yùn)用數(shù)據(jù)也會(huì)成為一種生產(chǎn)力。 而編程在搜集數(shù)據(jù)、處理數(shù)據(jù)、利用數(shù)據(jù)等方面,都能起到非常大的作用,短短的一段程序,就能幫你節(jié)省數(shù)小時(shí)的時(shí)間。學(xué)會(huì)編程后,很多你覺得永遠(yuǎn)不可能完成的任務(wù),輕輕松松就搞定了,這就是編程的力量。 創(chuàng)造工具 設(shè)想一下,假如你的工作中有一些像每天定時(shí)發(fā)送郵件或者批量修改圖片的大小這樣重復(fù)性的無聊的工作,你是不是很希望能有一個(gè)小工具來幫你完成這一切,只要輕輕一點(diǎn),計(jì)算機(jī)就會(huì)幫你快速完成這些工作。 可能你會(huì)想,我直接用別人開發(fā)的工具就好了啊,但隨著我們工作復(fù)雜性的提高,每個(gè)人的需求可能都會(huì)不一樣,你很難找到完全符合自己要求的工具,不如自己根據(jù)自己的需求定制工具,當(dāng)需求發(fā)生變化時(shí),還可以自己修改。掌握了這種能力,可以大大提升你的工作效率,還能減少無聊工作帶給你的不好的情緒,讓你成為工作的主人。 計(jì)算機(jī)是我們?nèi)祟愖顝?qiáng)大的工具,通過編程你才能更好地控制這個(gè)工具,發(fā)揮出它的價(jià)值,讓它真正為你所用。都說未來是人工智能的世界,在未來到來之前,對(duì)它多一些了解,在它真的來到時(shí),你才能更好地?fù)肀?/p> |
|