首頁>科技>

在我成長的過程中,很多人認為程式設計是隻有像我一樣的書呆子才會做的事情。但是現在,程式設計顯然已成為了一項基本的技能,是每個人都應該做的事情,就像閱讀一樣。它是每個學校都應該教授的技能。

最近幾年,兒童程式設計在國內也越來越熱。世界即將走向人工智慧的時代,小朋友的學習,自然也要與時俱進。不過這個問題對我們大多數人來說,還是挺新鮮和陌生的,比如:要不要學?什麼時候開始學?怎麼學?要不要報培訓班,等等 ...

本文作者@codingirl750,夫妻倆都是程式設計師。在這篇文章裡,她分享了他們站在從業者和家長的雙重角度,對少兒程式設計的看法,以及他們親自嘗試教7歲兒子學程式設計的經歷,我們看了也會有所啟發。感謝@codingirl750 的分享!

作為一個在家庭教育上崇尚“精簡”的普娃媽(主要是懶),我對外面五花八門的兒童培訓其實了解的不多。儘管這樣,我也感受到了最近兩年“少兒程式設計”好像挺有熱度的。因為我和隊友都是程式設計師出身,經常被其他家長朋友詢問相關問題:你們教孩子程式設計了嗎?或者發來連結,讓我們幫判斷下,某某課程好不好?

看看我們周圍的同行朋友們,反倒沒怎麼表現出來對教孩子程式設計上心,好像還是更熱衷於藝術培養,送孩子學鋼琴、繪畫、舞蹈的比較多。大概這就是“熟悉的地方沒有風景”,又或者是一種“缺啥補啥”的心態吧。我兒子一個同學的媽媽,從事文藝工作,擅長書畫,從來也不見她操心教孩子畫畫,倒是從幼兒園起就送孩子去學奧數了……

程式設計,要學嗎?

在這個問題上,我們家的看法是,有機會讓孩子接觸下程式設計,挺好的!不過,也不是非要學不可。

因為自己學過,我認為程式設計確實可以訓練一種特定的思維方式。我家隊友在專業上比我走的更遠,體會也更深。他總結說,這就是一整套結構化的思維方式。程式設計過程中,重複出現的、可以用同樣步驟解決的部分,就可以抽象提取出來,進行模組化,以便複用。再複雜的軟體系統,最終也是由大大小小的模組組成的。程式設計最核心的思維方式,就是明確問題、分析問題、把問題拆分、直到成為一個個簡單明確的子問題,再逐一解決。他覺得自己因為多年從事程式設計,思維模式得到了很好的訓練,對他後來工作範圍延申到其他領域,都有很大的幫助。

他說的我是同意的,不過結構化思維這麼底層的能力,肯定不是隻能通過程式設計這一種特定的方式訓練,否則“成功人士”還不都得是程式設計師了。

我還有其他考慮,一個是時間安排的問題,我們兒子才上小一,睡眠要先保證吧,戶外運動要保證吧,再做做學校的功課,時間也就不多了。而且孩子有自己的愛好,喜歡畫畫,喜歡玩樂高,他自由玩耍的時間要給他留足的。

再一個是視力問題,考慮到學程式設計意味著一定要對著螢幕,孩子目前做學校佈置的作業、學英語,已經有不少螢幕時間了,保護視力也是我的一個顧慮。所以我的態度是學不學兩可。

程式設計,怎麼學?

隊友的動力比我強。除了為孩子,也有他個人對少兒程式設計教育這個新興領域的好奇,很想看看我們同行們在這塊做的如何。隊友和大部分程式設計師一個樣,具有工程師特有的好奇心和研究精神,之前家裡裝修一次,他就把家裝行業研究了個底兒掉……親兒子要學程式設計了,他更是投入進去做了一番深入調研。

他花時間找出各種兒童學程式設計的語言、平臺、APP、課程,都做了一番了解,然後挑了以下這些他覺得還不錯的APP,帶著孩子玩。

他挑選的標準是這樣的:

首先,明確目的,是讓孩子體會程式設計思維,那麼具體的程式語言就不重要,甚至越淡化越好,不要讓孩子陷入語法細節裡。

按這個要求,指令模組化、用拖拽方式互動的scratch就是最好的,確實也有大量少兒程式設計產品是基於scratch的。

其次,要考慮到孩子的接受能力,保護孩子的學習興趣,學習產品要做的足夠有趣,學習過程的設計要能頻繁給孩子正反饋,也就是所謂的“遊戲化學習”。這一點上,市面上國內外的APP也基本都滿足了。下圖是小象程式設計的介面:

其他被選出來的APP也都和這個類似,通過拖拉拽一些簡單指令,指揮介面上的卡通小人完成一些任務,推箱子啊,過障礙啊,彎彎繞繞最終到達指定地點啊,基本都是這個套路。形式上都還是比較遊戲化、互動也挺簡單的。

第三個挑選標準,是做的夠不夠“深”。也就是教學內容夠不夠豐滿、系統化,可以帶孩子逐步掌握程式設計中那些重要的概念,走比較遠。遺憾的是滿足這第三個條件的幾乎沒有。

也許是因為少兒程式設計這個領域發展時間還不夠長,這些APP,感覺都做的比較“粗淺”。經常只有簡單的幾關,引入一點基本指令,再加上初步的迴圈、條件分支、函式呼叫,最多還引入一點偽遞迴的概念,就完了。只能簡單玩玩,大概體會一下程式設計是怎麼回事,沒辦法學得深入下去。

只有一個國外的APP,我們覺得真的是特別好,叫Human Resource Machine (人力資源機器,也叫程式設計師升職記),不過並不是面向孩子的。其實人家自己的定位是一款解謎遊戲,但評論裡都在說這是“非常好的程式設計啟蒙遊戲”、“適合程式設計師學習”。我和隊友玩過之後都覺得,它比那些專為學程式設計而設計的學習APP做的反而更成功,更能讓玩家領會程式設計思想的精髓。我自己都很喜歡玩,要不是實在沒空,很可能會沉迷。

這個遊戲,完美符合了隊友期望的那三個標準:

第一,有趣味性,可以實現學習遊戲化。遊戲設定是,老闆給你交代一個任務,你要通過給手下小職員們下達簡單指令,指揮他們完成你的任務(也就是程式設計)。隨著一關一關完成任務,你就在這棟辦公樓裡層層晉升。

第二,引導足夠清晰,學習梯度合理。新指令是逐步引入的,玩家可以通過體驗和使用,充分掌握每一種指令的作用,程式設計零基礎的人也可以在實踐中快速領會。

第三,同時在這個APP裡又有足夠的深度和拓展。一開始,通過你的指令,小職員們完成的任務是簡單的加減法,接著是乘除法,再到排序等比較高階複雜的演算法,其實這也是在直觀地展示計算機的執行原理,是真正非常底層和基礎的程式設計。

並且,玩到後面,不僅是完成任務就好,你還要同時考慮你的實現方法執行速度快慢、儲存器佔用多少的問題,很多時候這兩者是不可兼得的,你需要權衡。效率和開銷的平衡,程式設計師都知道,這才是真正的演算法設計思想啊,這遊戲實在是妙了。

不過,這個遊戲裡是的指令操作是展示了點虛擬碼語言的,看起來一大堆符號,小孩子可能要稍微適應下。我兒子只玩了簡單的幾關,等他再大點,我一定會重新推薦他好好玩一玩。

除了APP,我們也嘗試了一期線上程式設計課。線上課程是一個朋友大力推薦給我們的,她兒子十歲,特別著迷這個課,玩的不亦樂乎,在完成程式設計作業的過程中獲得了極大的樂趣和成就感。

而我們家上課的感受是,如果沒有隊友坐在旁邊,全程幫助,孩子自己是跟不上的。老師教的,他並不能完全理解,完成課程任務的過程也很費勁。就聽隊友不停地在指揮,比線上老師講課說的話還多,而且時不時地嗓門就高上去了,“懂了嗎”“聽明白了嗎”?!

據隊友說,這課程沒有體現出來面向兒童的認知水平,和教成人程式設計的做法差不多,概念灌輸太快,實操引導不夠。可能每個孩子的學習方式有差別,朋友的孩子正好適合這個課;又或者是人家大幾歲的緣故吧,總之,我暫時還不想懷疑自己孩子的智商……

最終的結果是,隊友找了一圈也沒找到特別滿意的教學資源。孩子玩了幾個APP,上了幾節線上課程,掌握了一點點思路,但他也沒表現出強烈的興趣(和他對樂高的態度太不一樣了)。於是僅僅一兩個月,學程式設計這事在我家就暫時擱置了。

也許等他到小學高年級,我們會再給他試試。再過幾年,孩子的思維能力和接受能力會更強些,而且可能少兒程式設計領域也有更好的課程被開發出來了吧。

最後,給大家的一點小建議:

1. 程式設計思維有益,而且,要看每個孩子的年齡、接受度和孩子的興趣。大家可以保持平常心,就把程式設計看做目前孩子課外培訓中眾多選擇中的一種,根據自傢俱體情況決定。

2. 按我們這種在家的學法,家長是需要手把手指導的。程式設計要從零入門,靠孩子自己應該搞不定。如果家長自己沒有基礎,可以考慮藉助外力,比如外面的課程。

3. 注意控制孩子的螢幕時間,健康第一,視力要緊!

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 《騰訊傳》10:騰訊微信的誕生之路