大人程式設計看薪水,孩子程式設計看興趣。有很多科技界的偉人和名人從小開始學習程式設計,如喬布斯11歲開始程式設計,創辦了蘋果公司,成為一代傳奇領袖;比爾·蓋茨13歲開始程式設計,創辦了微軟,31歲成為世界首富;扎克伯格10歲開始程式設計,高中開發的程式被50萬美元收購,創辦了Facebook,市值曾經突破4000億美元;埃隆·馬斯克10歲開始程式設計,12歲設計名為Blastar的遊戲,2004年創立特斯拉公司。
儘管我不認為每個人都需要精通程式設計,不過我總鼓勵身邊的朋友在有空的時候學習程式設計,學習一些基本的邏輯分析技巧和程式排錯思維。學習程式設計並非是爲了成為程式設計師,而是培養人冷靜的思考方式和嚴謹的邏輯化思維。要有冷靜的思考方式,程式行為對與錯的最終判定者是計算機,無論你怎麼信誓旦旦地說自己沒問題,錯了就是錯了,不為人的主觀意念所左右;要有嚴謹的邏輯化思維,程式裡處處都是因果環環相扣的,因而需要思考各種因和所導致的各種果,需要全面思考、清晰分析。
學習程式設計對孩子的幫助很大,可以歸納為以下10點:
(1)強化孩子的邏輯思維能力。
編寫程式最重要的是如何把大問題不斷分割成小問題。孩子要思考如何把程式碼合理地安排在整個程式中,讓程式流暢地處理輸入、演算、輸出,這個過程對孩子分析事物的邏輯性有極大的幫助。
(2)培養孩子的專注力和細心度。
排錯是每一個編寫程式的人必經之事,無論是大人還是小孩都不例外。有時候只是少打了一個字母或在某一行末尾少了一個分號,就會造成程式大亂,更別說邏輯分析問題上忽略的某種狀況和陷阱。所以,在編寫程式的過程中,排錯是無法敷衍了事的,這個過程能有效改正孩子馬虎行事的毛病,避免當個「差不多」先生。
(3)提高孩子的耐心。
當父母的一定遇到過這種情況,帶孩子去吃飯,孩子怎麼也坐不住,總是跑來跑去,到處吵鬧玩耍。這時,有的人會拿出手機當作遊戲機,孩子的注意力瞬間就會被拉回來,開始安靜地坐在位置上玩耍。以遊戲專案作為課程就是運用這種特性,讓孩子在遊戲中學習,寓教於樂。孩子不止可以玩遊戲,更會懂得遊戲是怎麼設計出來的。
(4)增加孩子的抽象思考能力。
其實學習程式設計就像學習外語一樣。如果說學外語是爲了跟外國人溝通,學習程式就是爲了跟計算機溝通。更有趣的是,你碰到外國人不會說外語還可以用手比劃,跟電腦可不行。這意味著孩子在學習的過程中需要一種化具體為抽象的能力,讓程式能夠按照孩子想象的方式執行,這是集思廣益的過程。讓孩子發揮無限想象並動手實踐,讓不懂得思考的電腦也能瞭解與表達抽象的事物。
(5)提升孩子整理資訊、融會貫通的能力。
程式是一堆電腦指令的組合,好比上小學時我們查字典學漢字、學成語,之後學習如何利用習得的漢字、成語組成句子,進而撰寫文章一樣。程式中的基本指令就像是漢字,寫成可重複利用的方法或物件就像是成語,最終要完成專案,就必須融會貫通、學以致用,確保程式在執行中不會出現不可預期的錯誤。
(6)提升孩子國際性的溝通能力和競爭力。
顯而易見,現在哪一個行業可以不用電腦?如同先前提過的,程式語言已然成為一種重要的溝通工具,不但可以跟電腦溝通,還可以跟所有運用電腦的人溝通。孩子在幼時接觸的環境往往跟以後的發展有極大的關聯性,如果不想跟世界脫軌,那麼最好儘早讓他們瞭解程式或程式設計是怎麼一回事,這將會是他們面對國際競爭的有力武器。
(7)讓孩子學會團隊合作和共同學習。
在適當的教學課程設計下,學寫程式就像玩遊戲闖關一樣,同學彼此討論破關攻略。你不會,我教你;我卡關,你幫忙;我設計,你闖關。同時,在互動中增進情誼,學習如何利用團隊的力量解決問題。比起老師在講臺上單方面的講課,同學之間的研究將會讓學習效率大大提高。
(8)訓練孩子的空間思考能力。
在程式設計中控制遊戲人物的過程是訓練空間思考能力的一個很棒的方式。彷彿孩子自己在高低起伏中身陷迷宮,在闖關角色中置身於程式設計世界,在遊戲中學習,明白方向感和立體的空間架構。
(9)增進孩子解決問題的能力。
面對一道道關卡的挑戰,小孩會不停地利用手邊學到的資源、程式試著達成破關的目的,從而不斷思考。一旦養成這樣的習慣,在碰到生活中或其他課業問題時,自然也會試著自己解決,而不是一句話交給父母去處理。父母只要給予適當的工具和提示,讓孩子自己動手、動腦去完成。
(10)Learn to code, code to learn。
學習程式設計,訓練程式設計的思考方式(Computational Thinking),如同學習閱讀一樣,在知識爆炸的時代,這是一種基本的能力。從小我們學習怎麼閱讀,並用閱讀學習更多知識;而從小學習怎麼寫程式、控制電腦,瞭解的是一種新的學習方式,並且在學習寫程式的過程中,刺激孩子的學習積極性。父母再也不用逼著孩子學習數學,因為他要寫程序控制按鈕、人物、得分、方向的同時必然需要用到許多數學的技巧,讓孩子在寫程式的同時自主學習。另外,還可以提高孩子的英文能力,寫程式讓接觸英文成為自然而然的事情。其他的科目(如音樂、藝術、文學等)一樣可以運用在寫程式的過程中,也就是我們所說的code to learn。