孩子必須從現在開始學電腦程式的11個理由(1/3)

學習電腦程式就是學和天底下最笨的人溝通的活動,那個最笨的還稱不上人,就叫電腦。

文│徐宏義、羅曼如

未來世界的人將會分成兩種人:一種是會寫程式的人,另一種是不會寫程式的人。

會寫程式的人可以創造、可以寫出改變人類社會的軟體;不會寫程式的人,如果學會使用會寫的人做的軟體,則可以充當輔助的角色,否則連忙都幫不上,只能在觀眾席看熱鬧。

在未來的舞台上,孩子能扮演什麼角色,就看父母的智慧了。

 

「家長不能等,也不要等」

Quora是一個網上問問題的網站,有一個正在大學電腦科學系就讀的男生在Quora上提出一個問題,他說他上了電腦系之後,老是覺得自己程度差人一截,一直想要趕上別人,但是覺得非常辛苦。他說他和一些同學聊了一下,才發現有些同學從小就接觸電腦程式設計,功力已經很深厚,他懷疑是不是永遠趕不上人家。

他於是上Quora,寫下他的困惑,想聽聽別人的意見:「電腦語言程式:我要怎麼做,才不會有一種不安全感,覺得自己怎麼都比不上那些從小就開始寫電腦程式的人?」

他說,「我是一個大一新生,現在開始學習網站的開發。我始終對那些從初中或高中就開始學寫程式的人,有一種妒忌心,他們年紀和我差不多,可是可能學電腦已經超過所謂的『一萬個小時』了。」

這是別人活生生的例子,與其像他一樣長大後再來怨嘆,如果小孩還在國小、國中或者高中就讀,為什麼不讓他們現在開始就學寫電腦程式?

最近有位媽媽來找我們,詢問她的女兒現在是小學六年級,學程式會不會起步太晚?我們告訴她,還是小學生,學程式怎麼會太晚?

也在不久之前,有一位家長來問他的小孩才五歲,學程式設計會不會太早?

我們告訴他,美國麻省理工學院的媒體實驗室(Media Lab)發明了一個小學生學寫程式的工具,叫做Scratch。她說她知道,我們說那你知不知道Scratch還有一個版本叫做ScratchJr,她說沒聽過。我們告訴他ScratchJr是設計給五、六歲的小朋友學程式設計的工具,它和Scratch基本的功能相同,但介面更簡單,而且不需要備有閱讀的能力要求,學齡前的小朋友,就算不識字,也可以用ScratchJr來學程式,有這樣的好工具,為什麼不學?

Scratch的發明人是MIT的教授Mitch Resnick,他的母親已經九十幾歲,當然她沒有學過程式設計,現在也開始用Scratch來學程式。

結論是,我們說五歲的小孩開始學不嫌早,國中、高中,甚至大學開始學也不嫌晚,並不是鄉愿,也不是見風轉舵,而是真心覺得,學程式不會嫌早,也不嫌晚。愈早學的人,將來的發展會比別人實力更強、更深入。

但是晚一點學的人,有可能永遠趕不上別人,但是與其妄自菲薄,自哀自嘆,不如加倍努力,給自己一些掌聲,讓自己學得更帶勁,比和別人比較更有意義。

電腦程式設計,是一項好處非常多的學習機會。以下我列舉了十一個你的小孩一定要趕快開始學電腦程式的理由,希望能改變許多父母的想法,讓小孩早日擁有電腦程式設計的技能,創造他們不一樣的明天。

 

一、學電腦程式可以讓你變聰明,智商變高

變聰明和智商變高是不同的兩回事,學電腦程式可以讓小孩不但變聰明,而且智商變高。

在和電腦透過程式語言溝通的過程中,你會碰到無數的困難,因此「解決問題」會是你經常性的工作,不停絞盡腦汁的過程中,有三件事會發生:

1. 你的能力會愈來愈強(因為你有許多練習解決問題的機會);

2.你的困難會愈來愈大(因為你的能力愈來愈強,解決問題的胃口也愈來愈大);

3.你會愈來愈聰明,因此有能力去解決更大的問題。

同時,你也會在解決問題的過程中,得到許多滿足感和成就感。

學電腦程式的過程牽涉到不停的犯錯,失敗,在除錯、解決路障的過程中,你的Critical Thinking(思考力)、Creativity(創造力)、Algorithmic Ability(演算力)都會大幅精進。

研究結果顯示,學過電腦程式的學生在不同的認知能力測驗(Cognitive Ability Tests)分數上,比未學過電腦程式的學生高出百分之十六。研究的論點是,學習電腦程式在認知能力上的幫助超過了電腦程式本身的知識,學生得到的益處是高智力測驗成就,有助於學科學習及生活中其他層面。

德州大學的腦神經專家研究結論:從事新奇具挑戰性的腦力活動,比如學習一種新的語言或一種新的電腦程式語言,可以活化任何人(不只是小孩子)的腦細胞,讓學習者不但保住已有的腦細胞(不用的腦細胞會自動死亡),而且能增生新的腦細胞。腦細胞越多,中間的聯繫網路愈綿密,愈暢通無阻,這個人就愈聰明。

學電腦程式會讓人變聰明,智商變高,這是殆無疑義、不必爭論的事。做父母的人,除了要讓小孩子趕快開始學之外,也應該鼓起勇氣,自己也來學。你會發現,這會是一段美妙的智力探索的愉快經驗,同時也可以和小孩有更好的互動機會。

 

二、學電腦程式可以讓你成為一個更好的溝通者

我們看到有一些政治人物或領導人,常常執行一些政策,原本有好的立意,符合公眾利益的出發點,結果卻常常弄得大家怨聲載道,一片美意變成一意孤行,這是哪裏出了問題?

通常是溝通出了問題。溝通不好,讓人感受不到好意、善意,剩下的是揮不去的怨氣。為什麼會這樣?至少我們知道學校根本沒有教怎麼溝通,學生接受了十六年或更久的學校教育,出了校門不知道怎麼溝通,一般人如此,社會的領導階層也不例外。

學習電腦程式就是學和天底下最笨的人溝通的活動,那個最笨的還稱不上人,就叫電腦。

電腦不是能從事很複雜的計算嗎?不說它聰明絕頂就算了,怎麼能說它笨呢?對,電腦能做很複雜、很困難的運作,那是因為指揮電腦的人聰明,電腦本身可是一點都不聰明。

什麼「意在言外」,什麼「弦外之音」,什麼 read between the lines(讀出字裏行間的含意),什麼暗示、明示,對它來說都是毫無意義,白忙一場。它需要非常明確,百分之百不含糊(Unambiguous)的指令,一個命令、一個動作去告訴它。只要指揮稍有含糊,它就聽不懂,它就直接罷工,動也不動。要不然就是做出令人不解的舉動。

一旦能和電腦以它聽得懂的程式語言溝通,那麼和聰明的人類溝通就能暢行無阻。所以說學習電腦程式是絕佳的溝通訓練,是學習成為一個好的溝通者的第一步。

 

三、由Learn to Code 到 Code to Learn

學習電腦程式(Learn to Code)只是第一步,接著是使用電腦程式來學習其他的學科(Code to Learn)。

學習電腦程式的過程裏,學習者會學到相關的事物。首先,他們學到包括變數(variables)、迴路、條件等數學及計算式的思考方式(Mathematical & Computational Tinking)。

他們也學到怎麼把複雜的問題切割成容易解決的一小塊一小塊的小任務(tasks),怎麼解決問題,這麼一步步的除錯(debug),怎麼設計projects,怎麼重新整理思路,怎麼處理互動情節,怎麼說故事,怎麼和隊友溝通;這些都完完全全超越了一般人以為電腦程式就是一堆冰冷的程式語法和規則堆砌起來的指令罷了。

舉MIT發展出來的Scratch為例,小孩子學習Scratch的第一個project常常是設計生日卡。上Scratch的社群看看,那裏有全球的兒童上傳、超過好幾百萬項的作品,裏面各形各色的projects橫跨包括美術、音樂、數學、語言、社會科學、歷史、地理、科學各種不同的領域。

有人設計出聖誕老人(Santa)和聖誕老人的麋鹿(Reindeer),每一頭麋鹿都拿著不同的樂器,都在吹奏著聖誕歌曲的一部分。這不就是分辨各種不同樂器的聲音最好的學習法嗎?這,就是Code to Learn (由學習電腦程式來學習其他科目或事物)最好的例子。

摘自 徐宏義、羅曼如 《教育大未來 1:軟體打造科技大未來》/商周出版

 

Photo:San José Library, CC Licensed.

數位編輯:曾琳之

本站提供網路意見交流,以上文章屬作者個人意見,不代表未來親子學習平台立場