讓你的孩子成為下一個(gè)扎克伯格:程序員們,編程要從娃娃抓起!
譯文【51CTO.com快譯】 各位程序們~你們好!今天我們講一個(gè)很嚴(yán)肅的話題!你們有沒有發(fā)現(xiàn)?周圍一些金光閃閃、頗具影響力的人物都是從很小的時(shí)候,就開始學(xué)習(xí)編程。所以說,編程要從娃娃抓起!
我沒有在開玩笑,5、6歲的孩子接觸編程,一來編程能培養(yǎng)孩子思維能力和習(xí)慣,二來7歲以前都是游戲化活動也是培養(yǎng)概念和認(rèn)知的***時(shí)間!無論孩子未來從事什么行業(yè),這個(gè)階段兒童學(xué)習(xí)編程有益無害,至于孩子能不能愛上編程就看他自己選擇了。
現(xiàn)在想想,為什么美國孩子的動手能力那么快,思維邏輯那么好呢,其實(shí)也是因?yàn)閺男∨囵B(yǎng)動手能力和邏輯思維的原因。
如果您身邊有個(gè)年幼的小寶寶,又該如何引導(dǎo)他們學(xué)習(xí)編程呢?其實(shí)并沒那么困難!我五歲的小女兒現(xiàn)在就跟我一起學(xué)習(xí)編程,下面我將與大家分享這六項(xiàng)訣竅,以及一些適合兒童學(xué)習(xí)編程的網(wǎng)站!
訣竅一:從理論入手
首先,讓他覺得編程是件很酷的事情,用趣味和游戲說服孩子,讓孩子愛上編程。?。ㄟ@是不是誤人子弟啊 (-_-)zzz)
接著,很多朋友會***時(shí)間沖到鍵盤前,教孩子學(xué)習(xí)代碼。不過等等,兒童的編程學(xué)習(xí)重點(diǎn)并非語法及系統(tǒng),而是如何學(xué)會編程式思維。
在女兒的編程課中,我是先從紙上開始的。我會先整理程序的外觀及活動特性,其中大部分工作是通過用Ruby Shoes工具箱來開發(fā)GUI程序。如此一來,我們就能通過鼠標(biāo)描繪布局并配上漂亮的色彩。
對大多數(shù)編程項(xiàng)目來說,我會把大多數(shù)時(shí)間用于規(guī)劃——而這類工作非常適合跟小朋友們一同完成。
訣竅二:快速得出結(jié)果,減小項(xiàng)目規(guī)模
小朋友們往往不太有耐心,因此作為成年人的我們,需要找到適合他水平的編程,來吸引他們的注意力。
請盡可能的讓屏幕上的結(jié)果,實(shí)現(xiàn)的更速度。如果你們的開發(fā)工作是基于文本實(shí)現(xiàn),那么就該考慮的是孩子們能否立即輸入命令?如果屬于硬件項(xiàng)目,那么就該考慮的是最快的實(shí)現(xiàn)流程是什么?如果正在編寫一套GUI,請先在屏幕上繪制***個(gè)矩形。
需要注意的是,孩子們會很快因?yàn)榭菰锔卸x擇離開。我女兒的注意力很少能持續(xù)15分鐘以上,因此千萬別指望著他們能像大人一樣把整個(gè)下午耗在電腦前。
訣竅三:勇于嘗試
由于時(shí)間緊迫,因此我們大人需要做好一切準(zhǔn)備。如果涉及的開發(fā)工具或者功能,對您來說較為陌生,請一定在拉上孩子之前做好預(yù)習(xí)。
這算作弊嗎?當(dāng)然不是。主要目的是向孩子展示編程所帶來的***可能性,而非固執(zhí)地強(qiáng)迫她面對整個(gè)流程。
如果碰到難題怎么辦?也沒關(guān)系,讓孩子了解到大人也會犯錯是非常重要的。我們要勇于承認(rèn)自己也并非全能,并要告訴他們我們是怎樣解決這個(gè)問題。但同時(shí)也要注意,別沉浸在其中,而忽略了早已不耐煩的小朋友。
訣竅四:給孩子們真正的工具!
我喜歡向小女兒介紹自己每天真正使用的工具。這意味著她能夠使用Atom編輯文本,并通過命令行下達(dá)各種指令。
既然之前說了這么多保持編程的體驗(yàn)要輕松愉快的重要性,為什么還要讓小朋友接觸真正的Unix提示符?這個(gè)嘛,其實(shí)文本界面使用起來也非常簡便。
我的女兒非常喜歡輸入命令、回車并查看結(jié)果這個(gè)過程。雖然她還沒有掌握多少高級參數(shù),但在同齡人還只會使用圖形界面及iPad的情況下,她的表現(xiàn)已經(jīng)相當(dāng)令人驕傲了。
她甚至喜歡觀看其他人使用命令終端,并在看到“ls”命令時(shí)興奮地表示她也會用。
訣竅五:不要過度堅(jiān)持所謂正確性
在以專業(yè)方式編寫代碼時(shí),我們需要在多種因素間做出權(quán)衡:保證方法簡短明了、變量命名得當(dāng)、不存在不必要的代碼以及合理的錯誤處理機(jī)制等等。
但在面對小朋友時(shí),請放棄這一切既有思維。過多細(xì)節(jié)只會讓他們失去興趣,因此“基本正確”即可。
訣竅六:讓孩子掌握主導(dǎo)權(quán)
下面是最困難但最重要的一項(xiàng)建議:在指導(dǎo)孩子編程時(shí),盡量少加干涉。
誠然,這有時(shí)候會帶來種種麻煩,但相信大家也能夠理解,單純讓孩子觀看我們自己的操作是無法真正幫助其掌握這門技能的。
我給女兒設(shè)置了一個(gè)特定權(quán)限賬戶,并允許她在其中任意操作。隨著時(shí)間推移,她的操作越來越流暢,而她自己也擁有了在程序世界里面成為king的感覺。
接下來為大家推薦,一些適合兒童學(xué)習(xí)編程的網(wǎng)站:
Scratch是年幼兒童從零開始學(xué)習(xí)的***的一款工具,通過點(diǎn)擊并拖拽的方式,完成編程,可以使兒童或者成人編程初學(xué)者學(xué)習(xí)編程基礎(chǔ)概念等。因?yàn)樗强梢暬?,能夠輕松幫助兒童創(chuàng)建圖形化應(yīng)用。
可從這個(gè)網(wǎng)站,教他們 coffeescript。
對于沒有經(jīng)驗(yàn)和技術(shù)的孩子來說,Code Monster是款非常非常神奇的應(yīng)用。屏幕分為兩個(gè)部分,左邊是JavaScript代碼,右邊顯示圖片。當(dāng)孩子們在代碼區(qū)改變變量時(shí),右邊圖片就會做出響應(yīng)。
4.http://www.computercraft.info/
教他玩Minecraft,然后告訴他ComputerCraft的存在。
5.http://cn.codecombat.com/play/level/true-names
這款游戲可以讓熊孩子們試試!
so.......當(dāng)我什么都沒說.....
原文標(biāo)題:Coding With Kids: Six Secretsto Teaching Children to Program,原文作者:Jason Clark
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】