芥末堆芥末堆

這本父子合寫(xiě)的編程暢銷書(shū)告訴你,犯錯(cuò)是學(xué)習(xí)編程的最佳捷徑

作者:孫康寧 發(fā)布時(shí)間:

這本父子合寫(xiě)的編程暢銷書(shū)告訴你,犯錯(cuò)是學(xué)習(xí)編程的最佳捷徑

作者:孫康寧 發(fā)布時(shí)間:

摘要:有沒(méi)有一種方法,能讓孩子輕松愉快地完成編程入門(mén)?

640.jpg

學(xué)習(xí)編程有助于提高孩子的思維能力,越來(lái)越多的家長(zhǎng)也已經(jīng)意識(shí)到這一點(diǎn)。但怎樣才能讓孩子輕松入門(mén)并產(chǎn)生對(duì)編程的興趣呢?電氣工程師Warren Sande和兒子Carter一起,編寫(xiě)了一本引領(lǐng)孩子們走進(jìn)編程世界的書(shū),而該書(shū)最大的特點(diǎn)就是通過(guò)淺顯易懂的語(yǔ)言激發(fā)小讀者們對(duì)編程的興趣和好奇心。在接受外灘君收集時(shí),Warren說(shuō)“學(xué)習(xí)編程的最好方法是不斷嘗試”。

 “我覺(jué)得每個(gè)人都應(yīng)該學(xué)習(xí)一門(mén)編程語(yǔ)言。學(xué)習(xí)編程教你如何思考……我把計(jì)算機(jī)科學(xué)看成是基礎(chǔ)教育,每個(gè)人都應(yīng)該花1年時(shí)間學(xué)習(xí)編程。”這是早在十幾年前喬布斯曾說(shuō)過(guò)的一段話。

在當(dāng)今的數(shù)字時(shí)代中,計(jì)算機(jī)已經(jīng)滲透到了我們生活的各個(gè)方面。家長(zhǎng)們也逐漸開(kāi)始糾正“學(xué)編程=搞IT”的誤區(qū),慢慢了解到學(xué)習(xí)編程能夠鍛煉孩子的思維能力,對(duì)孩子學(xué)習(xí)數(shù)學(xué)和物理等其他學(xué)科都會(huì)有幫助。 

而從趨勢(shì)看,中國(guó)正在逐步把STEAM教育納入基礎(chǔ)學(xué)科,其中,少兒編程正是STEAM教育的一個(gè)分支內(nèi)容。例如,2016年,教育部印發(fā)的《教育信息化“十三五”規(guī)劃》中,將信息化教學(xué)能力納入學(xué)校辦學(xué)水平考評(píng)體系??梢?jiàn),編程將逐漸在中國(guó)的青少兒教育中占領(lǐng)至關(guān)重要的一環(huán)。 

基于上述原因,近年來(lái),各種青少兒編程的相關(guān)行業(yè)呈現(xiàn)出越來(lái)越受家長(zhǎng)歡迎的趨勢(shì)。不過(guò),編程對(duì)于年紀(jì)尚小的孩子來(lái)說(shuō),不免有些枯燥;市面上五花八門(mén)的培訓(xùn)班雖多,卻也是良莠不齊;而大多數(shù)的計(jì)算機(jī)書(shū)籍對(duì)于孩子來(lái)說(shuō)都過(guò)于艱深。許多家長(zhǎng)不禁苦惱,怎樣才能讓孩子在入門(mén)階段就對(duì)編程產(chǎn)生興趣?有沒(méi)有一種方法,能讓孩子輕松愉快地入門(mén)? 

為什么不和兒子一起寫(xiě)本書(shū)呢?

640.jpg

《父與子的編程之旅——與小卡特一起學(xué)Python》
作者: Warren Sande / Carter Sande
譯者:蘇金國(guó) /  易鄭超 
出版:人民郵電出版社

作為父親,電氣工程師Warren Sande也遇到了相同的問(wèn)題。他畢業(yè)于加拿大賈那大學(xué)電氣工程系,一直在面向計(jì)算機(jī)初學(xué)者教授軟件基礎(chǔ)課程。他的兒子Carter Sande在五六歲的時(shí)候就對(duì)學(xué)習(xí)編程產(chǎn)生了濃厚的興趣,到了小學(xué)階段時(shí),Warren發(fā)現(xiàn)他根本找不到一本合適的書(shū)來(lái)滿足他高漲的學(xué)習(xí)熱情。他的妻子給他提了一個(gè)建議:“你應(yīng)該寫(xiě)本書(shū),你們兩個(gè)可以合作來(lái)完成。” 

于是,Sande父子真的開(kāi)始考慮這本書(shū)里應(yīng)該寫(xiě)點(diǎn)什么,兩人一起構(gòu)思每一章的大綱,編寫(xiě)示例程序,想方設(shè)法力求更風(fēng)趣、更有意思。Carter更是舍棄了每晚的睡前故事時(shí)間,全心投入這本書(shū)。他甚至?xí)?jīng)常提醒爸爸:“爸爸,我們好幾天沒(méi)有寫(xiě)書(shū)了!”經(jīng)過(guò)他們的努力,終于讓《父與子的編程之旅——與小Carter一起學(xué)Python》這本書(shū)得以問(wèn)世。

《父與子的編程之旅》是一本可供家長(zhǎng)與孩子共同學(xué)習(xí)編程的入門(mén)書(shū)。Sande父子以Python語(yǔ)言為例,在輕松的氛圍中介紹了編程的基本概念,從安裝、字符串和操作符開(kāi)始,到條件語(yǔ)句、函數(shù)、模塊等進(jìn)階內(nèi)容,最后還加入了如何用Python實(shí)現(xiàn)游戲編程以達(dá)到實(shí)際操作的目的。書(shū)中言語(yǔ)幽默風(fēng)趣,簡(jiǎn)單明了,讓這些知識(shí)聽(tīng)起來(lái)備感親切。為了讓學(xué)習(xí)過(guò)程更有樂(lè)趣,細(xì)心的作者還配上了孩子們都喜歡的可愛(ài)漫畫(huà)和經(jīng)過(guò)運(yùn)行測(cè)試的程序示例,讓學(xué)習(xí)者在輕松愉快之中跨入編程的大門(mén)。

而豆瓣評(píng)分8.5(滿分10分),Amazon評(píng)分四星半(滿分五星),曾獲得2011年Jolt圖書(shū)生產(chǎn)效率大獎(jiǎng),足以說(shuō)明這本書(shū)得到了廣泛的認(rèn)可,甚至連Python的發(fā)明人Guido van Rossum也在自己的博客上對(duì)這本書(shū)作了推薦??梢哉f(shuō),這是一本最適合孩子編程啟蒙階段在游戲中學(xué)習(xí)的編程書(shū)。

年僅18歲的編程“老司機(jī)” 

Carter今年剛滿18歲,他已經(jīng)被UC Berkeley的電機(jī)工程專業(yè)錄取了。從5歲時(shí)對(duì)編程產(chǎn)生興趣開(kāi)始,Carter就一直在做跟電腦相關(guān)的事情。Carter也坦言,在自己還是一個(gè)孩子的時(shí)候,編程對(duì)他最大的吸引力就是來(lái)自于游戲?!拔易罱鼊倓偨o任天堂的游戲機(jī)GAME BOY ADVANCE做了一個(gè)小小的視頻游戲。其實(shí)這是我以前做的一個(gè)手機(jī)游戲,現(xiàn)在我試著做了一個(gè)GBA的版本,這是一個(gè)很有趣的挑戰(zhàn),因?yàn)镚BA的容量更小,運(yùn)行更慢,所以要做一個(gè)游戲其實(shí)更難。但我很享受這個(gè)過(guò)程?!?/p>

640.jpg

▲ 自由編程俱樂(lè)部社區(qū)CoderDojo

雖然Carter年紀(jì)尚小,但他在編程教學(xué)方面,卻可以稱得上是經(jīng)驗(yàn)豐富的“老司機(jī)”了。父子倆在多年前就已經(jīng)成為了CoderDojo(CoderDojo是全球志愿者領(lǐng)導(dǎo)的為7-17歲年輕人創(chuàng)設(shè)的自由編程俱樂(lè)部社區(qū))的志愿者,幫助教社區(qū)里的孩子們?nèi)腴T(mén)編程。Carter對(duì)此很自豪:“我當(dāng)時(shí)10、11歲左右。當(dāng)我去給別人上課的時(shí)候,我其實(shí)是那里年紀(jì)最小的,我的學(xué)生里大多數(shù)年紀(jì)都比我大。但是,并不是因?yàn)槲沂莻€(gè)小孩就什么都不懂,相反我可以幫助任何人。”

據(jù)Warren回憶,從五六歲開(kāi)始,Carter就已經(jīng)表現(xiàn)出了對(duì)電腦的濃厚興趣?!耙婚_(kāi)始他只是在玩電腦,瀏覽一些網(wǎng)站,后來(lái)他開(kāi)始想自己做一個(gè)網(wǎng)站。他做的第一件事是HTML,用來(lái)做很簡(jiǎn)單的網(wǎng)頁(yè)。之后就開(kāi)始學(xué)真正的編程。這是我們想要寫(xiě)這本書(shū)的原因。HTML是他自學(xué)的,我自己都不知道怎么做HTML。我們?cè)跁?shū)里寫(xiě)的學(xué)習(xí)過(guò)程,就是他自己的學(xué)習(xí)方法?!?/p>

不斷試錯(cuò)是學(xué)習(xí)編程的最佳捷徑

作為一本面向孩子的教科書(shū),首先需要的就是能夠時(shí)刻抓住孩子的注意力,讓孩子一直保持好奇心和求知欲。粗略瀏覽這本書(shū),第一印象就是圖文并茂。記得以前上學(xué)時(shí)我們的電腦課教材嗎?都是大段大段的文字和數(shù)字,而過(guò)多的文字堆壘很容易讓人產(chǎn)生厭倦情緒,也很容易讓孩子產(chǎn)生放棄的想法。小Carter對(duì)此更是感同身受,所以他和爸爸一起設(shè)計(jì)了一個(gè)自己的卡通形象,當(dāng)Carter發(fā)現(xiàn)了有趣或不尋常、不合理的地方,就通過(guò)這個(gè)卡通人物說(shuō)出來(lái)。

640.jpg

▲ 書(shū)中的插圖

書(shū)中豐富有趣的插圖不僅僅讓孩子感覺(jué)到寓教于樂(lè)的輕松,同樣可以讓成年人過(guò)目不忘,達(dá)到最好的學(xué)習(xí)效果。凡是稍顯復(fù)雜的概念,書(shū)里都盡可能用漫畫(huà)比喻來(lái)輔助說(shuō)明。比如,用鐵軌上的火車來(lái)說(shuō)明各種選擇語(yǔ)句,用轉(zhuǎn)圈的小汽車來(lái)說(shuō)明循環(huán)的概念,而用踢皮球闖禍的學(xué)生來(lái)說(shuō)明“導(dǎo)入命名空間”,令人忍俊不禁。

在涉及術(shù)語(yǔ)的地方,書(shū)中都用了親和簡(jiǎn)單的話語(yǔ)來(lái)說(shuō)明。比如,書(shū)中用有趣的語(yǔ)言來(lái)解釋“語(yǔ)法高亮”,用生活中的大白話來(lái)講述“垃圾收集”;但是書(shū)中既沒(méi)有出現(xiàn)“高亮”,也沒(méi)有出現(xiàn)“GC”這些術(shù)語(yǔ),以減少學(xué)習(xí)時(shí)的心理負(fù)擔(dān)。 

為了讓入門(mén)者加深對(duì)這些術(shù)語(yǔ)和概念的理解,Sande父子在每一章中引入了大量代碼示例,讓讀者可以照著示例自己操作。對(duì)于編程來(lái)說(shuō),一開(kāi)始照貓畫(huà)虎寫(xiě)代碼是必不可少的實(shí)踐,寫(xiě)得多了,對(duì)代碼和語(yǔ)言的理解也會(huì)逐步加深。書(shū)中注重編程的實(shí)踐性,鼓勵(lì)孩子大膽嘗試,多多練習(xí)。就像Warren說(shuō)的:“學(xué)習(xí)編程沒(méi)有一個(gè)結(jié)束的日期,所以永遠(yuǎn)有東西去學(xué),多練習(xí)就好了?!?/p>

Sande父子深知,對(duì)于孩子們來(lái)說(shuō),純粹的數(shù)學(xué)計(jì)算并不是那么有趣;而能夠做出一個(gè)看得到的東西,則是一件很有成就感的事情。因此,他們?cè)跁?shū)中早早引入圖形用戶界面(GUI)以保持新鮮感,在書(shū)中大約四分之一的篇幅處就告知孩子們“游戲時(shí)間到了”,讓孩子們可以自己敲擊代碼來(lái)“創(chuàng)造”一個(gè)圖形化的小游戲,這樣的設(shè)計(jì)可以很好地吸引住孩子們的好奇心。

同時(shí),書(shū)中還加入了很多嘗試過(guò)程中可能會(huì)出現(xiàn)的錯(cuò)誤說(shuō)明。父子倆都認(rèn)為,犯錯(cuò)誤然后搞清楚怎么找出錯(cuò)誤并改正,是最好的一種學(xué)習(xí)方法?!霸诰幊讨?,除了多費(fèi)一點(diǎn)時(shí)間,你的錯(cuò)誤通常不會(huì)帶來(lái)其他損失。所以完全可以犯很多錯(cuò)誤,當(dāng)然也會(huì)獲得很多教訓(xùn),你會(huì)發(fā)現(xiàn)這很有意思?!?/p>

640.jpg

▲  小Carter演示怎樣使用PythonCard

以下是外灘君對(duì)Warren和Carter父子的收集。

B=外灘教育  W=Warren  C=Carter

B:在你們看來(lái),編程具有怎樣的重要性?

W:當(dāng)然,電腦在現(xiàn)在很重要,所以編程是一門(mén)很有用的技能。即使你不想成為一個(gè)程序員,它在很多方面能幫助你,比如讓你理解你在使用的其他程序,即使是一點(diǎn)點(diǎn)的編程知識(shí),也能讓你了解到電腦是如何運(yùn)作的。另一個(gè)方面是,很多人說(shuō)學(xué)習(xí)編程的過(guò)程也是學(xué)習(xí)怎么解決問(wèn)題的過(guò)程,這我很同意。因?yàn)槟阋幸粋€(gè)明確的方法告訴電腦該做什么,在程序中經(jīng)常會(huì)有BUG,所以你必須得學(xué)會(huì)解決問(wèn)題,找出哪里出了問(wèn)題,知道怎么去糾正它。

C:編程和數(shù)學(xué)具有很大的相似性,我想最大的一點(diǎn),也是學(xué)所有編程語(yǔ)言都需要的,就是嚴(yán)密的邏輯性。如果有一點(diǎn)小小的問(wèn)題,比如你放錯(cuò)了一個(gè)逗號(hào)的位置,如果是在別的地方,書(shū)里或者文章里,這都沒(méi)關(guān)系,但如果是編程,就需要你看到所有的細(xì)節(jié)。我進(jìn)行了許多練習(xí)才學(xué)會(huì)了這種技巧。

B:Python相比其他編程語(yǔ)言有什么優(yōu)越性?

W:在我見(jiàn)過(guò)所有的計(jì)算機(jī)語(yǔ)言中,Python最易讀、最易編寫(xiě),而且是免費(fèi)的。另一方面,Python并不是一個(gè)“玩具”,學(xué)了之后你不用轉(zhuǎn)換語(yǔ)言再去學(xué)一種“真正的”語(yǔ)言來(lái)編寫(xiě)“真正的”程序。很多工作都可以使用它完成。還有一點(diǎn),Python可以在各種不同類型的計(jì)算機(jī)上運(yùn)行,包括windows電腦、蘋(píng)果電腦和運(yùn)行Linux的計(jì)算機(jī)。學(xué)習(xí)用Python編程可以讓你有一個(gè)很好的起點(diǎn),有了這個(gè)基礎(chǔ),將來(lái)學(xué)習(xí)任何語(yǔ)言都會(huì)很輕松。

C:對(duì)于孩子來(lái)說(shuō),Python用起來(lái)很簡(jiǎn)單,它設(shè)計(jì)的方式就是讓你逐漸的入門(mén)。有些語(yǔ)言比如JAVA,要運(yùn)行一個(gè)很簡(jiǎn)單的程序需要知道的東西也很多。用Python你可以學(xué)一個(gè)類型的指令,然后下一個(gè),再下一個(gè),直到學(xué)會(huì)所有的。相比其他一些語(yǔ)言,它看起來(lái)也更好看,更簡(jiǎn)單,C++之類的對(duì)孩子來(lái)說(shuō)都更難懂。

B:學(xué)編程對(duì)孩子是否有益?

W:每個(gè)孩子都應(yīng)該學(xué)會(huì)使用電腦。只要學(xué)到某個(gè)程度,即使只是很基礎(chǔ)的程度,就像我們書(shū)里的程度,都是一個(gè)幫助你更好理解電腦運(yùn)作的方法,至少你可以領(lǐng)會(huì)你每天使用的一些東西是怎么工作的。

C:編程在許多不同方面幫到了我。首先,學(xué)習(xí)編程對(duì)我在理解數(shù)學(xué)方面很有幫助。另一點(diǎn)有趣的是我可以寫(xiě)一些程序幫助我學(xué)習(xí)。比如,如果我需要背單詞,或者數(shù)學(xué)公式,我就會(huì)寫(xiě)一些小程序去試著幫助我記憶,直到對(duì)了為止。

B:如何引起孩子的興趣?

W:第一是展示給孩子看程序是如何幫助到他們的,比如在學(xué)校的學(xué)習(xí),或者家庭作業(yè)等等。另外就是展示它有趣的一面,嘗試一些視頻小游戲,讓學(xué)習(xí)編程看起來(lái)更有趣一些。

C:我同意爸爸說(shuō)的,另一點(diǎn)我覺(jué)得孩子都很喜歡做東西。小孩都喜歡做有創(chuàng)意的事情,表達(dá)他們的想象力,這是一個(gè)方面,如果你能展示出編程有這些特點(diǎn),看看這些你能做出來(lái)的東西,多酷啊,這是一個(gè)很好的引起孩子興趣的方式。

B:Carter遇到困難時(shí)怎么辦?

W:我是不會(huì)直接告訴他要怎么做的。因?yàn)檫@違背了學(xué)習(xí)編程本身的目的。當(dāng)他們?cè)趯W(xué)習(xí)一些東西的時(shí)候,最好的方法是不斷嘗試自己去做。我會(huì)提問(wèn)題而不是直接告訴答案,比如接下來(lái)會(huì)怎樣?你看到了什么?你試過(guò)了哪些?你接下來(lái)會(huì)嘗試怎么做?問(wèn)他很多的問(wèn)題讓他來(lái)思考怎樣能解決問(wèn)題。如果他們困住了,你可以給他們指出一個(gè)正確的方向,給一些意見(jiàn),比如你可以試試這個(gè)或者那個(gè),給他們一些嘗試的選擇,這樣他們可以嘗試,看看哪些可能會(huì)成功。

C:我很同意。一旦你學(xué)會(huì)了一些編程的東西,怎么去使用它,編程對(duì)我意味著不斷的嘗試直到有了新發(fā)現(xiàn),而不是直接知道一個(gè)正確的答案。很多時(shí)候我會(huì)問(wèn)爸爸一些意見(jiàn)和建議,還有很多時(shí)候因?yàn)閱?wèn)題太復(fù)雜,他可能也不知道怎么辦,我們就會(huì)一起解決問(wèn)題。

本文轉(zhuǎn)自微信公眾號(hào)“外灘教育”,作者孫康寧,原標(biāo)題為《這對(duì)父子合力寫(xiě)了本編程暢銷書(shū),原來(lái)犯錯(cuò)才是學(xué)好編程的捷徑》。

1、本文是 芥末堆網(wǎng)轉(zhuǎn)載文章,原文:外灘教育;
2、芥末堆不接受通過(guò)公關(guān)費(fèi)、車馬費(fèi)等任何形式發(fā)布失實(shí)文章,只呈現(xiàn)有價(jià)值的內(nèi)容給讀者;
3、如果你也從事教育,并希望被芥末堆報(bào)道,請(qǐng)您 填寫(xiě)信息告訴我們。
來(lái)源:外灘教育
芥末堆商務(wù)合作:王老師 18710003484
  • 這本父子合寫(xiě)的編程暢銷書(shū)告訴你,犯錯(cuò)是學(xué)習(xí)編程的最佳捷徑分享二維碼