要不要孩子學編程?這份避坑指南,讓你少走三年彎路

要不要孩子學編程?這份避坑指南,讓你少走三年彎路

少兒編程近期一直很火熱,很多家長躍躍欲試。但也有很多疑問,比如:

  • 孩子應該幾歲開始學?

  • 對升學真的有幫助嗎?

  • 報線上課還是先下課?

  • 跟機器人課的區別是什麼?

  • 到底學哪種編程語言比較好?

  • 要如何判斷授課老師的水平呢?

...............

果仁媽今天分享的這份編程啟蒙避坑指南,全是大實話,從編程的整體進行探討,並一一解答,希望幫助你在狂熱的少兒編輯培訓中,理性地做出判斷和規劃

最近幾年,STEAM教育一下子被推到風口。尤其是“少兒編程”受到各路人馬追捧,不僅各種主打線上編程教育的初創公司遍地開花,一些傳統的線下學科培訓機構也紛紛開始開設少兒編程課程。

少兒編程的“一夜火爆”,背後少不了國家政策的支持。2017年,國務院印發了《新一代人工智能發展規劃》,其中明確提到:

“實施全民智能教育項目,在中小學階段設置人工智能相關課程,逐步推廣編程教育,鼓勵社會力量參與寓教於樂的編程教學軟件、遊戲的開發和推廣。”

這一文件等於為少兒編程教育機構高調站臺。

另一方面,和語文、數學、英語等學科培訓以及藝術培訓相比,編程課還算“小眾”。所以很多機構也瞄準了這塊潛力巨大的市場,鋪天蓋地地搞起了宣傳。比如說號稱說要教給孩子“人工智能”,或者號稱孩子學幾節課就可以做出很厲害的作品。

對於父母而言,自己懂得編程的人並不多,真的自己就懂編程的家長可能都996去了,沒時間管孩子的課外班;要麼就自己在家教了。這就導致許多家長會被鋪天蓋地的廣告所“迷惑”,無法做出正確的判斷。

我自己從小就接觸編程,參加過信息學奧賽,在現實生活中,也在幫自己孩子規劃編程學習路線。

——我寫這篇思考乾貨的初衷,其實是分享我的思考新得,從而給廣大家長提供一份編程啟蒙避坑指南

需要提前說明的是,這篇指南只從整體的角度探討,不針對任何具體的培訓機構。

要不要孩子学编程?这份避坑指南,让你少走三年弯路

1 為什麼機構說學編程要趁早?幼兒園就要開始學了?

我們這一屆家長,其實很少有人從小就接觸編程。很多人可能到高中甚至大學之前都沒有摸過電腦。作為一個“異類”,我自己是從小學的時候就開始邊玩邊學編程了。

那時候的編程還不像現在有各種圖形化、看上去很好玩的環境和工具,都是直接編寫程序代碼的。我認為小學作為編程的起點是可以接受的

我自己也帶過一些孩子學習簡單的編程,儘管每個人接受程度不同,但總體而

言,小學二年級(7~8歲)的孩子,其實都已經可以理解編程的基本概念和邏輯了,比如指令、循環、分支、變量等等

不過,這是否就意味著學編程越早越好嗎?

曾經有一個著名的“雙胞胎爬梯實驗”:

一對雙胞胎,其中一個寶寶在48周時開始訓練爬樓梯,另一個寶寶在52周時才開始訓練,結果兩個寶寶都在54周的時候學會了。

學編程也是一樣,晚點開始,也未必就會落後,可能還能幫你省點錢。

這是因為一旦孩子的抽象思維和邏輯思維有了一定發展,編程中很多概念就可以被很快理解了;但反過來,你給一個幼兒園小朋友講這些東西,就需要花很長很長時間,他們還沒辦法完全理解。

小孩子無法理解這些抽象的概念怎麼辦呢?

那就只能搞所謂的“寓教於樂”了:以玩為主,把戰線拉長。這樣做對於機構其實也有好處,因為孩子報培訓班都是有一定粘性的,早點把你圈進來才能讓你一直學下去。

2 學編程有什麼用?機構說能提高課內成績?能幫助升學?

機構宣傳的那些好處可能都比較注重實用性,我們先不說這些。

從家長角度來講,學習編程的好處其實還是在以下兩方面:

1. 培養“如何解決問題”的思維方式

編程思維的核心,其實是把複雜的問題分解成一個一個較小的模塊,而其中的一些模塊應該是可以重複使用的

預先設計好這些模塊之間的聯繫,逐個實現這些小模塊之後,再把它們都整合到一起——這種能力對於解決任何問題都有幫助,也是讓孩子學習編程最大的收穫之一。

2. “調試”這個過程所體現的價值

沒有人能一次把程序寫對,寫完之後一運行,總會發現這樣、那樣的問題,這時候就需要進行“調試”。

調試對於孩子來講其實是個很痛苦的過程,有時候調了半天還是不行,就很有挫敗感。但這個過程恰恰能鍛鍊很多能力:

比如怎樣找到問題出在哪裡,其實有很多技巧和方法;還要有足夠的耐心和敏銳的觀察力——這些都是放在任何領域都很有用的能力

至於用編程來提高課內成績,理論上也許可以做到,但現實中並沒有太多數據支持,所以大家也別太當真

至於編程是否能幫到升學,也是大家很關注的問題。

我觀察到的是:跟升學相關的“硬通貨”比賽賽事其實是非常少的

比如拿NOI(全國青少年信息學奧林匹克競賽)來說,每年全國比賽金牌也就幾十個,其實是非常小眾的——如果我們拿這個獎牌作為學編程的目的,就會搞得像曾經的“全民奧數”一樣,家長和孩子都身心俱疲,也沒什麼意思了。

學習任何東西都是同樣的原則:興趣為先,適度引導

3

學編程才能在人工智能時代有飯吃?孩子能自己編寫人工智能程序?

自從前兩年Google的人工智能軟件AlphaGo擊敗人類最頂尖的圍棋選手以來,人工智能一夜之間成了一個家喻戶曉的名詞。所有的機構都在拿人工智能說事兒,比如說:“人工智能編程,讓兒童贏在未來”等等。

我們說的人工智能,其實是指以“機器學習”為主的一種軟件系統。

機器學習又是什麼呢?

著名人工智能專家吳恩達(Andrew Ng)在他主講的斯坦福大學機器學習課程簡介中是這樣說的:

“機器學習是一門研究讓計算機無需專門編寫程序,就能完成工作的科學。”

也就是說,機器學習的目標就是“不需要編程”,意外嗎?

機器學習解決了一些複雜的特徵識別問題,比如說一張圖片上面是貓還是狗,我們用傳統的指令編程很難讓計算機完成這個任務,因為貓和狗的特徵太複雜了,不是能用指令描述清楚的。

而機器學習的思路就是甩給計算機幾萬張圖片,每一張都事先標好答案,比如這張是貓、那張是狗、這張什麼都不是。用這些學習材料去訓練計算機,讓它自己找到貓和狗的特徵,再去判斷它沒見過的圖片裡是貓還是狗。

因此,相比編程本身來說,人工智能和數學的關係其實更強學編程只能幫你更好地理解人工智能的工作方式。

如果你問我什麼人在人工智能時代一定有飯吃,我會說“數學家”;至於程序員,其實已經有人用遺傳算法和神經網絡教會計算機自己編程了,等於和程序員搶飯碗,你顫抖了嗎?

還有些父母聽說可以讓孩子自己編寫很厲害的人工智能程序,感到非常心動,比如“讓孩子自己獨立編寫的動作捕捉程序”。

懂編程的人一看就知道這是哄小孩玩的——怎麼定義的“自己編寫”呢?

給孩子一個打包好的工具箱,裡面有一個現成的工具就叫“動作捕捉”,然後讓孩子自己寫一行代碼(其實是照抄一行代碼),調用一下這個工具,搞定。

這種東西從學習的效果而言有什麼意義呢?更多是為了讓家長不明覺厲,心甘情願掏錢吧。

其實,現在的人工智能離真正我們期待的“智能”還差得遠。

如果機器學習本身的原理沒有突破,那麼可預見的將來,它依然會離“智能”差得遠。未來,人工智能將替代一部分人類工作,但我們不能把它看成是一種威脅,而是一種新的機會。

我們作為父母,面對人工智能時代的時候,應該讓孩子“練好內功”,而不是趕現有技術的“時髦”。至於人工智能,等有了一定的數學和計算機科學底子再去了解它也不遲。

要不要孩子学编程?这份避坑指南,让你少走三年弯路

4

學編程和學機器人的區別在哪裡?我們環顧四周的課外班,就會發現:搞機器人的機構比搞編程的機構要多得多。這裡面有很多原因:

首先,很多機構最初都是搞樂高培訓起家的,從搭積木到機械結構、再到自動化是一個比較自然的路徑

再加上樂高自己也有WeDo、EV3這樣的機器人教育模塊,因此機構在這方面的準備更充足一點。

其次,學機器人是需要購買硬件設備的,也可能成為機構的一個利潤來源,而學編程賣得就只有課時了

最後,機器人領域裡可以有很多大大小小的比賽,這些比賽都是組隊參加的。儘管水平可能良莠不齊,但搭配組合、培訓後總能拿出成績,孩子也可以拿到幾張證書,皆大歡喜。而編程在大眾賽事這方面就比較缺乏,也和它的特點也有一定的關係。

5

父母該如何看待機器人教育呢?

我認為機器人學習其實是一個交叉領域,儘管也會涉及到一部分編程,但是在少兒階段,學習的內容還是集中在邏輯控制層面,並不會特別深入

所以到底讓孩子學機器人還是學編程,應該從孩子的興趣出發:許多孩子對於機器人這種比較“現實”的東西更感興趣,而另一些孩子更喜歡“搞腦子”。

從STEM教育的角度來看,其實兩者都很好,無所謂孰優孰劣。

我也看到過一些機構非要忽悠家長說學機器人比學編程好,理由是學編程只能在電腦上搞虛擬的東西,機器人這種能做出真東西的才有用——這就是別有用心了。

假如你孩子喜歡編程,但機構卻極力推薦你去學機器人,那大概只能說明他們的機器人課更有優勢,或者說能帶來更多利潤。

要不要孩子学编程?这份避坑指南,让你少走三年弯路

6

多種編程語言,到底學哪種比較好?

許多人聽過不少編程語言,比如Scratch、Python、C++等等...到底學哪種呢?

其實你在市面上能見到的絕大多數少兒編程機構,都是學Scratch或者類似的Scratch的積木式編程。

Scratch是MIT(大名鼎鼎的麻省理工學院)開發的一款圖形化編程軟件,在全世界少兒編程教育領域都非常流行,它的特點就是簡單易學,上手快,幾分鐘就可以做出一些好玩的作品

簡單易學不光是對小朋友容易學,對於機構的老師們也容易學。

少兒編程機構可以遍地開花,但是老師的缺口不是一時半會兒能夠補上的——很多老師也都是半路出家的,那麼顯而易見,Scratch是最容易上手的,所以絕大部分少兒編程機構都只有能力調集Scratch師資

至於Python之類的正經編程語言,師資培訓和教研體系建設的難度要高上數倍,大部分機構其實都開展不了或者水平有限,真正有能力開展的屈指可數

要不要孩子学编程?这份避坑指南,让你少走三年弯路

Scratch雖然好玩,但是它本質上還是個小孩玩具。

儘管號稱Scratch可以開發很複雜的項目,但是以它的設計模式,如果真做個大項目能累死你!我自己就嘗試過,看著那些花花綠綠的積木堆在一起,真得有點腦殼疼。

Scratch其實更適合拿來培養興趣,學習一些基本的編程邏輯,如果一個機構讓孩子學Scratch超過兩年,那麼家長可以判斷這個機構比較“水”了,很可能後面也拿不出什麼東西。

如果孩子已經通過Scratch入門了,我的建議是:要儘快轉向學習正規的編程語言,只有使用正規的編程語言,才能學會嚴謹地表達程序結構和邏輯

具體學哪種語言,要看孩子想做點什麼。

比如說,想開發iPhone的App,那就學Swift;想開發微信小程序,那就學習Javascript;如果打定主意要走競賽路線的,那就學C++吧,NOI選擇C/C++作為規定語言,是因為它們更貼近計算機底層的工作方式,說白了就是更加“硬核”。

如果還比較迷茫、找不到什麼特定的目標,我建議可以讓孩子學學Python,因為Python在各個領域都有廣泛應用(比如機器學習),也可以寫小遊戲(比如基於pygame等引擎

)。

有一點想說的是:無論你讓孩子去學習什麼語言,都要引導孩子去關注那些核心和基礎的東西。

比如:計算機的結構和工作原理;計算機的操作系統;編程語言相關的底層知識,以及基本的算法和數據結構知識。

——這些東西,從計算機誕生的那一天起幾乎就沒變過,正所謂“練好內功”才能“以不變應萬變”。

到了這個學習階段,一般孩子年齡也比較大了,應該具備一定的自學能力了。我認為可以不拘泥於在機構學習,還有很多途徑可以學習這些知識,比如書本、在線課程(MOOC之類的,中文課程也非常多),甚至還有一些提供交互式課程的App(比如蘋果的Swift Playgrounds)。

這個階段,如果自己家沒有家人懂編程的話,讓交一個懂編程的朋友,比找個機構更管用。孩子學習的過程中有靠譜的人隨時給答疑,或作出實時指導,效果自然會好很多,家長可以多請人家吃吃飯表示感謝。

要不要孩子學編程?這份避坑指南,讓你少走三年彎路

7 報編程班,應該報線上呢還是報線下呢?

這一部分是我的個人觀點——我認為對於低年齡段的孩子,相比線下機構,線上學習反而更有優勢

首先,編程教學本身就是在屏幕上進行的,也就天然適合線上的方式;線下教學也是看老師的電腦屏幕,本質上也沒太大區別。

從實踐而言,線上課堂我們當家長的可以看到孩子到底在學什麼。即便不是專門旁聽,你沒事路過瞄兩眼也能瞭解個七八分;而線下課一般家長是不陪同的,我不太容易掌握老師教得好不好,孩子學得好不好。

其次,我之前提到了編程師資的培訓難度。儘管我認為Scratch比較容易,但要在短時間內讓老師具備深厚的教學功力,依然很困難。

此外,Scratch教學離不開很多有趣好看炫酷的工程實例,這些東西都是需要專門的團隊花時間和精力去製作的。在這一點上,線上機構就可以有規模化的優勢:用集中團隊進行教研,也可以用少數精銳的老師去教更多的學生,我認為課程的質量應該更好一些。

再者,線上課的價格一般也比線下機構更便宜

線下班又有什麼獨特優勢呢

我認為,線上機構的課程要照顧的群體比較大眾化,且老師很難觀察到學生的接受度,因此

線上課程進度設置上比較寬鬆緩慢,也很難針對某個孩子的疑惑進行具體的指導(除非是一對一的課)。

而這些劣勢,則是線下班的長項。所以家長要多觀察孩子的學習情況,選擇合適的方式學習。

要不要孩子学编程?这份避坑指南,让你少走三年弯路

8 普通家長,怎樣判斷編程老師的水平?

無論教什麼學科,我認為老師最重要的素質只有三條:

  • 專業知識積累夠深,相關知識面夠廣

  • 能夠用形象的表達方式(包括口頭、圖解甚至動畫)講述知識點,並且能夠提煉出一些規律

  • 擅長使用引導的方式讓孩子自己達成目標

第一點應該很容易理解,老師要教100%的內容,自己必須要200%的儲備

那麼在家長自己不太懂編程的情況下,怎樣直觀地判斷老師的水平呢?

我覺得可以看老師對孩子提問的反應:如果老師有足夠的知識儲備,對於孩子的提問應該可以應對自如;如果經常回避孩子的提問,那多半是肚子裡沒有料。

另外,還可以看老師能不能針對孩子的作品提出有趣的改進或者拓展建議

第二點也比較直白,老師講得是不是形象易懂。

家長即便不太懂編程,也能有個大致的判斷。比如說Scratch編程裡面有講到座標系的概念,有些老師會說像電影院裡坐座位,第幾排第幾座,這樣一說孩子就很容易理解。

座標系也可以進一步提煉一些規律出來,比如說一個角色水平移動的時候哪個軸的座標是不變的?好的老師應該能講一些規律,而不是隻停留在表面的一些概念。

至於第三點,好的老師上課要千方百計地引導學生思考並自己找到答案,而不是隻把知識點講掉,帶著孩子做完一個作品就完事了

比如說,做一個小項目的時候,老師有沒有引導孩子進行功能模塊的分解?在講解知識點的時候,有沒有引導孩子舉一反三,自己去發現一些規律?在孩子的程序沒有實現預期結果的時候,有沒有引導孩子自己找出問題?

家長也可以觀察,孩子學完一段時間後,能不能利用學過的知識做出自己的作品。很多在樂高機構上課的孩子,跟著老師可以搭出很厲害的東西,但是讓他們自己獨立搭就抓瞎了,學編程可能也會遇到同樣的問題。

我認為這可能還是老師過於重視拿作品說話:因為作品是可以給家長看到產出的,所以手把手帶著孩子做出來就好了,並沒有花心思去讓孩子理解裡面的一些規律,這樣的教法可能就值得商榷了。

9 我的總結

我們做父母的看待編程,不應該僅僅認為它只是一種具體的技能。編程是一種解決問題的思維方式,以及它背後所包含的那些基本原理。

少兒編程機構的火熱,我認為是一件好事,可以提供給孩子們更多的選擇。但另一方面,我們要記住資本永遠是瘋狂的,如今的兒童編程領域充斥著各種熱錢,在這樣的狂熱中,希望這篇指南能幫你理性地做出判斷和規劃

每日話題

關於編程,你還有什麼疑問?

留言區告訴果仁媽吧!

- END -

作者丨周花捲,二胎爸爸,資深科技圖書譯者,全棧程序員,專欄作者,微信公眾號「周花捲」主創。

  • 一篇看懂STEAM| 美國最流行的STEM教育,就是多學科學和技術?不,你還不懂它的精髓~

  • 一節STEAM課程| STEAM老師告訴你,在家培養孩子能力,最重要是這個!

  • 美國如何講STEAM

    | 美國家長有多重視STEAM教育,從這節科學課就可以知道

  • | 家庭是STEM教育的重要場所,是時候學學怎麼做孩子的入門導師了

  • 思維導圖| 思維導圖真的那麼牛?要讓孩子從小學起?

  • 思維導圖 | 傳說中的思維導圖怎麼用?用這些方法,我家孩子四歲就熟練掌握了!

投稿郵箱:[email protected]


分享到:


相關文章: