最近幾年,中國(guó)孩子增加了一項(xiàng)新負(fù)擔(dān):學(xué)編程。 這怨不得老師和家長(zhǎng),因?yàn)槿斯ぶ悄苋缣炖滓话悖蛭覀儩L滾而來(lái),如果不想在未來(lái)被計(jì)算機(jī)淘汰,精通編程,就像現(xiàn)在的英語(yǔ)、語(yǔ)文、數(shù)學(xué)一樣,是人在未來(lái)社會(huì)必備的一項(xiàng)技能。 作為一名在互聯(lián)網(wǎng)行業(yè)沉浸十多年的從業(yè)者,寫程序是我的一項(xiàng)基本技能,我今天結(jié)合自己的體會(huì),給正在和將要學(xué)習(xí)編程的孩子家長(zhǎng)幾點(diǎn)建議。 編程很有趣,別把它當(dāng)成多復(fù)雜的事兒很多人把編程當(dāng)成是只有聰明絕頂?shù)奶觳挪拍茏龅氖虑?,而事?shí)并不是這樣。寫程序不算高科技,而一般的程序,也不需要開發(fā)者擁有多高深的數(shù)學(xué)水平。程序本質(zhì)上不過(guò)是一堆讓計(jì)算機(jī)執(zhí)行某些行為的指令。孩子學(xué)習(xí)編程可能比成年人學(xué)得更快,因?yàn)楹⒆訉?duì)游戲更有興趣,興趣是驅(qū)動(dòng)孩子學(xué)習(xí)新知識(shí)的第一動(dòng)力。 作為家長(zhǎng),千萬(wàn)不要把你對(duì)編程的畏難情緒傳遞給孩子,不管你懂不懂編程,你都要告訴孩子:編程其實(shí)很簡(jiǎn)單。 低齡孩子學(xué)Scratch,大孩子學(xué)PythonScratch是麻省理工學(xué)院(MIT)專門給小孩子設(shè)計(jì)和開發(fā)的一套基于瀏覽器的圖形化編程環(huán)境。用Scratch編程,不太需要開發(fā)者編寫程序代碼,只需簡(jiǎn)單拖拽就可以完成編程。Scratch深受樂(lè)高機(jī)器人編程方式影響,把程序設(shè)計(jì)的相關(guān)原理和規(guī)則,通過(guò)編程組件的簡(jiǎn)單拼接組合教給孩子。訪問(wèn) https://scratch.,任何人立即就能在瀏覽器上開始編程。 Scratch 適合沒(méi)有任何編程基礎(chǔ),甚至還不會(huì)在電腦上打字的孩子。我個(gè)人認(rèn)為5歲左右的孩子就可以開始學(xué)習(xí)Scratch。當(dāng)然,對(duì)于6-13歲左右的孩子,甚至成人,以Scratch作為編程的入門都沒(méi)問(wèn)題,圖形化的編程界面,大大降低孩子對(duì)編程這件事的恐懼心理。 十歲以上的孩子,如果想學(xué)習(xí)“真正”的編程,Python是非常好的編程語(yǔ)言選擇。Python是當(dāng)前計(jì)算機(jī)行業(yè)非常流行的一門通用型高級(jí)編程語(yǔ)言,它是很多行業(yè)進(jìn)行數(shù)據(jù)處理、自然語(yǔ)言處理、機(jī)器學(xué)習(xí)方面的利器,它也可以用來(lái)搭建網(wǎng)站和各種應(yīng)用。Python雖然很強(qiáng)大,但學(xué)習(xí)起來(lái)并不復(fù)雜,因?yàn)樗恼Z(yǔ)法簡(jiǎn)單、易讀性強(qiáng)、還擁有人數(shù)眾多的開發(fā)者社區(qū),因此,Python也特別適合作為學(xué)習(xí)編程的第一語(yǔ)言選擇。 當(dāng)小孩子對(duì)Scratch的限制感到厭倦,Python是他們下一步編程學(xué)習(xí)的最佳選擇之一。 讓孩子用代碼把手“弄臟”前一陣觀摩一個(gè)給小孩子的編程課,老師先用大量計(jì)算機(jī)和程序設(shè)計(jì)的理論,把孩子們說(shuō)暈。我對(duì)這樣的教學(xué)方法,深深不以為然。計(jì)算機(jī)科學(xué)本身雖然是一門理論性很強(qiáng),對(duì)智力要求極高的學(xué)問(wèn),但編程本身卻是實(shí)踐性很強(qiáng)的技能。提高編程能力的最佳方法,就是跳到源代碼里,一行行讀,一段段調(diào)試,唯有這樣,才能快速進(jìn)步。 Python提供了方便的命令行交互(Shell),通給命令行,孩子就可以給計(jì)算機(jī)發(fā)送各種高指令。 教孩子編程,講講理論很容易。孩子就算聽懂了變量、循環(huán)、函數(shù)、數(shù)組等概念,坐在計(jì)算機(jī)前,他們還會(huì)束手無(wú)策。因此,和孩子肩并肩坐在一起,看他們一行行寫出代碼,是指導(dǎo)孩子編程的最好方式。 網(wǎng)上有大量的代碼例子可以學(xué)習(xí)參考。對(duì)初學(xué)者,找一些相對(duì)簡(jiǎn)單的代碼(200行代碼以下),丟給孩子,讓他們閱讀、理解、修改,然后去執(zhí)行、調(diào)試、不斷試錯(cuò)。 開發(fā)游戲項(xiàng)目多數(shù)孩子對(duì)視頻游戲有著天然的喜愛(ài),因此,鼓勵(lì)孩子開發(fā)游戲項(xiàng)目,可以保持孩子對(duì)編程這件事的熱情和投入?!鞍柗ü贰钡陌l(fā)明者就是從小時(shí)候開發(fā)游戲項(xiàng)目,熱愛(ài)起了編程。 不要指望孩子能開發(fā)出多好的游戲,用游戲激勵(lì)和保持孩子對(duì)編程的熱愛(ài)才是我們的初衷。杰出的游戲,絕對(duì)不是一個(gè)人能得出的,它需要一個(gè)規(guī)模不小的團(tuán)隊(duì)來(lái)開發(fā)和支持,所以,家長(zhǎng)要有合理的預(yù)期,記住自己的初衷。 給孩子準(zhǔn)備一臺(tái)能編程的電腦編程需要電腦,為孩子準(zhǔn)備什么樣的電腦呢?你不必花大幾千為孩子配備高端的電腦,一臺(tái)用樹莓派(Raspberry Pi)和一個(gè)二手顯示器,不到1000塊錢,就足夠孩子學(xué)習(xí)編程了,這個(gè)配置的性能甚至超過(guò)了不少便宜的筆記本電腦。iPad不適合孩子學(xué)習(xí)編程,因?yàn)閕Pad上很難跑Python開發(fā)環(huán)境。 有些家長(zhǎng)選擇通過(guò)LEGO機(jī)器人讓孩子學(xué)習(xí)編程,這個(gè)選擇雖然不錯(cuò),但這種學(xué)習(xí)編程方式開銷不低,孩子還要花費(fèi)大量時(shí)間在樂(lè)高積木的拼插上,更麻煩的是,Python又不是LEGO編程的“自然”語(yǔ)言,因此,對(duì)多數(shù)孩子來(lái)說(shuō),直接在電腦上進(jìn)行編程,是最直接、費(fèi)用最低、距離目標(biāo)最近的方式。 跳過(guò)計(jì)算機(jī)科學(xué)有些家長(zhǎng)或老師或許自己精通計(jì)算機(jī)編程,因此,他們急于把更深層的計(jì)算機(jī)科學(xué)的知識(shí)傳遞給孩子。面向?qū)ο缶幊獭⑦f歸、二叉樹、設(shè)計(jì)模式等或許是專業(yè)人士喜歡探討的問(wèn)題,但過(guò)早讓孩子陷入到這些更為高階的概念中,可能會(huì)徹底擊毀孩子學(xué)習(xí)編程的興趣,因?yàn)檫@些問(wèn)題已經(jīng)脫離了他們的當(dāng)前的知識(shí)結(jié)構(gòu)。孩子需要更高階的數(shù)學(xué)和邏輯做支撐,才可能理解那些概念。 需要孩子避免的知識(shí)包括:
從學(xué)習(xí)編程到精通編程是一個(gè)長(zhǎng)期的過(guò)程,家長(zhǎng)切忌心急,沒(méi)什么比保持孩子對(duì)編程的樂(lè)趣更重要。最后一句,如果真希望孩子能在編程上有更大更遠(yuǎn)的發(fā)展,讓孩子學(xué)好數(shù)學(xué),學(xué)好數(shù)學(xué),學(xué)好數(shù)學(xué)。
|
|