原文作者 Chris Granger 是一位網頁開發者,此文來自於他的個人部落格;以下以第一人稱編譯。
現在越來越多人鼓勵大眾學習 coding,並將 coding 視為這一世代的必備讀寫能力(literacy),不過此說會不會太過抬舉 coding 這能力了呢?
當我們將 coding 能力視為讀寫能力時,是否也意味著紙筆的時代已過?
事實上,coding 就像書寫一樣,是一種需要培養的能力,充其量不過是一種升級版的能力。
就像書寫一樣,我們需要先在腦中沉澱,才能開始動筆把自己的想法寫下來,寫程式也是一樣;基本上電腦比我們更會寫程式,也能儲存更多資訊。
所以說讀寫能力給予我們思考及抒發的能力,coding 則是給予我們掌控電腦的能力,不過這樣看起來似乎又太過簡化 coding 的難度;會寫程式意味著能精通的使用電腦語言,也就是能操控及指揮電腦替我們達成繁瑣的指令。
因此我們要培養的能力不只是 coding 機械式的書寫程式,而是能下指令給電腦的主控能力(modeling)。事實上,我們不需要一個超懂 Unicode 和 UI toolkit 的世代,我們需要的是衝滿想法、有思考能力的一代,能利用這些卓越的能力掌握科技脈動。
誠如寫作文一樣,我們的思考能力不會被紙張受限住;我們在寫程式時也不能受制於電腦。寫程式時不是單純要電腦複製一個 code 的範本,我們必須先做出一個優良的範本(model),好讓電腦學習後複製。
而為了要創造出一個全新的範本,我們只能先做假設的動作,而後試著將它具體化,也就是將不可行的概念因子一個一個移除掉,而這樣的一個過程(system 或 process)幫助我們在 modeling 時,能把模糊地帶給屏除掉。
所以寫一個程式就是將一個概念不斷不斷地拆解,留下最終電腦可以解讀的程式 。
當我們要寫出一個程式的 model 時,我們必須依現有的數據及資訊開始推演,我們不需要一開始就逼團隊想出一個從無到有的程式,而是利用現有的程式去做調整。
做出 model 的過程其實就是一個探索的動作,隨著摸索的進程知道程式缺了些什麼,作些微調以及細部的調整後,就可以達到很好的效果。
當我們拆解程式後,就是一一摸索的時候,我們知道那些程式可以保留,可以成就日後複雜的系統。我們從探索中學習,開始理解我們需要什麼,更加了解整體的情況。
這也是為何我們在電影《鋼鐵人》中,老是可以看到小勞勃道尼利用炫目的科技,虛擬的拆解他的鋼鐵人,分析每個配件。
現在的數位科技已經發展到很精密的階段了,幫助我們能夠模擬新程式的 model(就像東尼史塔克一樣),當我們將寫好的 model 存至電腦時,就可以開始指揮它幫我們做模擬的動作,並在電腦上作修改微調的動作。
現今已經有很多工具可以幫我們達到模擬的動作,從 Matlab 到 Quartz Composer,當然還有超級好用的 Excel,不過要能把這些工具用到極致,還是不免得升級一下自己 coding 的能力。
事實上,我們不需要一個超懂 Unicode 和 UI toolkit 的世代,我們需要的是衝滿想法、有思考能力的一代,能利用這些卓越的能力掌握科技脈動。
事實上,想要潛移默化的教導孩子 coding 的父母,可以遵照以下 4 個步驟:
● 闡述
請孩子們先將事情拆解後一一分析,直到重點出一個可以理解的概念或動作。
● 確認
詢問孩子如何將這個概念具體化,並應用在現實世界中。
● 調整
請孩子將概念中的缺陷一一挑出並剔除掉,此階段非常的重要,挑錯的同時父母必須謹記要順便顧及孩子的信心,讓他們知道並不是他們的概念不好,而是有些細節會導致成果與我們預期的不同。
● 探索
請孩子稍微模擬不同的結果帶來的改變。
總而言之,想要更進步的世界,不是想著要如何精進自我的科技能力,而是先培養自我的思考能力,才能為科技注入創新的能量!
流言終結者:到底一直玩這些玩具能不能變成神級工程師呢?
一直玩一直玩就會寫程式了!CodeMonkey 用遊戲教小孩 Coding
比哈佛畢業證書值錢的本領,學會這招大學沒畢業也吃得開~
(資料來源: Chris Granger ;圖片來源: I_am_Allan ,CC Licensed)