從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

在上個世紀末,流傳甚廣的一句話是:21世紀是生物學的世紀。現在,這個世紀是不是生物學的世紀,我不知道,但我知道另外兩句口號,一句話叫:人人能編程,另一句叫:不要輸在起跑線上。

從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

我不知道這兩句話對處於各種焦慮中的父母產生了多大的影響,但我知道,一個現象是,各種熱衷於兒童和小學生的編程培訓機構和課程,如雨後春筍般生髮出來。

我當然無意於去臧否,因為,事實上,我自己也想著準備做這個事情,算個未來可能的利益相關者吧。但是,我覺得,還是在這之前,先講清楚究竟我自己是怎樣看待兒童和小學生編程,要學什麼,怎麼學的事情,還是非常有必要的。

什麼是編程

編程是個非常籠統的概念,但在我看來,至少應該包含有三個截然不同的方向,即面向工程的編程,面向技術的編程和麵向科學的編程。

隨便說一個例子。作為一個還算資深的從業者,如果我告訴大家,那些在格子間裡,飛快的寫著SQL(一種針對數據庫的專門的查詢語言)的人,估計有至少50%,已經或者根本從來就沒搞懂過(也可能壓根沒聽過)類似B+/B-樹這樣的結構,他們做各種數據庫索引以及查詢速度方面的優化,主要靠的不斷的嘗試,而獲得的那些是似是而非的經驗,你相信麼?

從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

但這影響他們工作麼?我可以告訴你,99%的情況下不影響,這是什麼?其實這就是所謂的,他們是在做面向工程的編程,就好像開車的,不需要關心車是怎樣發動的,只要關心怎樣安全的到達目的地,有時候,他們獲得的,甚至可能是隻要在車內,掛一個偉人的掛件就可以這樣的經驗。

所以,其實這就是很多人實際在從事的那一類編程,普普通通,平淡無奇,需要的智識,也絕對平均值即可。這樣的編程,其實什麼時候開始學都行,它最需要的能力,是坐得住,也就是能長時間的工作。各種家長們腦補出來的在電視裡才有的敲幾下鍵盤,一切搞定的鏡頭,現實中並不存在,而我想,後者才是家長們想象中的今後自己子女的光輝前程吧。

當然,你可能要說,你不是說,還有面向技術的,和麵向科學的編程麼?是的,沒錯,先不管我說的這些,都在表達什麼,但你覺得這真心是兒童們,小學生們,直至K12階段學生應該要學的麼?

作為起步,Scratch合適麼

從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

其實,先不應該來講合適不合適的問題,而是先應該來說一下,為什麼Scratch會流行起來。非常殘酷的講,就只有兩個原因:一個是有所謂斯坦福大學的加持,一說起來,搞Scratch,你的孩子立即好像和斯坦福掛上了鉤,整個教程也變得高大上起來。

但這不是最根本的,最根本的,是它免費而且開源,尤其是開源,因此,這幾年,我看到了這隻小貓變成了各種形象,唯一的一點問題是,可能是因為大家都花了大力氣在基於Flash的Scratch2上,以致於現在Scratch 3已經基於HTML5了,但很多機構還沒跟上,或者說也並不見得有多大的意願去跟。

因此,這根本不是Scratch先進不先進,合適不合適的問題,而是有什麼東西,是可以“用最快的速度,最低的成本”來獲得的問題。

瞭解了這一點,我們不妨在回到Scratch產品本身來看看,它真的適合編程入門麼?起碼在我看來,是不恰當的。注意,我沒說不合適,只是說不恰當。

從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

說它合適,是因為,Scratch說到底,一開始的初衷,就是一個基於場景的“可用來編寫多媒體互動故事”的非常直觀的積木式玩具,甚至對絕大多數小孩子而言,連互動都不需要,所以它異乎尋常的易於上手。

這個工具的想法有多簡單?我說一個例子,供家長們參考。比如說現在有這樣一款機器人產品,暫且就叫機器狗好了(實際上相類似的產品早已面世),它提供了基於語音模式的人機接口,當你的孩子對著它說:向前走2步,這個狗就會向前走2步。

那好,如果我現在告訴你,恭喜你,你的孩子正在編程,你的孩子已經學會編程了——事實上也是,別覺得編程多複雜——我估計你早已經把我轟走了。

但Scratch乾的,以及在大部分的Scratch培訓機構裡面學的,其實就是類似的事情(直到後來,才加上了和Arduino這一硬件設備的結合,這就更是“高端收費”才能享受的課程了),要不然,Scratch也不敢自豪的宣稱自己,可以讓幾歲的小朋友就學會編程!因為這樣的編程,實在是很直觀的事情,它可以是就那樣簡單的胡亂的走來走去,也可以是一張有一個小故事的賀卡,當然也可能是一個真正的遊戲——這幾乎已經是別人家的孩子才能乾的事情了。

然而,這是編程能力麼?或者說,這就是家長們花了巨資,孩子們花了好幾個月寶貴的時間的真正期許?我覺得,要想獲得這樣的能力,找一個作家,編劇來教,遠比由一個開發人員來教要專業的多,起碼可以很專業的去引導孩子們的各種塗鴉式的創意。

當然,我知道,如果我這樣說,肯定會遭致很多從業者的抨擊,起碼當我們說,他們不夠能力教會孩子們設計一個故事時,他們會說,他們是在想讓孩子們明白,什麼是“編程的思維”。

這種思維重要麼?當然重要,但值得家長花那麼多錢去獲得麼?就好像如果今天天氣熱,我就吃冷飲,如果冷,我就喝水,所有人都會說這是多麼正常的事情——但是,很抱歉,我看了幾種這樣的課程,這可能就是你的孩子在Scratch編程課中,要花上好幾節課去學習的一個事情,而且還要表現出很驚訝,第一次知道這個世界,竟然能這個樣子的神情,因為它的名字叫——分支。

其實我們的孩子遠比很多老師想象的,要懂的多,尤其是在互聯網的時代。這其實也正是為什麼我要說它不恰當的原因,不是它不夠好,而是願意和能夠教好它的人,太少了。

那我們直接上Python,NOP好了

從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

這句話的潛臺詞是什麼?我看到過一張下面這樣的宣傳圖,但我想知道,這個機構,他們究竟是想做什麼?立志從人人奧數變成人人算法?

從Scratch、Python到NOP, 兒童和小學生編程究竟要學什麼怎麼學

這已經不是一個對不對的問題了,而是一個是否會由此邁向另外一種“惡趣味”的問題了。這種惡趣味,讓我們這個社會浪費了太多的小孩子們原本應該快樂的時間,去學習各種本不應該在他們那個年齡階段所接觸,或者他們自己也不想接觸的東西。

一旦這樣的風氣形成起來,同時陪葬的,一定有家長們的金錢和精力——無他,因為其他的人在學!

那究竟要不要教,以及應該教什麼?

答案是肯定的,但方法卻不是貿然的讓兒童去走入編程。這聽上去有點矛盾?其實一點也不,想想,我們的寫作課是從什麼時候開始的?那之前的這麼多年,都在做什麼了?當然沒閒著,小孩子們在聽,在讀,......,在體悟著什麼樣的詞句是優美的,也在努力嘗試著怎樣寫出片段式的一句話。

這其實也應該是編程這樣的一門學科,所應該帶給孩子們的一個自然的過程。他們為什麼要一開始就學會寫一個程序?

難道他們不是應該從欣賞開始嗎?對於一個兒童,難道有什麼,比告訴他們,在我們走到今天的過程中,都發生過哪些事情,出現過哪些英雄人物來的更加迫切?

而對於一個求知若渴的學生,難道有什麼,比讓他們看到,我們正在用技術,做著怎樣的事情,怎樣做的,以及向他們展示,還有怎樣的可能性,來的更加重要?

事實上,介紹這些,才是我當初開闢這個自媒體的初衷所在,自然我能力有所逮,時間也並不寬裕,能做一點是一點吧。


分享到:


相關文章: