學(xué)習(xí)編程有助于提高孩子的思維能力,越來越多的家長也已經(jīng)意識到這一點。但怎樣才能讓孩子輕松入門并產(chǎn)生對編程的興趣呢?電氣工程師Warren Sande和兒子Carter一起,編寫了一本引領(lǐng)孩子們走進(jìn)編程世界的書,而該書最大的特點就是通過淺顯易懂的語言激發(fā)小讀者們對編程的興趣和好奇心。在接受外灘君收集時,Warren說“學(xué)習(xí)編程的最好方法是不斷嘗試”。
“我覺得每個人都應(yīng)該學(xué)習(xí)一門編程語言。學(xué)習(xí)編程教你如何思考……我把計算機(jī)科學(xué)看成是基礎(chǔ)教育,每個人都應(yīng)該花1年時間學(xué)習(xí)編程。”這是早在十幾年前喬布斯曾說過的一段話。
在當(dāng)今的數(shù)字時代中,計算機(jī)已經(jīng)滲透到了我們生活的各個方面。家長們也逐漸開始糾正“學(xué)編程=搞IT”的誤區(qū),慢慢了解到學(xué)習(xí)編程能夠鍛煉孩子的思維能力,對孩子學(xué)習(xí)數(shù)學(xué)和物理等其他學(xué)科都會有幫助。
而從趨勢看,中國正在逐步把STEAM教育納入基礎(chǔ)學(xué)科,其中,少兒編程正是STEAM教育的一個分支內(nèi)容。例如,2016年,教育部印發(fā)的《教育信息化“十三五”規(guī)劃》中,將信息化教學(xué)能力納入學(xué)校辦學(xué)水平考評體系??梢姡幊虒⒅饾u在中國的青少兒教育中占領(lǐng)至關(guān)重要的一環(huán)。
基于上述原因,近年來,各種青少兒編程的相關(guān)行業(yè)呈現(xiàn)出越來越受家長歡迎的趨勢。不過,編程對于年紀(jì)尚小的孩子來說,不免有些枯燥;市面上五花八門的培訓(xùn)班雖多,卻也是良莠不齊;而大多數(shù)的計算機(jī)書籍對于孩子來說都過于艱深。許多家長不禁苦惱,怎樣才能讓孩子在入門階段就對編程產(chǎn)生興趣?有沒有一種方法,能讓孩子輕松愉快地入門?
為什么不和兒子一起寫本書呢?
《父與子的編程之旅——與小卡特一起學(xué)Python》
作者: Warren Sande / Carter Sande
譯者:蘇金國 / 易鄭超
出版:人民郵電出版社
作為父親,電氣工程師Warren Sande也遇到了相同的問題。他畢業(yè)于加拿大賈那大學(xué)電氣工程系,一直在面向計算機(jī)初學(xué)者教授軟件基礎(chǔ)課程。他的兒子Carter Sande在五六歲的時候就對學(xué)習(xí)編程產(chǎn)生了濃厚的興趣,到了小學(xué)階段時,Warren發(fā)現(xiàn)他根本找不到一本合適的書來滿足他高漲的學(xué)習(xí)熱情。他的妻子給他提了一個建議:“你應(yīng)該寫本書,你們兩個可以合作來完成?!?nbsp;
于是,Sande父子真的開始考慮這本書里應(yīng)該寫點什么,兩人一起構(gòu)思每一章的大綱,編寫示例程序,想方設(shè)法力求更風(fēng)趣、更有意思。Carter更是舍棄了每晚的睡前故事時間,全心投入這本書。他甚至?xí)?jīng)常提醒爸爸:“爸爸,我們好幾天沒有寫書了!”經(jīng)過他們的努力,終于讓《父與子的編程之旅——與小Carter一起學(xué)Python》這本書得以問世。
《父與子的編程之旅》是一本可供家長與孩子共同學(xué)習(xí)編程的入門書。Sande父子以Python語言為例,在輕松的氛圍中介紹了編程的基本概念,從安裝、字符串和操作符開始,到條件語句、函數(shù)、模塊等進(jìn)階內(nèi)容,最后還加入了如何用Python實現(xiàn)游戲編程以達(dá)到實際操作的目的。書中言語幽默風(fēng)趣,簡單明了,讓這些知識聽起來備感親切。為了讓學(xué)習(xí)過程更有樂趣,細(xì)心的作者還配上了孩子們都喜歡的可愛漫畫和經(jīng)過運行測試的程序示例,讓學(xué)習(xí)者在輕松愉快之中跨入編程的大門。
而豆瓣評分8.5(滿分10分),Amazon評分四星半(滿分五星),曾獲得2011年Jolt圖書生產(chǎn)效率大獎,足以說明這本書得到了廣泛的認(rèn)可,甚至連Python的發(fā)明人Guido van Rossum也在自己的博客上對這本書作了推薦??梢哉f,這是一本最適合孩子編程啟蒙階段在游戲中學(xué)習(xí)的編程書。
年僅18歲的編程“老司機(jī)”
Carter今年剛滿18歲,他已經(jīng)被UC Berkeley的電機(jī)工程專業(yè)錄取了。從5歲時對編程產(chǎn)生興趣開始,Carter就一直在做跟電腦相關(guān)的事情。Carter也坦言,在自己還是一個孩子的時候,編程對他最大的吸引力就是來自于游戲。“我最近剛剛給任天堂的游戲機(jī)GAME BOY ADVANCE做了一個小小的視頻游戲。其實這是我以前做的一個手機(jī)游戲,現(xiàn)在我試著做了一個GBA的版本,這是一個很有趣的挑戰(zhàn),因為GBA的容量更小,運行更慢,所以要做一個游戲其實更難。但我很享受這個過程。”
▲ 自由編程俱樂部社區(qū)CoderDojo
雖然Carter年紀(jì)尚小,但他在編程教學(xué)方面,卻可以稱得上是經(jīng)驗豐富的“老司機(jī)”了。父子倆在多年前就已經(jīng)成為了CoderDojo(CoderDojo是全球志愿者領(lǐng)導(dǎo)的為7-17歲年輕人創(chuàng)設(shè)的自由編程俱樂部社區(qū))的志愿者,幫助教社區(qū)里的孩子們?nèi)腴T編程。Carter對此很自豪:“我當(dāng)時10、11歲左右。當(dāng)我去給別人上課的時候,我其實是那里年紀(jì)最小的,我的學(xué)生里大多數(shù)年紀(jì)都比我大。但是,并不是因為我是個小孩就什么都不懂,相反我可以幫助任何人?!?/p>
據(jù)Warren回憶,從五六歲開始,Carter就已經(jīng)表現(xiàn)出了對電腦的濃厚興趣?!耙婚_始他只是在玩電腦,瀏覽一些網(wǎng)站,后來他開始想自己做一個網(wǎng)站。他做的第一件事是HTML,用來做很簡單的網(wǎng)頁。之后就開始學(xué)真正的編程。這是我們想要寫這本書的原因。HTML是他自學(xué)的,我自己都不知道怎么做HTML。我們在書里寫的學(xué)習(xí)過程,就是他自己的學(xué)習(xí)方法?!?/p>
不斷試錯是學(xué)習(xí)編程的最佳捷徑
作為一本面向孩子的教科書,首先需要的就是能夠時刻抓住孩子的注意力,讓孩子一直保持好奇心和求知欲。粗略瀏覽這本書,第一印象就是圖文并茂。記得以前上學(xué)時我們的電腦課教材嗎?都是大段大段的文字和數(shù)字,而過多的文字堆壘很容易讓人產(chǎn)生厭倦情緒,也很容易讓孩子產(chǎn)生放棄的想法。小Carter對此更是感同身受,所以他和爸爸一起設(shè)計了一個自己的卡通形象,當(dāng)Carter發(fā)現(xiàn)了有趣或不尋常、不合理的地方,就通過這個卡通人物說出來。
▲ 書中的插圖
書中豐富有趣的插圖不僅僅讓孩子感覺到寓教于樂的輕松,同樣可以讓成年人過目不忘,達(dá)到最好的學(xué)習(xí)效果。凡是稍顯復(fù)雜的概念,書里都盡可能用漫畫比喻來輔助說明。比如,用鐵軌上的火車來說明各種選擇語句,用轉(zhuǎn)圈的小汽車來說明循環(huán)的概念,而用踢皮球闖禍的學(xué)生來說明“導(dǎo)入命名空間”,令人忍俊不禁。
在涉及術(shù)語的地方,書中都用了親和簡單的話語來說明。比如,書中用有趣的語言來解釋“語法高亮”,用生活中的大白話來講述“垃圾收集”;但是書中既沒有出現(xiàn)“高亮”,也沒有出現(xiàn)“GC”這些術(shù)語,以減少學(xué)習(xí)時的心理負(fù)擔(dān)。
為了讓入門者加深對這些術(shù)語和概念的理解,Sande父子在每一章中引入了大量代碼示例,讓讀者可以照著示例自己操作。對于編程來說,一開始照貓畫虎寫代碼是必不可少的實踐,寫得多了,對代碼和語言的理解也會逐步加深。書中注重編程的實踐性,鼓勵孩子大膽嘗試,多多練習(xí)。就像Warren說的:“學(xué)習(xí)編程沒有一個結(jié)束的日期,所以永遠(yuǎn)有東西去學(xué),多練習(xí)就好了?!?/p>
Sande父子深知,對于孩子們來說,純粹的數(shù)學(xué)計算并不是那么有趣;而能夠做出一個看得到的東西,則是一件很有成就感的事情。因此,他們在書中早早引入圖形用戶界面(GUI)以保持新鮮感,在書中大約四分之一的篇幅處就告知孩子們“游戲時間到了”,讓孩子們可以自己敲擊代碼來“創(chuàng)造”一個圖形化的小游戲,這樣的設(shè)計可以很好地吸引住孩子們的好奇心。
同時,書中還加入了很多嘗試過程中可能會出現(xiàn)的錯誤說明。父子倆都認(rèn)為,犯錯誤然后搞清楚怎么找出錯誤并改正,是最好的一種學(xué)習(xí)方法?!霸诰幊讨校硕噘M一點時間,你的錯誤通常不會帶來其他損失。所以完全可以犯很多錯誤,當(dāng)然也會獲得很多教訓(xùn),你會發(fā)現(xiàn)這很有意思?!?/p>
▲ 小Carter演示怎樣使用PythonCard
以下是外灘君對Warren和Carter父子的收集。
B=外灘教育 W=Warren C=Carter
B:在你們看來,編程具有怎樣的重要性?
W:當(dāng)然,電腦在現(xiàn)在很重要,所以編程是一門很有用的技能。即使你不想成為一個程序員,它在很多方面能幫助你,比如讓你理解你在使用的其他程序,即使是一點點的編程知識,也能讓你了解到電腦是如何運作的。另一個方面是,很多人說學(xué)習(xí)編程的過程也是學(xué)習(xí)怎么解決問題的過程,這我很同意。因為你要有一個明確的方法告訴電腦該做什么,在程序中經(jīng)常會有BUG,所以你必須得學(xué)會解決問題,找出哪里出了問題,知道怎么去糾正它。
C:編程和數(shù)學(xué)具有很大的相似性,我想最大的一點,也是學(xué)所有編程語言都需要的,就是嚴(yán)密的邏輯性。如果有一點小小的問題,比如你放錯了一個逗號的位置,如果是在別的地方,書里或者文章里,這都沒關(guān)系,但如果是編程,就需要你看到所有的細(xì)節(jié)。我進(jìn)行了許多練習(xí)才學(xué)會了這種技巧。
B:Python相比其他編程語言有什么優(yōu)越性?
W:在我見過所有的計算機(jī)語言中,Python最易讀、最易編寫,而且是免費的。另一方面,Python并不是一個“玩具”,學(xué)了之后你不用轉(zhuǎn)換語言再去學(xué)一種“真正的”語言來編寫“真正的”程序。很多工作都可以使用它完成。還有一點,Python可以在各種不同類型的計算機(jī)上運行,包括windows電腦、蘋果電腦和運行Linux的計算機(jī)。學(xué)習(xí)用Python編程可以讓你有一個很好的起點,有了這個基礎(chǔ),將來學(xué)習(xí)任何語言都會很輕松。
C:對于孩子來說,Python用起來很簡單,它設(shè)計的方式就是讓你逐漸的入門。有些語言比如JAVA,要運行一個很簡單的程序需要知道的東西也很多。用Python你可以學(xué)一個類型的指令,然后下一個,再下一個,直到學(xué)會所有的。相比其他一些語言,它看起來也更好看,更簡單,C++之類的對孩子來說都更難懂。
B:學(xué)編程對孩子是否有益?
W:每個孩子都應(yīng)該學(xué)會使用電腦。只要學(xué)到某個程度,即使只是很基礎(chǔ)的程度,就像我們書里的程度,都是一個幫助你更好理解電腦運作的方法,至少你可以領(lǐng)會你每天使用的一些東西是怎么工作的。
C:編程在許多不同方面幫到了我。首先,學(xué)習(xí)編程對我在理解數(shù)學(xué)方面很有幫助。另一點有趣的是我可以寫一些程序幫助我學(xué)習(xí)。比如,如果我需要背單詞,或者數(shù)學(xué)公式,我就會寫一些小程序去試著幫助我記憶,直到對了為止。
B:如何引起孩子的興趣?
W:第一是展示給孩子看程序是如何幫助到他們的,比如在學(xué)校的學(xué)習(xí),或者家庭作業(yè)等等。另外就是展示它有趣的一面,嘗試一些視頻小游戲,讓學(xué)習(xí)編程看起來更有趣一些。
C:我同意爸爸說的,另一點我覺得孩子都很喜歡做東西。小孩都喜歡做有創(chuàng)意的事情,表達(dá)他們的想象力,這是一個方面,如果你能展示出編程有這些特點,看看這些你能做出來的東西,多酷啊,這是一個很好的引起孩子興趣的方式。
B:Carter遇到困難時怎么辦?
W:我是不會直接告訴他要怎么做的。因為這違背了學(xué)習(xí)編程本身的目的。當(dāng)他們在學(xué)習(xí)一些東西的時候,最好的方法是不斷嘗試自己去做。我會提問題而不是直接告訴答案,比如接下來會怎樣?你看到了什么?你試過了哪些?你接下來會嘗試怎么做?問他很多的問題讓他來思考怎樣能解決問題。如果他們困住了,你可以給他們指出一個正確的方向,給一些意見,比如你可以試試這個或者那個,給他們一些嘗試的選擇,這樣他們可以嘗試,看看哪些可能會成功。
C:我很同意。一旦你學(xué)會了一些編程的東西,怎么去使用它,編程對我意味著不斷的嘗試直到有了新發(fā)現(xiàn),而不是直接知道一個正確的答案。很多時候我會問爸爸一些意見和建議,還有很多時候因為問題太復(fù)雜,他可能也不知道怎么辦,我們就會一起解決問題。
本文轉(zhuǎn)自微信公眾號“外灘教育”,作者孫康寧,原標(biāo)題為《這對父子合力寫了本編程暢銷書,原來犯錯才是學(xué)好編程的捷徑》。
2、芥末堆不接受通過公關(guān)費、車馬費等任何形式發(fā)布失實文章,只呈現(xiàn)有價值的內(nèi)容給讀者;
3、如果你也從事教育,并希望被芥末堆報道,請您 填寫信息告訴我們。