👨 👨 👨
最近幾年,STEAM教育一下子被推到風口。尤其是“少兒編程”受到各路人馬追捧,不僅各種主打線上編程教育的公司遍地開花,一些傳統的線下學科培訓機構也紛紛開始開設少兒編程課程。
少兒編程的“一夜火爆”,背後少不了國家政策的支持。
把“智慧國”作爲國策的新加坡,2014年就開始試點,2019正式確定在全國中小學推出“編碼樂”(Code for Fun)學習項目,編碼技能成爲必修課。
不僅如此,爲了讓每個孩子從小就擁有這項技能,教育部還從今年6月起分階段推行計劃,到了2024年,所有中一學生將擁有電腦,2028年,所有中學生將人手一台電腦。
中國也已經將編程納入中小學相關課程了,一度沖上微博熱搜。這等于爲少兒編程教育機構高調站台。
另一方面,傳統主打學科中文、數學、英語等學科培訓以及藝術培訓相比,編程課還算“小衆”。
所以,很多機構也瞄准了這塊潛力巨大的市場,鋪天蓋地地搞起了宣傳。比如,號稱說要教給孩子“人工智能”,或者號稱孩子學幾節課就可以做出很厲害的作品。
對于父母而言,自己懂編程的人並不多。真正自己懂編程的家長要麽都996去了,沒時間管孩子的課外班,要麽就自己在家教了。因此,許多家長會被鋪天蓋地的廣告所“迷惑”,無法做出正確的判斷。
「從小就接觸編程,參加過信息學奧賽,在現實生活中,也在幫自己孩子規劃編程學習路線」的周花卷老師,寫了一篇編程啓蒙避坑指南。
純幹貨,且全是大實話,希望能給廣大家長一些啓發,也能幫助大家在狂熱的少兒編輯培訓中,理性地做出判斷和規劃。
💻 💻 💻
/ 特別說明 / 1.全篇利益不相關,無廣告無軟文
2.個人思考所得,供參考3.只從整體的角度探討,不針對任何具體的培訓機構
文章較長,主要從以下幾個方面進行分析:
-
孩子應該幾歲開始學編程?
-
學編程對升學真的有幫助嗎?
-
學編程才能在人工智能時代有飯吃?
-
學編程和學機器人的區別是什麽?
-
如何看待機器人課?
-
到底學哪種編程語言比較好?
-
報線上課還是先下課?
-
要如何判斷授課老師的水平呢?
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
我的總結
我們做父母的看待編程,不應該僅僅認爲它只是一種具體的技能。編程是一種解決問題的思維方式,以及它背後所包含的那些基本原理。
少兒編程機構的火熱,我認爲是一件好事,可以提供給孩子們更多的選擇。
但另一方面,我們要記住資本永遠是瘋狂的,如今的兒童編程領域充斥著各種熱錢,在這樣的狂熱中,希望這篇指南能幫你理性地做出判斷和規劃。
最後,再彙總下我個人的觀點:
1、編程的本質是邏輯控制,是解決問題的思維模式,學齡前受邏輯思維和抽象思維的發展限制,不推薦學習,小學二年級(7-8歲)的孩子可以作爲編程學習的起點。
2、學習編程對提高成績和升學的幫助是非常有限的;
3、目前市面上的編程課,尤其是面向低幼兒童的編程課,絕大多數都是Scratch類似的Scratch的積木式編程的課程,本質上是小孩玩具,更適合用來培養興趣,學習一些基礎的編程邏輯。
4、對于低年齡段的孩子,相比線下機構,線上學習反而更有優勢,家長要學習判斷老師的水平。
▼
今日話題
Q:你家孩子報編程班了嗎?留言區聊聊吧~
– END –
作者丨周花卷,二胎爸爸,資深科技圖書譯者,全棧程序員,專欄作者,微信公衆號「周花卷」主創。
近期好文:
掃描小編二維碼手動拉你進生肖育兒群備注:孩子出生年份
你的每一個“在看” 我都認真當成喜歡👇