如何讓不懂編程的人感受到編程的魅力?
先引用一個故事
一家高檔餐廳中,一個禿頂大叔和一個漂亮妹子相對而坐。
“謝謝你請我吃飯”,妹子有些害羞。
“沒事的,半天工資就回來了?!蔽艺f的云淡風輕。
“你人真好,聽說你還給我準備了禮物?”妹子看上去有些期待。
“是的”,我拿出了一只香奈兒Classic flap,“送給你?!?br/>“這么貴重的禮物,我怎么好意思收下?!?br/>“沒關(guān)系,也就我一個月工資。”
“嘻嘻嘻,可是我還缺一條項鏈配這個包?!?br/>我微微一笑,拿出了一條梵克雅寶項鏈,“試試吧,你戴上一定很好看?!?br/>
“會編程真厲害!”妹子由衷的感嘆。
喬布斯說
每一個人都應(yīng)該學習電腦編程
因為它會教你如何思考
編程思維是一種能力的思維
想要擁有編程思維
應(yīng)該先了解編程是什么?
編程就是和電腦對話,用電腦能聽懂的語言,告訴它我們想讓它做的事情。
先來點例子:

如果我想休息一下,會這么和孩子說:“把那個凳子搬過來。”
如果我們想讓電腦聽懂這句話,就需要這么和電腦表達:
定義對象:什么是“凳子”;
把凳子向上移動20厘米;
往前移動兩米;
把凳子向下移動20厘米。
這樣,電腦就完成了我們想要它做的事情。
相比于人類之間交流的隨意與感性,和電腦對話時,必須具備嚴謹、理性的思路,每一步都要給出準確的指令,這樣就能讓電腦按照自己的想法行動,不會讓結(jié)果跑偏。
想要讓電腦聽懂我們說的話,需要讓自己變得理性、嚴謹,思維具有條理。
很多人都聽過編程思維,但對它了解的卻不多,甚至會產(chǎn)生這種誤解——編程思維就是編程算法。
其實,編程思維并不是編寫程序的技巧,而是一種高效解決問題的思維方式,它是“理解問題——找出路徑”的高效思維過程,由分解、模式識別、抽象、算法四個步驟組成。

1、分解——鍛煉拆解復雜問題的能力
分解,就是把一個復雜的大問題,拆解成更可執(zhí)行、更好理解的小步驟。
假如孩子要為家庭出游做一次旅游規(guī)劃?!叭衣糜我?guī)劃”聽起來非常龐大、繁瑣,而學會分解的孩子則會把這個難題拆分成幾個容易解決的小任務(wù)——確立目的地、安排行程、預定機票和酒店、準備行李清單。
2、模式識別——鍛煉發(fā)現(xiàn)并整合“重復規(guī)律”的能力
模式識別,就是識別不同問題的模式和趨勢(共同點)的過程,在我們的經(jīng)驗庫里找出類似問題的解決辦法,套用解決。識別的模式越多,解決問題的速度也就越快。
例如,如果需要畫100只貓,你會怎么辦?是找100只貓來臨摹還是找出貓的“模式”?
對貓進行模式識別,我們會發(fā)現(xiàn)貓有這些共同點:有眼睛、耳朵、尾巴、四條腿……我們根據(jù)這些特點建立起貓的“模式”,按照這個模式就能批量畫貓了。不用每次畫一個新動物,只需要變換局部特征(例如毛發(fā)顏色、尾巴長短)就能輕松解決。

這樣看來是不是效率瞬間飆升?
在編程過程中,孩子一直在進行著這樣的訓練,當發(fā)現(xiàn)一些可重復的步驟,就會把它們整合起來,建立模式;再遇到類似問題時就能讓計算機套用此模式,快速解決。
3、抽象——鍛煉找出問題本質(zhì)的能力
抽象,是指聚焦最重要的信息,忽視無用細節(jié)。簡單來說就是找到問題的本質(zhì),過濾掉其他無關(guān)緊要的因素。
例如,面前有一套房子,我們看到的是這樣的:

但是在建筑師眼中,這套房子可能是這樣的:

通過抽象,建筑師過濾掉對他來說無用的因素,找到了房子最重要的信息。
在編程世界里,包含“子系統(tǒng)、模塊、包、類、方法和語句”等不同等級的抽象,孩子能夠通過編程的學習不斷提升聚焦關(guān)鍵信息的能力。
4、算法——鍛煉高效解決問題的能力
算法是一步步解決問題的過程。根據(jù)前面對問題的分析與理解,設(shè)計每一步的路徑方法,解決整個問題。
在具體解決問題的過程中,最關(guān)鍵的是邏輯思維能力和調(diào)試糾錯能力。
計算機程序需要很強的邏輯性,邏輯順暢才能順利運行。例如,正確代碼呈現(xiàn)出的五角星動態(tài)圖這樣的:

而只是把其中兩行代碼交換下順序,結(jié)果就成了這樣:

孩子需要遵循編程的規(guī)則,把解決問題的步驟轉(zhuǎn)換成計算機能理解的語言。在這個過程中,孩子的邏輯思維能力能得到很好地鍛煉。
而調(diào)試糾錯,就是當出現(xiàn)結(jié)果與預期不符時,需要找出算法之中的漏洞并解決。
在編程練習中,任何一行代碼出問題,程序都會出錯無法正常運行下去。這時,孩子就必須要自己一步步執(zhí)行步驟、梳理邏輯,找出問題并想辦法解決。