CODE, DESIGN, LIFE

轉 · 培養抽象思考能力

數學被視為科學之母,可以被廣泛的應用其它學科,要討論為何數學這麼一個純綷的學科具有什麼樣的特質,使其可以被使用於各個領域,其實一個最簡單的回答就是:「抽象」。

抽象這兩個字,究其字面意義要行解釋,本身就很「抽象」,我們舉個實際的例子:「1 + 1 = 2」就是抽象,您可以具體的在數字後面加上單位,像是蘋果、狗、人等具體的事物,就因為 1 + 1 = 2 是抽象,所以它可以解答無數的兩個個體相加的結果,像是「1個蘋果 + 1個蘋果 = 2 個蘋果」、「1個人 + 1個人 = 2個人」。

抽象之所以難以理解,在於人的學習過程本身就不是從抽象開始學習,而是從具體開始學習,打從人出生開始,就不斷的探索各種具體的事物,我們不是先學會動物類,再來學會動物類下還有狗、貓這樣的動物,我們是先接觸過狗、貓這些動物,歸納其行為與特性,然後再將這些具體物歸納為動物。

具體的事物容易學習,因為它們往往與生活經驗習習相關,然而具體的事物太多了,我們並無法記憶過多的具體事物,甚至加以應用,如果我們能從這些具體事物中歸納出相同的特質並予以分類,這個過程就是一個抽象化的過程。無論是經驗或是知識,我們能抽取出來的抽象成分越高,其能應用的範圍就越廣,然而通常也就越難以學習,數學之所以常被視為高深的學科,其原因就在於其高度的抽象化,越高度抽象化的知識雖然越難以學習,但其影響的學科、領域、範圍卻是越高。

將知識的抽象過程引用到學習將會有很大的助益,以資訊領域的學習為例,演算法、資料結構是門抽象的學科,也因而您可以利用各種語言來實作出相關的內容,或應用於各種場合,然而冒然切入抽象領域,往往遭受極大的挫折,大部份人遭受挫折的原因,在於前面曾提過的人類原始本能:「人的學習過程本身就不是從抽象開始學習,而是從具體開始學習。」人類當中只有極少比例的人可以從抽象中直接學習,我們所要作的,是從學習過程與經驗不斷嘗試抽取抽象的成分。

常有學有專精的人告誡新的學習者,要作好紮根的功夫、瞭解某某知識的精神,其意義就在於告訴學習者,要抽取出目前學習目標中抽象的成分,白話一些的 說法就是:「學會xxx之後,學什麼東西都快!」這些即是在告訴學習者,必須培養出抽象思考的能力、擷取精髓的能動,所謂「博一通百」就是這樣的道理。

在面對未來不斷暴增的知識,學習者往往感到徬惶,新的知識不斷增加,對於未來的學習者在學習上的負擔也就越形沉重,也因此抽象思考的能力更形重要,若能擷取知識的抽象精華部份,並應用於新的學習上,則在相關領域的學習上將會十分的快速,否則的話將花費許多精力與時間在重複元素的學習上,最後終將被知識的洪流所淹沒。

所以如何從具體的學習例子中培養抽象思考能力,如何從具體實作中抽取出知識的共同部份,這應該是學習者的一個重要課題,以學習數學為例,您從 1 個蘋果 + 1 個蘋果 = 2 個蘋果這樣無數個例子中學到「1 + 1 = 2」,以程式語言為例,看了基本的流程語法,所學習到的是像是 if…for…while 這樣的關鍵字呢?還是瞭解了程式語言結構的基本元素該具有哪些呢?一個經驗法則是:「在學習的過程中不斷思索,在目前學習的目標與過程中,抽象的元素有哪些?具體的元素有哪些?抽象的部份必須徹底吸收,具體的部份則當作經驗,而累積的經驗在將來歸類整理之後,最終也將化為抽象。」

Standard

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据