資訊內容
我和孩子爸爸都是程序員,我們家對“少兒編程”是這么看這么做的
最近幾年,兒童編程在國內也越來越熱。世界即將走向人工智能的時代,小朋友的學習,自然也要與時俱進。不過這個問題對我們大多數人來說,還是挺新鮮和陌生的,比如:要不要學?什么時候開始學?怎么學?要不要報培訓班,等等 ...
作為一個在家庭教育上崇尚“精簡”的普娃媽(主要是懶),我對外面五花八門的兒童培訓其實了解的不多。盡管這樣,我也感受到了最近兩年“少兒編程”好像挺有熱度的。因為我和隊友都是程序員出身,經常被其他家長朋友詢問相關問題:你們教孩子編程了嗎?或者發來鏈接,讓我們幫判斷下,某某課程好不好?
看看我們周圍的同行朋友們,反倒沒怎么表現出來對教孩子編程上心,好像還是更熱衷于藝術培養,送孩子學鋼琴、繪畫、舞蹈的比較多。大概這就是“熟悉的地方沒有風景”,又或者是一種“缺啥補啥”的心態吧。我兒子一個同學的媽媽,從事文藝工作,擅長書畫,從來也不見她操心教孩子畫畫,倒是從幼兒園起就送孩子去學奧數了……
編程,要學嗎?
在這個問題上,我們家的看法是,有機會讓孩子接觸下編程,挺好的!不過,也不是非要學不可。
因為自己學過,我認為編程確實可以訓練一種特定的思維方式。我家隊友在專業上比我走的更遠,體會也更深。他總結說,這就是一整套結構化的思維方式。編程過程中,重復出現的、可以用同樣步驟解決的部分,就可以抽象提取出來,進行模塊化,以便復用。再復雜的軟件系統,最終也是由大大小小的模塊組成的。編程最核心的思維方式,就是明確問題、分析問題、把問題拆分、直到成為一個個簡單明確的子問題,再逐一解決。他覺得自己因為多年從事編程,思維模式得到了很好的訓練,對他后來工作范圍延申到其他領域,都有很大的幫助。
他說的我是同意的,不過結構化思維這么底層的能力,肯定不是只能通過編程這一種特定的方式訓練,否則“成功人士”還不都得是程序員了。
我還有其他考慮,一個是時間安排的問題,我們兒子才上小一,睡眠要先保證吧,戶外運動要保證吧,再做做學校的功課,時間也就不多了。而且孩子有自己的愛好,喜歡畫畫,喜歡玩樂高,他自由玩耍的時間要給他留足的。
再一個是視力問題,考慮到學編程意味著一定要對著屏幕,孩子目前做學校布置的作業、學英語,已經有不少屏幕時間了,保護視力也是我的一個顧慮。所以我的態度是學不學兩可。
編程,怎么學?
隊友的動力比我強。除了為孩子,也有他個人對少兒編程教育這個新興領域的好奇,很想看看我們同行們在這塊做的如何。隊友和大部分程序員一個樣,具有工程師特有的好奇心和研究精神,之前家里裝修一次,他就把家裝行業研究了個底兒掉……親兒子要學編程了,他更是投入進去做了一番深入調研。
他花時間找出各種兒童學編程的語言、平臺、APP、課程,都做了一番了解,然后挑了以下這些他覺得還不錯的APP,帶著孩子玩。
他挑選的標準是這樣的:
首先,明確目的,是讓孩子體會編程思維,那么具體的編程語言就不重要,甚至越淡化越好,不要讓孩子陷入語法細節里。
按這個要求,指令模塊化、用拖拽方式交互的scratch就是最好的,確實也有大量少兒編程產品是基于scratch的。
其次,要考慮到孩子的接受能力,保護孩子的學習興趣,學習產品要做的足夠有趣,學習過程的設計要能頻繁給孩子正反饋,也就是所謂的“游戲化學習”。這一點上,市面上國內外的APP也基本都滿足了。下圖是小象編程的界面:
其他被選出來的APP也都和這個類似,通過拖拉拽一些簡單指令,指揮界面上的卡通小人完成一些任務,推箱子啊,過障礙啊,彎彎繞繞最終到達指定地點啊,基本都是這個套路。形式上都還是比較游戲化、交互也挺簡單的。
第三個挑選標準,是做的夠不夠“深”。也就是教學內容夠不夠豐滿、系統化,可以帶孩子逐步掌握編程中那些重要的概念,走比較遠。遺憾的是滿足這第三個條件的幾乎沒有。
也許是因為少兒編程這個領域發展時間還不夠長,這些APP,感覺都做的比較“粗淺”。經常只有簡單的幾關,引入一點基本指令,再加上初步的循環、條件分支、函數調用,最多還引入一點偽遞歸的概念,就完了。只能簡單玩玩,大概體會一下編程是怎么回事,沒辦法學得深入下去。
只有一個國外的APP,我們覺得真的是特別好,叫Human Resource Machine (人力資源機器,也叫程序員升職記),不過并不是面向孩子的。其實人家自己的定位是一款解謎游戲,但評論里都在說這是“非常好的編程啟蒙游戲”、“適合程序員學習”。我和隊友玩過之后都覺得,它比那些專為學編程而設計的學習APP做的反而更成功,更能讓玩家領會編程思想的精髓。我自己都很喜歡玩,要不是實在沒空,很可能會沉迷。
這個游戲,完美符合了隊友期望的那三個標準:
第一,有趣味性,可以實現學習游戲化。游戲設定是,老板給你交代一個任務,你要通過給手下小職員們下達簡單指令,指揮他們完成你的任務(也就是編程)。隨著一關一關完成任務,你就在這棟辦公樓里層層晉升。
第二,引導足夠清晰,學習梯度合理。新指令是逐步引入的,玩家可以通過體驗和使用,充分掌握每一種指令的作用,編程零基礎的人也可以在實踐中快速領會。
第三,同時在這個APP里又有足夠的深度和拓展。一開始,通過你的指令,小職員們完成的任務是簡單的加減法,接著是乘除法,再到排序等比較高級復雜的算法,其實這也是在直觀地展示計算機的運行原理,是真正非常底層和基礎的編程。
并且,玩到后面,不僅是完成任務就好,你還要同時考慮你的實現方法運行速度快慢、存儲器占用多少的問題,很多時候這兩者是不可兼得的,你需要權衡。效率和開銷的平衡,程序員都知道,這才是真正的算法設計思想啊,這游戲實在是妙了。
不過,這個游戲里是的指令操作是展示了點偽代碼語言的,看起來一大堆符號,小孩子可能要稍微適應下。我兒子只玩了簡單的幾關,等他再大點,我一定會重新推薦他好好玩一玩。
除了APP,我們也嘗試了一期線上編程課。線上課程是一個朋友大力推薦給我們的,她兒子十歲,特別著迷這個課,玩的不亦樂乎,在完成編程作業的過程中獲得了極大的樂趣和成就感。
而我們家上課的感受是,如果沒有隊友坐在旁邊,全程幫助,孩子自己是跟不上的。老師教的,他并不能完全理解,完成課程任務的過程也很費勁。就聽隊友不停地在指揮,比線上老師講課說的話還多,而且時不時地嗓門就高上去了,“懂了嗎”“聽明白了嗎”?!
據隊友說,這課程沒有體現出來面向兒童的認知水平,和教成人編程的做法差不多,概念灌輸太快,實操引導不夠。可能每個孩子的學習方式有差別,朋友的孩子正好適合這個課;又或者是人家大幾歲的緣故吧,總之,我暫時還不想懷疑自己孩子的智商……
最終的結果是,隊友找了一圈也沒找到特別滿意的教學資源。孩子玩了幾個APP,上了幾節線上課程,掌握了一點點思路,但他也沒表現出強烈的興趣(和他對樂高的態度太不一樣了)。于是僅僅一兩個月,學編程這事在我家就暫時擱置了。
也許等他到小學高年級,我們會再給他試試。再過幾年,孩子的思維能力和接受能力會更強些,而且可能少兒編程領域也有更好的課程被開發出來了吧。
最后,給大家的一點小建議:
1. 編程思維有益,但也談不上不可或缺。而且,要看每個孩子的年齡、接受度和孩子的興趣。大家可以保持平常心,就把編程看做目前孩子課外培訓中眾多選擇中的一種,根據自家具體情況決定。
2. 適合學編程的年齡,沒有一定之規,每個孩子的認知發展水平有差異。但年齡太小學很多東西都是事倍功半,沒太大必要。根據我家的嘗試,以及小花生社區一些教師花友的分享,應該小學中高年級開始會比較合適。
3. 按我們這種在家的學法,家長是需要手把手指導的。編程要從零入門,靠孩子自己應該搞不定。如果家長自己沒有基礎,可以考慮借助外力,比如外面的課程。
4. 注意控制孩子的屏幕時間,健康第一,視力要緊!
