我一直認為接觸很多新的事物,才能更好的認識世界。每一個新領域都能給我們帶來新的知識,裝載著這些新知識的我們自然也會獲得新的思維,新的能力,新的看待世界的角度。學編程也如此。
編程的本質是什么?用一句話來解釋,編程就是和計算機對話,用電腦聽得懂的語言,告訴它我想讓它做的事。
當我們嚶嚶學語,我們的父母教給我們的是漢語,也就是中國的語言。在成長的過程中,我們用漢語來溝通,但隨著年齡的增長,我們開始接觸英語、日語等其他國家的語言。我們通過不用的“語言形式”和他人溝通,以此來完成我們的目的。
語言有很多種,包括漢語、英語、法語、韓語等,盡管輸出的形式不同,但可以達到同樣的目的。同樣,我們也可以通過”語言“來控制計算機,讓計算機為我們做事情,這樣的語言就叫做編程語言。
今年兩會,教育依舊是民眾關注的熱門領域。調查顯示,在受訪者期待的各類兩會議題中,教育僅次于。科技素養對人工智能時代的重要性已經不言而喻,我國對科技人才的布局也是刻不容緩。
所以,要跟電腦溝通對話的前提,我們也必須讓自己變得理性、嚴謹起來,從電腦的角度去思考問題,這就是所謂的編程思維。這種思維能帶給孩子什么好處?下面我用一個大家都很熟悉的游戲“貪吃蛇”作例子,我們一起來看看吧:
編程如何培養孩子的能力
拆—拆分問題的能力
要做一個“貪吃蛇”游戲,這是一個很大的問題,該怎樣入手呢?如剛才所講,得想辦法讓電腦把這件事情搞明白,有哪些步驟,每一步該干什么,哪步在先哪步在后。所以我們首先需要把這個大問題進行拆解。
拆解
在這個程序中,計算機主要處理兩件大事:
1.處理輸入–收集用戶操作信息
2.輸出響應–根據不同的輸入,做出不同的響應
再拆解
1.輸入-用戶的操作可以有按上、下、左、右鍵四種
2.輸出-相應地,貪吃蛇也要做往上、下、左、右走的動作
我們將第二點再拆解
貪吃蛇每走一步,可能有這幾種情況:
1.吃到蘋果
2.撞到墻
3.撞到自己
4.什么都沒發生
我們不難發現具備這種有拆解能力的人做事情是耐心的、有條不紊的。
整—發現并且整合“重復規律”的能力
“找規律”就是觀察和找到那些重復發生的規律。
比如“貪吃蛇吃蘋果”所發生的一系列動作,是程序中多次會發生的,無論蘋果在左上方還是右上方,無論蛇是從上面吃還是從下面吃,都是同樣的一組動作,那么我們就可以把這組動作打包,給它取一個名字叫“吃蘋果”。
每次蛇遇到蘋果時,就可以直接把“吃蘋果”拿出來用,而不用重新把它所包含的一系列動作再想一遍,搞不好的話還會有紕漏。
在編程的過程中,孩子得一直在做這樣的訓練,發現一些可以重復的單元,把它整合起來,讓計算機去重復它。
觀察那些做事效率高的人,他們就具備了這個能力。很多孩子解題快,就是他善于發現和總結“重復規律”,腦袋里自備了一個裝有很多類似于“吃蘋果”那樣的方法庫,遇到時直接調用,不用再從頭到尾想一遍,也不會錯漏。
析—邏輯思維能力
邏輯思維中有個非常重要的原則叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整體完備”,也就是“不重復,不遺漏”。
在編程過程中,處處要考慮和遵循MECE原則。
比如在貪吃蛇的程序里,蛇每往前走一步,可能會出現4種情況:
a.吃到了蘋果
b.撞到墻
c.撞到自己
d.什么都沒發生
這4種情況是互斥的,比方說吃到蘋果的時候就不可能撞到墻,那么程序中就不能讓蘋果出現在墻上;而且,這4種情況覆蓋了所有可能性,在寫程序時如果只考慮了其中的2種或3種,就不“完備”了。這些思考對孩子的來說都是非常好的邏輯訓練。
改—調試糾錯能力
這點是最重要,也是孩子最需要的能力。
任何事情都很難一次就完成得盡善盡美,程序運行起來發現不對有問題,這時就需要孩子去尋找出錯的地方,并將它一點一點去改正。
實際上程序中很多bug都不是一下就能找到的,常常需要從頭到尾把程序的運行順序一步一步地跟走一遍,觀察每一步的運行結果(專業術語叫“單步調試”)。這需要很多的耐心、觀察力和專注力,對孩子的抗挫折能力也是一種磨練。
當調試經驗豐富之后,孩子在寫程序時還會懂得給那些“有可能會出錯”的地方先做個記號,方便回頭來檢查糾錯。他更關注于提高自己糾錯的技能,而不是害怕、回避或者掩蓋錯誤。孩子會越來越懂得,有錯很正常,只要能把它揪出來,改正就好。
有些人總是在進步,因為他隨時懂得回溯、調試、糾錯,進而提升自己。
少兒編程越來越火,側面說明了社會對于編程的需求越來越重要,或者說是對編程知識的渴望越來越強烈。無論是以前的英語熱,還是考研熱等,話題越來越火的背后,實際上是大家對這個方向的學習需求。以上這些能力,其實并不是編程特有的,但它們卻是在編程這件事情上集體出現的。如果你問我:孩子有沒必要學編程,我會很肯定地回答,有必要。