一位程序員爸爸抵制編程教育:“我不會(huì)教孩子學(xué)編程”
5G技術(shù)、人工智能、虛擬現(xiàn)實(shí),越來(lái)越多的新詞匯沖刷著我們的認(rèn)知。“未來(lái)已來(lái),編程為王。”在大眾看來(lái),編程似乎與讀寫一樣,成為接軌未來(lái)的必備技能。然而,美國(guó)程序員爸爸Joe Morgon卻表示并不會(huì)讓自己的孩子學(xué)習(xí)編程。他指出,編程與讀寫在重要性上并不對(duì)等,而且簡(jiǎn)單的學(xué)習(xí)編程語(yǔ)法并不能培養(yǎng)孩子解決問題的能力。更重要的是,當(dāng)我們強(qiáng)迫孩子跟著死板的流程去學(xué)習(xí)編程,只會(huì)抹殺他們的好奇心。
昨天,我在美國(guó)知名的在線雜志Slate上看到一位美國(guó)程序員爸爸反對(duì)兒童學(xué)編程的文章,雖然我不贊同他的結(jié)論,但是他的想法卻發(fā)人深思,值得一讀。
這位名叫Joe Morgon的程序員發(fā)表的文章標(biāo)題是:《我是程序員,我不會(huì)教孩子學(xué)編程,你也別教》。
為什么要讓孩子學(xué)編程?
最近一次夜跑時(shí),我路過(guò)一個(gè)很大的櫥窗,里面展示的是教孩子們學(xué)編程的書。其中有些書我看到過(guò),但我從來(lái)沒有見過(guò)這么多針對(duì)小學(xué)生編程的書。
而這些書不過(guò)是冰山一角,市面上還有大量跟編程相關(guān)的資源——夏季編程訓(xùn)練營(yíng)、課后編程俱樂部、教幼兒園孩子JavaScript基礎(chǔ)知識(shí)的APP——它們都在向孩子傳授面向未來(lái)的技能。
父母為什么要讓孩子學(xué)編程呢?
新加坡一個(gè)編程校外班
答案顯而易見。
除了學(xué)習(xí)開發(fā)軟件之外,還有什么更好的方法,能讓我們的孩子迎接一個(gè)由軟件統(tǒng)治的未來(lái)世界?
如果一切都將自動(dòng)化,那么做控制自動(dòng)化的人會(huì)更安全。如果學(xué)習(xí)編程有用,那么宜早不宜遲。
雖然這些學(xué)習(xí)編程的產(chǎn)品可能教孩子們特定的編程語(yǔ)言,但卻與真正的軟件開發(fā)關(guān)系不大。
編程就是讀書寫字?
我的一位前同事曾經(jīng)在一個(gè)編程訓(xùn)練營(yíng)接受過(guò)訓(xùn)練,這個(gè)訓(xùn)練營(yíng)的口號(hào)是“編程是一種新的讀寫能力”。這種刻意營(yíng)造的焦慮感是所有編程書和游戲的核心。
正如一本很火的書中所描述的:盡早學(xué)習(xí)編程“是孩子為未來(lái)做好準(zhǔn)備必不可少的一步”。這話給人的印象是,不教孩子編程在某種程度上等同于不教他們讀書寫字。
這種說(shuō)法顯然是荒謬的,編程不等同于讀書寫字。雖然大多數(shù)父母都受過(guò)教育,并且知道給孩子讀書,但他們大多數(shù)并不是程序員,也不知道程序員需要什么樣的技能。
兒童編程書將編程看作能夠?yàn)橐幌盗袉栴}找到“正確”解決方案的能力。如果你的孩子能夠掌握編程語(yǔ)法(syntax),就能夠快速輕松地完成任務(wù)。
但,這并不是程序員的工作方式。
學(xué)會(huì)編程語(yǔ)法就是學(xué)會(huì)編程?
軟件開發(fā)是一項(xiàng)艱難的工程,是創(chuàng)造力和決心的結(jié)合。開發(fā)人員需要掌握的遠(yuǎn)遠(yuǎn)不止語(yǔ)法這么簡(jiǎn)單。
杰出的程序員不光是讓軟件能夠運(yùn)行,他們還希望開發(fā)出優(yōu)秀的軟件。
在職業(yè)生涯的早期,我編寫了一些代碼來(lái)配置和運(yùn)行一組遠(yuǎn)程服務(wù)器。我的代碼運(yùn)行得很順利——至少我是這么想的——直到大約18個(gè)小時(shí)后,夜半鈴響,我得到通知:一組服務(wù)器宕機(jī)了。
我從床上爬起來(lái),走到筆記本前,又運(yùn)行了一遍代碼來(lái)替換宕機(jī)的服務(wù)器。幾小時(shí)后,又有一組服務(wù)器宕機(jī)了。
宕機(jī)并不是由語(yǔ)法引發(fā)的,如果有的話,服務(wù)器一開始就無(wú)法搭建起來(lái)。宕機(jī)的原因非常復(fù)雜,經(jīng)過(guò)好幾周和無(wú)數(shù)個(gè)被叫醒的夜晚,我終于解決了問題。
編程就是這樣:先寫代碼,看看它是否有效。失敗了就再試一次。如果問題很簡(jiǎn)單,有些開源代碼就能解決。剩下的就是需要***性的艱巨任務(wù)。沒有書可以教你如何解決***的問題。
這就是為什么我不希望我的孩子學(xué)習(xí)編程語(yǔ)法——我希望他們學(xué)會(huì)解決問題,深入研究問題,發(fā)揮創(chuàng)造力。
比起編程,掌握這些能力更重要
那我們?cè)撛趺唇踢@些能力呢?
有一天,我的兒子有點(diǎn)擔(dān)心他那把搖搖晃晃的椅子。我們一起觀察了下椅子,兒子幫我找到了問題:有一個(gè)螺釘松了。我在家里找到一個(gè)適合的六角扳手,并演示怎么把螺釘擰緊。
之后,兒子很好奇:如果反方向擰會(huì)發(fā)生什么?他試了試,直到螺釘被擰出來(lái)為止。***,我們反復(fù)將椅子拆開,再裝回去——中間還裝錯(cuò)過(guò)——直到兒子滿意為止。
先試試,看結(jié)果如何,不行就再試一次。
當(dāng)然,讓軟件運(yùn)行只是開發(fā)者的***步。下一步是使代碼清晰、可重復(fù)使用、簡(jiǎn)潔。
在我職業(yè)生涯的早期,我曾經(jīng)開發(fā)了一項(xiàng)功能,交給一位高級(jí)開發(fā)人員審核。他看了一眼我草率的間距、錯(cuò)亂的代碼行和混亂的命名規(guī)范,說(shuō):“重寫!”
我編寫的代碼可以運(yùn)行,語(yǔ)法有效,但仍然是錯(cuò)的。優(yōu)秀的程序員并不滿足于讓代碼能運(yùn)行,他們希望開發(fā)出優(yōu)秀的軟件。
對(duì)于許多開發(fā)人員來(lái)說(shuō),這種追求品質(zhì)的感覺是最難掌握的。精心設(shè)計(jì)的代碼讓人賞心悅目,而丑陋的代碼讓人退避三舍。
***的開發(fā)人員學(xué)會(huì)將抽象的邏輯與藝術(shù)家的敏銳融合在一起。程序員也要學(xué)著信奉一點(diǎn),那就是代碼的美感,與算法以及代碼模式一樣重要。
最近,我和妻子與兒子一起制作糖餅干。每次把配料混合在一起,我們就會(huì)停下來(lái)查看面團(tuán),討論它的質(zhì)地和顏色。面團(tuán)是否光滑?所有配料是否已經(jīng)均勻地混合在一起?
我們搟面團(tuán)時(shí),兒子摸了摸面團(tuán)的表面,然后看媽媽演示如何讓材料鋪得均勻而且厚薄適中。
然而,最難的部分是切出形狀。像所有的孩子一樣,他本能地將模具推到鋪開的面團(tuán)的中間,而每次,我們都會(huì)解釋如何將模子挨個(gè)放在一起以便有***化地利用面團(tuán)。
精確稱量材料、如何在壓面團(tuán)時(shí)保持光滑度和延展性、怎樣放置模具減少面團(tuán)的浪費(fèi)——每一步都讓兒子知道什么是追求品質(zhì)。
如果只是按照步驟操作,孩子就很難理解遵循菜譜和追求優(yōu)秀的差別在哪里。
這些只能通過(guò)感受和體驗(yàn)來(lái)傳遞。每當(dāng)你讓孩子參與你認(rèn)為重要的事時(shí),就在向他們言傳身教如何做好一件事,包括編程。
不僅如此,你還告訴他們,這個(gè)世界充滿有趣的事等待我們?nèi)グl(fā)現(xiàn)。你向孩子展示了如何保持激情,無(wú)論做什么,都要尋找那種轉(zhuǎn)瞬即逝的品質(zhì)感。
這樣的好處是,即使他們將來(lái)不會(huì)成為程序員——實(shí)際上,大多數(shù)人不應(yīng)該也不會(huì)成為程序員——同樣的技能適用于幾乎任何職業(yè)、任何愛好和任何人的生活。
當(dāng)我們強(qiáng)迫孩子們學(xué)習(xí)編程時(shí),我們其實(shí)向孩子灌輸了這樣一種觀點(diǎn):如果某些技能不是公認(rèn)能賺到錢,就毫無(wú)價(jià)值。
成年人可以學(xué)習(xí)語(yǔ)法,只有孩子才能學(xué)會(huì)擁抱好奇心。
對(duì)于孩子是否該學(xué)編程,我想把人工智能大牛,斯坦福大學(xué)副教授吳恩達(dá)在美國(guó)問答網(wǎng)站Quora上的回答附在下面。
對(duì)了,他最近剛自我升級(jí),發(fā)布了史上最復(fù)雜的神經(jīng)網(wǎng)絡(luò)——一枚小公主。
斯坦福大學(xué)副教授吳恩達(dá)是人工智能和機(jī)器學(xué)習(xí)領(lǐng)域國(guó)際上最權(quán)威的學(xué)者之一
編程:正確的學(xué)習(xí)觀念
請(qǐng)教你的孩子編程。更重要的是,培養(yǎng)她不斷學(xué)習(xí)的能力。
在計(jì)算機(jī)科學(xué)領(lǐng)域,我們所有人都習(xí)慣于每隔5年就需要接受新的技術(shù)和思維模式(比如從互聯(lián)網(wǎng) >云 >移動(dòng)互聯(lián)網(wǎng)>人工智能/機(jī)器學(xué)習(xí)的變革),因?yàn)樾录夹g(shù)以這種速度被發(fā)明出來(lái),使得我們之前使用的技術(shù)變得過(guò)時(shí)。
所以,從事計(jì)算機(jī)科學(xué)的人習(xí)慣于不斷學(xué)習(xí)新事物。
但是,現(xiàn)在的新情況是,計(jì)算機(jī)幾乎影響了其他所有行業(yè)。不僅計(jì)算機(jī)行業(yè)每隔幾年就要發(fā)生變革,現(xiàn)在,各行各業(yè)的人都需要習(xí)慣變化。
這就是為什么不斷學(xué)習(xí)將是你傳授給女兒最重要的職業(yè)技能。
編程:讓未來(lái)更美好
我還認(rèn)為,(幾乎)每個(gè)人都應(yīng)該學(xué)會(huì)編程。很久以前,人們還在思考是否每個(gè)人都需要讀書認(rèn)字。那時(shí)候,少數(shù)有文化的僧侶可以給大眾誦讀經(jīng)文,大部分人都不需要讀書認(rèn)字。
或許,我們只需要少數(shù)人撰寫暢銷書籍,而其他人都不需要學(xué)習(xí)寫作?
結(jié)果我們發(fā)現(xiàn),隨著識(shí)字率的提高,人與人之間的溝通變得更好:不僅是少數(shù)人能撰寫暢銷書,我們也可以只為一個(gè)人寫電子郵件,這(種私人溝通)也有它的價(jià)值。
今天,我們處在這樣一個(gè)時(shí)代———少數(shù)能夠編程的人為普通大眾編寫大量代碼。但是,如果每個(gè)人都可以編程,也許街角一個(gè)夫妻店的老板可以寫幾行代碼來(lái)定制他們的LCD顯示器,發(fā)布本周的促銷活動(dòng)。
亦或,丈夫可以編寫一個(gè)簡(jiǎn)單的APP,唯一的受眾將是他的妻子,就像今天,(丈夫)發(fā)出的電子郵件,唯一的接收者是他的妻子一樣。
教育的普及改變了人與人之間的溝通?,F(xiàn)在,人機(jī)交流也變得同樣重要,在可預(yù)見未來(lái),編程能力將成為最深入的人機(jī)交流的基礎(chǔ)。
所以,我不同意那些認(rèn)為世界只需要幾百萬(wàn)名程序員的說(shuō)法;我想,幾乎每個(gè)人都應(yīng)該學(xué)習(xí)編程,就像幾乎每個(gè)人都應(yīng)該學(xué)習(xí)讀書寫字一樣。
作者:杰寶媽媽,海歸媽媽,有兩個(gè)呆萌的娃娃,十年科技媒體經(jīng)驗(yàn),在這里分享教育相關(guān)的新科技、理念和育兒干貨。