為什麼有“編程思維”的孩子總是更優秀?

首先,請大家一起來想象一個畫面。

此刻,疲憊一天的你正在回家的電梯上。從 1 層進入,並點亮了前往 5 層的按鈕,電梯開始緩緩向上爬升,到第 3 層時,電梯停了下來,走進一個金髮碧眼的女郎。

這時,幾個疑問忽然闖入你的腦海:為什麼我按了 5 層的按鍵,電梯就會開始向上爬升?為什麼外面有人按了樓層按鈕,電梯就會停止?電梯的程序是如何運作的呢?

很巧,這些小問題正好可以用編程思維來解答。

① 「當你在 1 樓,想去 5 樓」,這裡涉及了起終點和循環的概念。從起點 1 出發,終點為 5 ,循環計數從 1 到 5 ,滿足的退出循環條件,電梯停了,門也打開了。

②「當你在上升的過程中,外面有人按了按鈕」,這裡涉及了判斷語句。電梯的程序中,有一個判斷條件,一直在監聽 If (是否有人按了按鈕),當條件成立,電梯就會停止。


發現了嗎?生活中處處有編程,編程原本就是為了解決生活中的實際問題。

我們的孩子學編程,不只是單純學會代碼,掌握一項技能,或是培養一個興趣,最重要的,是掌握背後一整套高效解決問題的思維模式

擁有這種思維模式的人,通常在生活中看起來更加“聰明”:無論是在工作還是學習中,你都會發現他頭腦清晰、反應靈敏,做事效率也非常高。


為什麼有“編程思維”的孩子總是更優秀?



你有沒有發現,那些站在金字塔頂尖的人,通常不止在自己的領域優秀,而是“文史哲數理化”樣樣精通。這是因為他們擁有一套高效的思維模式,對知識的消化和吸收也非常快

學編程的本質,就是為了幫助孩子們形成這樣的思維模式——「編程思維」,又叫「Computational Thinking」

如此神奇的「編程思維」到底是什麼呢?

編程思維,是一種高效率解決問題的方式,是“理解問題——找出路徑”的高效思維過程,它由“分解—抽象—模式識別—算法”四個步驟組成。


為什麼有“編程思維”的孩子總是更優秀?



聽起來很高大上的樣子?彆著急,讓我們一起來做一些新鮮有趣的解讀。

分解 —— 化繁為簡


分解,簡單來說,就是“把複雜的大問題,拆解成更可執行、更好理解的小步驟”,它能鍛鍊我們拆解複雜問題的能力。

生活中常常會出現一些複雜,且需要多步驟才能解決的問題。很多人在遇到此類情況時,常常感到一團亂麻,完全不知道該從何下手。這樣的人,就是缺少“分解問題,化繁為簡”的能力。

這類問題可能是一篇2萬字要求的論文,一道看上去毫無頭緒的數學題,也可能是假期出行前的一次旅行規劃。

面對複雜問題,不要害怕,首先,拆了它!

現在,你要和幾個朋友一起出國旅行,由你來負責出行前的規劃。需要做什麼?


按照時間維度來拆解這個問題。首先,我們需要選擇出行目的地,然後做旅行攻略、安排行程,接下來就可以預定機票和酒店,最後準備行李清單。

而四個大步驟又可以具體拆解為許多小步驟,詳見下圖


為什麼有“編程思維”的孩子總是更優秀?



把一個比較大的問題多層拆解之後,看起來是不是就清晰很多了?

編程的過程,就是把複雜和龐大的問題“自上而下,逐步拆解,直至理順”。這種思維,在學習和生活叫“分解思想”,在工作中又叫“項目管理”。

為什麼有“編程思維”的孩子總是更優秀?


做數學題也是一樣的道理。解答一道複雜的題目,通常需要把它拆解成多個大步驟,而每個大步驟,又可以繼續分解為更多的小步驟......分解思想,也是數學中最重要的思想之一。這也是學編程的孩子,數學成績也不會差的原因

具備這種思維的人,做事情是有條不紊並且有耐心的。而分解能力好的孩子,即便面對一道有挑戰的數學題,也能列出清晰的解題步驟,清楚地知道自己每一步的進展,而不是遇到難題時腦子裡一團亂麻。

抽象 —— 聚焦關鍵


編程中最關鍵的就是“抽象思維”能力,它能鍛鍊我們聚焦重點,忽略無用信息,並抽取關鍵信息的能力。

抽象思維聽起來有點抽象?沒事,再邀請你進行一次想象。

現在,想象一個房子的形象。


在一般人的想象中,它有可能是這樣的:


為什麼有“編程思維”的孩子總是更優秀?


天藍色的房頂,明亮的玻璃窗

一扇小小的木門朝向綠意盎然的花園

但在建築師的想象中,它可能是這樣的:


為什麼有“編程思維”的孩子總是更優秀?



建築師想象中的房子,具體到了房子內部的具體架構和材料,每一面牆、每一扇門窗應該如何更精巧地設置。

那如果是化學家呢?他心中的房子,甚至可能是由一個個原子,按照一定的規律排列組合而成的。

在上述案例中,門和窗子的物理材料,是對原子的抽象,而整個房子,又是對門窗房頂這些具體構成房子的物體的抽象。

發現了嗎?我們的生活中處處是抽象思維。


為什麼有“編程思維”的孩子總是更優秀?



數學中,實數運算是對現實的抽象,代數運算是對實數運算的抽象,抽象代數又是對代數的抽象。國家方針政策是對整個國家運行發展的抽象,國家級政府職能部門對方針政策進行具象,省市縣級再依序進行具象......

我們的現實,就是在這樣一步步的分層抽象中,逐步清晰起來。抽象級別越高,則越接近事物的本質,規律的適用面也越廣。


為什麼有“編程思維”的孩子總是更優秀?



編程的世界裡,就包含“子系統、模塊、包、類、方法和語句”等不同層級的抽象,學編程能鍛鍊孩子們不斷抽象、聚焦關鍵信息的能力

在學習中,抽象思維也非常重要,我們孩子在學校裡的學習,很多都是對抽象思維的訓練與考察。例如,學語文課文時,需要定位段落關鍵句;做英語閱讀理解時,要快速抓取關鍵信息和中心思想。抽象思維能力越高的孩子,在大量信息中聚焦關鍵信息的能力會越強,專注力也會更高,自然學習也會更輕鬆。

模式識別 —— 規律整合


模式識別,就是“如何找出相似的模式,並高效率解決細分問題”,它能極大鍛鍊我們規律整合的能力。

說到找規律,大家都不陌生。老規矩,這次來做一道題。

假如你有一副撲克牌,取出大小王並打亂順序後,一人隨機從中取出一張,如何確定取出的牌是幾?


好像有點難?沒事,讓我們先把它抽象成一個數學問題:

1 + 2 + 3 + 4 + ...... + 100 = ?


國外的一個小孩在多年前就發現規律,並巧妙地解決了這個問題——

1 + 100 = 101,2 + 99 = 101 ...... 50 + 51 = 101

從 1 加到 100 共有 50 個這樣的組合

因此 50 ✖️101 = 5050

總結規律 1+2+3+......+n =n✖️(n+1) / 2


你猜的沒錯,這個小孩就是偉大的數學家高斯,上圖就是高斯算法的思路。

回到我們的撲克牌題目,你能否識別出它其中悄悄隱藏的高斯求和模式呢?

同一大小的牌共有4張,所有牌的面值大小為(1+2+......+13)✖️4

套用高斯算法,總面值大小為[(1+13)✖️6]✖️4=364

要算缺少的撲克牌,用364減去手上牌面值的總和即可。


善於發現和總結規律的人,常常做事麻利、效率也特別高。因為他們腦子裡自備各種規律的“方法庫“,遇到相似的情況就直接調用,極大節省了時間,也不會錯漏。


為什麼有“編程思維”的孩子總是更優秀?



在編程學習的過程中,孩子們也一直在做這樣的訓練:發現一些可以重複的單元,把它整合起來,套用進設定好的模式,再讓計算機去重複它

規律整合能力強的孩子,也善於發現學習中的規律和方法。看到一道題,有些孩子一瞬間就想到了解題方法與思路,我們會感嘆道:“這個孩子真聰明”。事實上,是因為這個孩子具有很高的「模式識別,規律整合」的能力。


為什麼有“編程思維”的孩子總是更優秀?



分解—— 化

算法 —— 邏輯思維


算法,就是根據之前一系列對於問題的理解,設計一步一步的解決路徑,並解決整個問題。

在具體解決問題的過程中,最關鍵的能力有兩個 —— “邏輯思維”“調試糾錯”

邏輯思維能力


程序員圈子很流行的一個笑話。

娃媽給程序員老爸打電話:“下班順路買10個包子帶回來,如果看到賣西瓜的,就買一個。”

結果娃爸手捧一個包子進了門。娃媽怒道:“你怎麼就只買了一個包子?!”

娃爸答曰:“因為看到了賣西瓜的。”

雖然是一個黑程序猿的笑話,但也體現了很典型的編程思維。編程就是理性嚴謹地與電腦對話,因此對編程者的邏輯思維能力也有很高的要求

邏輯思維中有個很重要的原則叫 MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整體完備”,也就是“不重複,不遺漏”。

為什麼有“編程思維”的孩子總是更優秀?


右圖符合MECE原則,左圖則沒有


在編程的算法中,需要處處考慮MECE原則。解數學題時,也是同一個道理——我們要保證答案中考慮到所有的情況,而這些情況既不遺漏,也不重疊。

另外,編程算法中還會涉及到處理很多 “與”、“或”、“非”等邏輯用語。這些操作和思考,對孩子來說都是非常好的邏輯訓練。

調試糾錯能力


編程的世界裡,只有對與錯,沒有模糊值。在程序運行的過程中,只要最終的結果與期望不符合,就證明算法中肯定有錯漏。


為什麼有“編程思維”的孩子總是更優秀?



但是,程序中的bug常常不是一下就能找到的,需要我們把程序的運行順序一步步地跟走一遍,同時觀察每一步的運行結果。這就需要很多的耐心、觀察力和專注力,對孩子的抗挫能力也是一種磨練。孩子在這個過程中,也會逐漸懂得一個道理:犯錯很正常,糾正它,下次不再犯類似的錯誤就好。

這一點,也是優秀的人身上常常共通的一項品質。這些人總是在進步,因為他們懂得“回溯、調試、糾錯”不斷進行自我優化和成長,不斷be better。


為什麼有“編程思維”的孩子總是更優秀?



以上,就是傳說中的 4 大「編程思維」了,是不是沒有想象中的晦澀難懂呢?

蘋果創始人Steve Jobs曾說:“每個人都應該學習編程,因為它教會你如何思考。

孩子學編程的過程,正是在不斷的思考和實操中,反覆訓練提升這 4 項重要的思維模式,建立一種真正“抗打”的認知思維和學習能力 —— 這是一種底層的思維邏輯,在任何行業都能通用,同時也是迎接人工智能時代的基本素養

20 年前,學英語不是為了成為翻譯員;

10 年前,學習電腦不是為了成為打字員;

今天,學習編程不是為了讓孩子們都成為程序員,而是為他們打開一扇門,走進更廣闊的未來世界!


分享到:


相關文章: