兒童學編程,教什麼語言好?

我兒子一年級小學生,想教他編程,不知學生么語言好?


作為一個用了12年python,寫代碼有20年的父親,我推薦scratch。

我三歲半的兒子每天把他當遊戲來玩,抓到iPad後有過一半以上時間在玩scratch。

興趣是最好的老師是我一直所信奉的。至少從我自己來說,因為一直聽課有些費勁,大部分知識都是靠自學,興趣二字的重要性不言而喻。而scratch,就是個能讓我兒子感興趣的編程語言。我不需要去催促他,甚至不怎麼教他,只要在他做出了新奇的動畫後表示讚賞就夠了。讓他主動去學習,這不是花多少錢能獲得的。

此外,就是言傳身教了吧,如下圖。

航模堆里玩耍:

買了新的萬用表比我還高興:

一有機會就學我的樣子用螺絲刀捅飛機:

玩的是專業級的飛行模擬器,儘管飛的還很不好:

學我工作的樣子:

能承載起他的夢想是我最大的期望:


不請自答。最近在教小孩學習一般意義上的編程,正好有些體會,說些感受。

我家小孩在六歲時接觸過類似scratch的編程語言,後來覺得太簡單,了無趣味,就沒有繼續學習。小學三年級快結束時,我感覺時機差不多了,小孩也有學習的意願,於是放暑假後就開始正式的編程教學了。

我用的編程語言是經典的函數式編程語言Haskell,按常規的學習方式來學習。為什麼用Haskell,主要是我覺得函數式編程是比較適合小孩的思維的,我也想驗證下我的想法是否合理。另外Haskell是函數式編程語言中語法噪音最少的一門語言,非常接近數學的代碼形式,可以減少小孩學習的障礙。最後,函數式編程語言中我只對Haskell是比較熟悉,我能夠較好的把握教學的難度,盡量不要過早接觸比較抽象和高深的概念,盡量用比較淺顯的方式來教學。

大致的過程是先教整數、字元、字元串、布爾值這四個數據類型,教些簡單的加減乘除的函數,字元串連接的函數,分支處理表達式。然後開始教列表類型,由字元串而來的簡單的列表操作。在這些基本概念都清楚後,開始教遞歸,用遞歸實現sum、product、any、all這些函數,用遞歸實現filter函數,用foldr將sum、product、any、all這些函數統一起來,用遞歸實現map函數,將map、filter也都統一用foldr函數實現。在實踐上學會用遞歸求解漢諾塔問題,然後希望可以獨立實現一個九九乘法表的輸出。

在經過二個月左右的教學嘗試後,覺得Haskell還是可以用在小孩的編程教學上的,前提是邏輯能力和英語能力已經有一定的基礎,可以接受編程的思維方式。另外盡量用接近數學的方式來講函數式編程的思維方式,講具體直觀的例子,用好ghci、ipad、紙和筆。

函數式編程並沒有那麼可怕的,對於零基礎的人來說,函數式編程的思維方式更容易接受,有命令式編程基礎的人反而有著各種理解上的障礙。


最近對少兒編程教育做了一些思考。我覺得把先把教學/學習目標搞清楚要比先問學什麼語言重要。

對於少兒來說,教育的目標是開啟思維,主要目的並不是學會什麼編程語言。這是個系統工程,不管是scratch還是swift playground,還是python,haskell,其實都可以。重點在於學習如何思考,如何創造,從無到有探索性的創造和解決問題的能力。然後把這種能力應用到學校的各種學科的學習中。


Haskell


一年級不小了,我2年級的時候就可以寫簡單的批處理了,小孩子聰明著呢。
可以學學LOGO,或者這個,圖形化的編程。
Scratch - Imagine, Program, Share

或者乾脆讓他學易語言得了,我的真正的編程入門是從易語言開始的。大概小學4年級。

當然如果孩子沒興趣就算了。我當初是自己學的,爹媽沒逼著。
爹媽要是逼著估計我就不學了……

那位說學單片機的,你把1年級生當作初中生以上了。
直接學這些東西需要了解的細節太多,很容易讓小孩子畏懼。
比如,寫彙編,這麼多指令,沒有英語功底,只能死記。
C語言,首先要語法搞定,學了半天沒有產出,只有各種莫名其妙的錯誤,靠大人翻譯編譯器的說明,這是絕對不行的!這樣一點樂趣都沒有!

另外請盡量不要干涉,領進門以後就讓他自己玩。
不要設獎勵什麼的,不要總在旁邊指導,來一句「不會問我」就行了。
不然很容易就會變成「為了得獎勵給你玩」的,這樣外部激勵一消失,就不會再有動力了。


我仔細看了一下上面的回復,很多都是不負責的。上來就說學習C語言、C++、HTML、Python之類的語言。

其實吧,回答問題也要用心,不能敷衍了事。

問題說了是1年級,也就七八歲不是,這個時候其實好奇心最強,也沒有畏難思想。並且,大多數孩子的英語辭彙量是不夠的。上來就學習這些純代碼的語言,無疑會磨滅孩子的興趣。

從年齡上區分,比如4-6歲左右,我推薦ScratchJr,這個是幼兒版的Scratch。積木式編程,沒有任何單詞或者漢字,專為學齡前的小朋友設計。蘋果的iPad可以在AppStore中搜索ScratchJr,自行安裝。安卓的話找我要,這個需要翻牆下載的。

稍微大一些的小朋友,比如7-12歲左右,可以學習電腦版的Scratch,也是積木式編程。別看功能簡單,跟代碼式的語言相比,變數、鏈表、函數、循環、判斷,一樣也沒有少。因為這個年齡的小朋友主要學習編程思維,不是用一大堆編譯錯誤阻礙他們學習。

當然再大一些,比如10歲以上,可以學學樂高的EV3或者NXT機器人,畢竟讓機器人動起來,孩子會非常興奮的。這個時候,如何英語也不錯的話,可以考慮學學Python,有了Scratch的編程基礎,學習起來還是很快上手的。

可能大家會問到,你是誰呀,這麼懂?其實吧,我就是一個嵌入式工程師,跟軟硬體打交道比較多,在自己的微信公眾號謝謝文章。順便有一群媽媽粉絲,當然了,也分享兒童編程的視頻給大家。

我小時候特別喜歡科學小實驗,所以呢,就分享一些簡單有趣的科學小實驗給大家,堅持一年了。現在呢,長時間坐著脖子疼。偶爾逛逛知乎,休閑休閑。知乎上大牛比較多,想交交朋友。

如果你是家長,想陪著孩子做做實驗、學學編程,可以加我微信7572320,當然了,還可以關注我的博客:http://www.iwanghao.net

最近我的小貓編程學習群里,有個8歲的小朋友。自從學習scratch編程,天天嘴裡都掛著x/y坐標什麼的,而且還教他媽媽學習編程,特別有意思。雖然我的課程後面有作業,但是不強求交作業,想學就學,憑著自己的興趣來,順其自然就行。

寫累了,休息去,記得點贊哦!么么噠


過早學工業級編程語言是個大坑,因為工業級語言的使用場景跟孩子們入門啟蒙完全不同。

什麼是好的入門級兒童編程語言?我認為是:

1)孩子能輕鬆學會,入門簡單。

2)容易完成作品,錯誤少,成就感強;

3)有能玩得開心的應用場景。

比如,機器人和樂高教育雖然不是編程,但是勉強符合前三點特徵,所以有很多家長願意花錢,因為孩子玩得開心。

我強烈推薦Scratch編程。

如果是幼兒園的孩子,建議從http://Code.org上的練習開始,了解編程的基本概念,在玩中學習邏輯、循環等。

Scratch在學的過程中,可以從模仿和改編開始。找到Scratch官網上的好的動畫和遊戲,改改看,再試試原創。

由於很多Scratch作品都需要加聲音和動畫,就需要對圖片進行處理,那麼孩子們也順便學會PhotoShop的簡單操作。

除此之外,還可以學了一些網站相關的技術,比如內容編輯、HTML,JS等,自己找個Wordpress部署一下,稍微編輯下就能做一個孩子自己的個人網站。很有成就感。

大一點了,可以根據項目需求來找一些工業級的編程語言,我推薦Python編程。

10個最佳實踐建議

1)用http://code.org入門。5歲-8歲的孩子,可以先嘗試下http://code.org上面的一些非常基礎的關卡,聯繫完成二十個關卡,就基本上對最初級的編程的概念(順序、循環、條件)非常了解了。

2)自學Scratch。如果在http://code.org上的任務都基本上玩過了,那就可以開始學習下Scratch。Scratch初期完全可以自學。家長也可以一起來自學。

3)家長經常去設立一些小目標,讓孩子既能夠做到,但是又稍許有點挑戰,通過這樣的小目標的設定,讓他們不斷的能夠自我驅動學習。

4)家長高質量陪伴。有時候需要家長,在孩子旁邊進行陪伴,給他提供一些非常具體的建議,才能改進自己的作品,他會覺得非常滿意,而且成長也很快。雖然這些建議並不需要在代碼上面,家教很懂,而是在可玩性上面,在視覺方面,在互動性方面給出些建議就好,這些即便不是學計算機的家長也同樣能夠得出。

5)教學相長。孩子如果掌握了一些Scratch或python編程技能,可以教大人或其他小朋友來學編程,這樣更能刺激他掌握更多學習的基礎知識。比如媽媽可以很好學地讓孩子教。

6)讓孩子多跟其他編程的孩子交流。孩子們學了以後也需要找其他孩子一起交流,甚至競爭比較,利用孩子們的好勝心,可以促進自主學習。

7)多參觀體驗科技應用。越早接觸到一些實際的科技化應用。越能讓孩子們領會到科技的魅力,而不斷去探究其原理,積極嘗試。

8)參加科技創新大賽。各地區都有這類比賽,通過參加這些比賽,跟其他孩子同台比較,也能及時看到自己的能力和進步,如果能獲獎,則在升學教育體制中也獲得了很好的籌碼,在上海的話,會在名校自招名額方面有體現,同等成績下,被錄取優勢更大。

9)多去參加專門的科技夏令營。國外有不少專業的科技夏令營,特別是美國很多,有條件的家長可以讓孩子去參加。如果不能參加,至少要會科學上網,看一些在youtube[http://youtube.com]上的各類視頻,了解國外孩子們的教育模式和科技水平。

10)跟孩子一起探討,設立一個長遠目標。比如,做最棒的遊戲工程師,做一個天才的人工智慧等。把眼前的學習跟這個目標關聯,並進行計劃分解。雖然實現還很渺茫,但是這個夢想會激勵他一直堅持。


可以參考我這篇文章:從《20幾歲憑什麼改變世界:扎克伯格傳》看兒童計算機教育

我在知乎上有個Live:知乎 Live - 教孩子編程,從玩遊戲到編遊戲,專門講一些具體的實踐,歡迎來參加。


在了解兒童編程期間,我探索得最多的、看得最多的,是編程的「好處」。大家都忽視了一個問題:很多人知道了這一個概念,但是卻不知道如何下手…

所以今天我們來聊聊:兒童編程,學什麼語言好。

本文概要

1.為什麼要讓孩子學習編程?

2.孩子學習編程的前提是什麼?

3.兒童編程學什麼語言好

.編程概念

.專業編程語言

▍為什麼要讓兒童學習編程?

學習編程並不是為了讓孩子成為程序員,而是在學習的過程中鍛煉孩子的思維能力、學習能力。

▍兒童學習編程的前提

?學習基本概念

無限制

?學習編程語言

編程語言是英文的,想要學習編程,英語基礎得先練好。

▍如何學習

?編程概念學習

對於年紀較小的孩子來說,複雜的編程理念他們根本看不懂。而且孩子的學習定力不足,過於枯燥的編程語言他們根本看不進去。

因此,在幼兒階段,可以通過以下途徑培養他們的編程思維。

?遊戲的方式

目前,有很多專門訓練編程思維的遊戲,難易程度不一,遊戲的類型也不一樣,在之前,超人已經羅列過很多有趣又好玩的編程遊戲。

想再次了解的朋友們可以回顧一下

?適合孩子學習編程的12種遊戲?格鬥遊戲也能學編程?Code Warriors讓你學代碼也熱血沸騰!?編程太難孩子學不會?不妨參考美國幼兒學習編程的方式!

?美國孩子2歲就學習編程,這13個編程乾貨大家請Mark之!

除了網路遊戲,現實中的遊戲也能讓培養孩子的編程概念,比如之前超人介紹的一個場景構建遊戲。

想了解的朋友們可以戳鏈接

?美國人發明了一個戶外遊戲,能引導孩子的編程啟蒙!

?玩具的方式

網路遊戲畢竟是虛擬的,對於孩子們來說,能觸摸到的實體玩具也許更能吸引他們的注意力。因此,家長們可以考慮為孩子們選擇一些融入了編程概念的玩具。

比如之通過漫畫學習編程,之前超人有介紹過

?孩子學不好編程?給他一本漫畫試試!

還有各種編程玩具,之前超人也介紹過不少,點擊鏈接可以回顧。

?學生要會敲代碼才能畢業?你該了解下這幾款編程玩具了!?科技老大也致力於編程教育?Google新推的Bloks來告訴你答案……?MIT的科學家厲害了,對一張紙編程竟有這麼神奇的效果

?兒童專業編程語言學習

兒童可選擇的編程語言,我推薦兩種:Pascal和Python


?Pascal

Pascal是學習計算機編程的基礎。在實際應用中,Pascal沒有任何實用意義。

但對於初學者來說,Pascal是個不錯的選擇,易學、易懂,上手快,能培養初學者良好的程序設計風格和習慣。現在也有不少孩子在小學一二年級就開始學習Pascal。讓孩子學習Pascal語言的好處就是:

..將孩子們領進編程的大門

..解決簡單競賽類的數學問題

..學習數據結構

..幫助孩子熟悉計算機思維,訓練大腦,可以為以後學習更加專業的語.言打下基礎


?Python

相對於Pascal而言,我更加推薦Python,原因包括4點:

?簡單。一行代碼就能寫出一個程序,對於小孩子來說,簡答易上手的特點非常重要。
?跨平台。可以用來解決各個平台之間的問題。

?發布簡單,採用純文本的形式,不需要編譯。

?擁有強大功能,理論上幾乎可以做所有層開發。

而且,Python免費的書籍有很多,可以找到更多的資料,而且學習Python的人群較多,相關的比賽,論壇等交流渠道也更多。

?HTML

學習編程,除了可以通過選擇一門語言入門,也可以從HTML開始做,年齡比較大的孩子,可以嘗試讓他們做個個人網站,有成品更能激發學習的興趣。

開始可以先做簡單的靜態頁面,會設計到比較簡單的編程語句;接著是通過改程序的方式進行簡單的圖片除了和CSS,慢慢加入Javascript,實現交互的效果;

接著加入複雜的程序;逐步引入JQuery,實現各種特效;最後引入Node.js,連接資料庫。

通過完成一件成品的方式去學習,讓孩子有堅持學下去的動力,同時也能讓孩子明白編程到底能幹些什麼,為以後學習其他編程語言可以奠定興趣基礎。

兒童編程,興趣最重要,為什麼對編程感興趣,因為編程有自己的魅力。接觸真正的編程才能有真正持久的興趣。

如果孩子真對編程有興趣,在不影響學業的情況下,讓他們多接觸下,不僅能鍛煉思維能力,對日後學習理工科也是很有幫助的;

但如果孩子真的沒興趣,也不必強迫他們去學習,畢竟編程算是一門比較難的學科,強迫孩子去學習反而會打擊他們的自信心。

想了解更多兒童教育相關信息,歡迎關注公眾號【創客超人】


http://weixin.qq.com/r/ckyhuWDEhz34rSTa9xlg (二維碼自動識別)


當然是javascript了,擁有全世界安裝量最大的腳本引擎,不需要編譯,一鍵調出REPL,而且前後端通吃哦


我的天,這個問題我居然沒回答!作為中國少兒編程網的一員怎麼能錯過,哈哈,下面正經回答。
少兒編程一直以來都是一個教學領域,在過去孩子學習的語言各式各樣,但是都有一個問題,門檻很高,不是能夠普及化教育的內容。然而有著一部分人一在努力著,其中一個就是麻省理工學院的多媒體實驗室小組,他們開發的scratch軟體在2014開始迅速火遍全球。
scratch,一款圖形化編程工具,scratch的出現,降低了不僅是孩子,而是所有人接觸計算機科學的門檻,並且目的也不是培養人們的編程能力,而是普及像程序員一樣的思維。
scratch有多簡單?
只要識字,具有基本的邏輯思維能力,樂於學習,勇於探索,加上好奇心和十幾個小時的時間,就能夠掌握scratch的使用。
不僅對孩子們來說簡單,對於老人們來說也是如此。scratch更看重的是讓大家都參與進來,更多的創意,分享,合作。
說了這麼多,最適合孩子入門的是什麼呢 ?
當然,如果目的就是學習具有生產力的專業語言建議簡單接觸下scratch可以從Python開始,這是大多數人目前都認為適合孩子學習的語言。
所以第一步是搞明白為什麼要孩子學習編程,正確認識少兒編程的意義和目的。


scratch,可以讓孩子快速找到成就感,先寫控制台程序的話,孩子可能過幾天就沒興趣了。

其實真要說Greenfoot也相當不錯,就是資料少了點。

所以scratch之類的都只是工具,都是拖拖拖來寫程序,為了讓孩子有親自上手寫代碼的感覺(大霧),您應該試試FriceEngine也是可以的,一個很棒的jvm遊戲框架,也有其他的語言版本,Perl,Ruby,Racket應有盡有,來自超級女裝大佬ass1000的製作。詳情在gayhub上搜索icela。(逃


我一個完全不懂編程的家長也來答題了!別打我。。。。且本答案超多圖,小心流量。

我瀏覽了大部分答案,看到很多答案都提到了scratch,我就查了查這是什麼東西。然後我覺得好像和我小盆友愛玩的一個東西......也許......大概......有點類似?......

很久前我無意中下了這個遊戲來玩,是我自己玩的,並不是給小盆友開發的~

它的界面大概是這個樣子

就是一關一關的玩,有50關,中途我還贊助了這個開發團隊2刀。我一直覺得就是個益智小遊戲,直到我把50關全過了,它居然出現一個大驚喜。。。。。。(我玩遊戲少,沒見識)

這個遊戲提供基礎塊自己做新遊戲!


就是這些

每一個基礎塊展開還有不同的方向和角度。

有點craft類遊戲的意思。根據本答案下程序員爸爸們提供的思路,入門時並不是學具體語言,而是學習邏輯的思維。那三歲多的小盆友做的這些東西算不算在編程的入口逛悠呢……

剛開始他只能做這種

後來能做的複雜點,像這種

現在能做這樣的

和這樣的

對了,這個不光是搭建,做好後有個運行的功能,可以讓做出來的東西都動起來,每個能動的東西角色都不一樣。其實全是亂七八糟瞎做,但是3歲的孩子,已經慢慢會發現一些東西。好多成品都刪掉了,有點遺憾。

今天看到這個問題和答案,大概是這種東西吧。

另外很多答主說的scratch jr, 有這個,給9到11的孩子

但是評論說tutorials要收錢的。

最後我在網易雲課堂上發現了這個據說很良心的scratch免費課,叫課堂中的scratch。對程序員家長可能不值一提,但是對小白家長,算是個不錯的軟體介紹吧

門外漢,要是我答歪了,大家不要罵我。


Pascal,然後轉向C或者Python。
同時要教英語!沒英語基礎的話學了跟白學似的。
給台爛一點的電腦激發其改造的決心。

我就是大致這麼過來的……


對比scratch,個人推薦迪士尼出的code。

課程有體系,入門比scratch還要順暢,進階設計更人性化,能更加流暢的接觸到程序思維。

小米不到六歲的時候,我第一次接觸到scratch,然後就開始讓他感受。scratch作為興趣引入很好,和玩遊戲差不多,當時的實際學習效果一般,加起來一共教了不到5個小時,遇到難度就不愛學了(也可能是我當時第一次接觸可視化編程,選擇的內容難度不合適),於是結束。

當時我心態還不錯,畢竟孩子小,能有興趣引導就很好了(再之前教過小米數學軟體幾何畫板,scratch興趣比幾何畫板好)。一年級的時候,小米在暑期班修了個十節課的scratch課程包,孩子學得很開心。客觀說,沒學到什麼(只是跟隨老師寫出來了十個有意思的簡單程序,大概只是建立了順序的思維,知道需要運行)。

另外,一年級上,小米開始學習機器人課程,開始是物理搭建,涉及到滑輪槓桿等基本原理,八九個月以後開始加入簡單程序(開始,加速,停止,左轉右轉等),他們機器人編程的內核是C語言,小米說他學會變數了:)

二年級上,我接觸到了code。因為code有提供一系列連續的課程,於是按照課程的順序,從課程2開始教小米,連續教了一個多月,小米明白了條件,嵌套,循環。能寫簡單的flappy bird和我的世界。後來學到課程三的函數調用,小米有點理解不了,於是暫停,打算過一段時間再試。

我不是程序員,只是因為數學專業學了一些計算機課程,過了三級,畢業以後也沒從事過計算機相關行業。

對孩子的教育,我家遵循適齡教育,踐行的是大投入遲產出的建構主義學習模式。

相比scratch,更傾向於code作為啟蒙教育。


然而我還是推薦codecombat,傳送門 https://www.codewar.cn或https://www.codecombat.cc


作者:劉鳳飛
鏈接:兒童編程scratch如何開展校外培訓? - 劉鳳飛的回答 - 知乎
來源:知乎
著作權歸作者所有,轉載請聯繫作者獲得授權。

少兒編程現在還是重視邏輯思維的鍛煉,並不是在代碼階段。

重在邏輯的培養,

循環的概念(重複多少次for,重複直到while-do),加減的演算法,大於、等於、小於的判斷,如果、那麼(if),如果、否則(if,else),角度,判斷識別,以及變數和鏈表的一些知識和運用。

可以說高深也是可以說膚淺,膚淺其實有時候和.NET一開始有點像拖控制項嘛,說高深其中如果要做一個像樣點的程序遊戲也是十分的費腦筋,不一定你是一個牛逼的程序員就可以做出什麼很牛的東西。對邏輯分析確實也很考驗人。

現在程序員的工資普遍高於其他行業,但是從5歲左右就開始學習編程也不一定就有什麼效果的。
一年級以上可以開始接觸此類思維,2、3年級比較適合開始學習編程的思想。
至於html,jave,c這類編程還是不建議那麼早去接觸,html也不算是編程但是很多培訓機構添加了這項網頁的前端看上去比較容易出作品吧。此類編程如果孩子有興趣可以初中以後再學習,至於現在很多打著編程的幌子的課程什麼單片機呀,什麼編程其實都是封裝好的,小朋友也就是改改參數能動而且其實都是本身沒有多大意義。

所以在少兒期間的編程建議以思維的培養為主。

可以向大家推薦些scratch的課程,不過現在才更新到4節課。

Scratch編程系列課程,將每周更新。(推薦閱讀)

1.風靡全球的兒童編程Scratch,你知道嗎?
2.兒童編程第1課-小貓學步『果果老師』
3.兒童編程第2課-孫悟空跟斗雲『果果老師』
4.兒童編程第3課-孫悟空72變『果果老師』
5.兒童編程第4課-孫悟空三打白骨精『果果老師』修改


先是scratch,學到一定程度,絕對可以學python,我還寫了少兒python的電子書。


建議剛入門的小孩從scratch圖形化編程開始學習,scratch是一款由麻省理工學院設計開發的少兒編程工具。即使不會英語和鍵盤操作,用戶也可以直接使用中文圖形化進行編程,使用滑鼠拖動模塊到程序編輯欄實現相應功能,輕鬆的創建動畫,遊戲。

scratch作為一款模塊化編程軟體,其趣味性相較於代碼編寫程序,避免了孩子去記憶冗雜的代碼,格式,符號等等。只要孩子們能夠將自己的想法像按照流程圖一樣繪製或者只要心裡有數,就能夠完成簡單的程序。因為有這樣的簡潔明了的編程方式,小學生們也可以輕鬆地進行編程的學習。

其次,scratch能夠實現的功能遠比你想像中強大。什麼是坐標系,什麼是變數,什麼是鏈表,或許你都不能很好地給小學生解釋這些,但是當你的孩子完成了一系列scratch編程課程的學習之後他就能夠生動地並且用自己做出來的例子告訴你答案!

不僅僅是編程,不僅僅是動畫,不僅僅是遊戲!作為機器人課程學習的編程軟體,更加重要的是scratch能夠廣泛應用於多種機器人創客的硬體上!

正是因為Scratch的這些特點,它不只是一個簡單的互動遊戲開發工具,更像是一種智力開發工具,或是一種興趣和耐力養成工具。

最後,如果你想讓孩子學習編程,推薦到編玩邊學(http://www.codepku.com)體驗一下!

如果你想自學scratch,這裡有scratch的學習資料,可以看下《Scratch學習教材分享 - 編程少年》


金庸先生寫過一個著名的劍客,叫獨孤求敗,他一生用過五種不同的劍。

一開始,獨孤求敗用的是一把無名利劍,這把劍有多鋒利呢?「凌厲剛猛,無堅不摧,以之與群雄爭鋒」。

後來為了追求快,又用軟劍,再後來「越來越覺以前所學劍術變化太繁,花巧太多」,改用一把重劍,悟出「以拙勝巧,以重壓輕」的道理。

他用重劍的時候,金庸先生寫道:「重劍無鋒,大巧不工,橫行天下。」

但是獨孤求敗真正成為一代宗師,卻是在他不再用重劍之後。

不用利劍,不用重劍,那用什麼呢?

他開始用一把木劍。「不滯於物,草木竹石均可為劍」,說的是不再為劍所拘束,飛花摘葉都可以是武器。

到最後,他用的是無劍。

說這個故事也是想表明——

編程是一個工具,像劍客手中的劍一樣,划出你心中所想的劍法,是去實現所想的工具。

劍客的水平取決於他的劍術,境界,但往往不取決於他用什麼樣的劍。

編程的藝術絕不在於哪一門語言,而在於你用編程創造了什麼。

練習打籃球的時候,教練總是要從指尖拍球,橫向跨步練起,而大多數人想的是怎麼可以花式上籃。練習足球的時候,大家會驚嘆倒掛金鉤,但傳、帶、護、射才是最常見的訓練。

基本功很苦,見效也很慢,但是有用。花拳繡腿容易學,多花點心思,好像能做出一些所謂「真正的」程序,但是不中用。

再來看獨孤求敗為什麼在用完鋒利的無名劍和快速的軟劍之後,改用一把平平無奇的重劍:

「越來越覺以前所學劍術變化太繁,花巧太多」,改用一把重劍,悟出「以拙勝巧,以重壓輕」的道理。

而想要編出一個好的作品,除了編程本身,你更需要對這個世界充滿了解,你要有人文素養來支撐你的想像,要有藝術才能來完成你的設計,要有足夠的數學知識來完善演算法,要選出讓人感動的音樂來豐富作品。

所有小朋友正在學校里學習的,都是基本功。

金庸先生寫獨孤求敗,用了「不滯於物」這樣四個字,什麼是「不滯於物」呢,意思就是不被物體所限制。李白的詩,寫在紙上,寫在牆上,念誦出來,都是名句。希望大家不要拘泥於編程語言和編程的形式,多多去想編程的本質。

編程的本質,是創作。

到現在為止,編程貓上已經有數萬的小朋友在學習編程,創作出屬於他們自己的作品,。

這篇回答,希望能讓大家認識到,編程的藝術絕不在於哪一門語言,而在於你用編程創造了什麼。

本文來自編程貓微信公眾號(codmao),原文《編程一定要學會哪種編程語言嗎?》,略有改動,轉載請註明出處。


沒必要這麼小入編程坑, 這玩藝主要就是個邏輯思維,上大學再學都不晚。有時間不如多帶孩子打打球或者和別的小朋友社交。小小年紀整天對著電腦不是啥好事。
如果真想學的話,就上lego機器人吧。不過我覺得玩這個在低年級的重點也應該放在各種機械結構的拼裝上,程序邏輯可以大點再說。


推薦閱讀:

如果不讀博士,做深度學習能找到工作嗎?還想學一下編程,C++和python,該怎麼學習呢?
程序員在 5 月 20 日這天有什麼特別的表白方式?
為什麼這兩年沒再聽說有什麼大規模的電腦病毒爆發?
如何用代碼畫出一隻齒輪?
高斯模糊的原理是什麼,怎樣在界面中實現?

TAG:編程 | 兒童學編程 | 兒童編程 |