不用學程式也能訓練邏輯思維的方法

文章推薦指數: 80 %
投票人數:10人

如果應用到生活邏輯,我們可能無法實驗,因此這個框架就變成是觀察、推論、驗證結果。

透過這樣的流程可以訓練我們生活邏輯的思考力。

前面提到你如何判斷 ... Davina不用學程式也能訓練邏輯思維的方法May16,2018最近幾年程式設計真是個越來越熱門的行業,除了業界的需求越來越大之外,學界也大力推廣學程式的好處 — 可以訓練邏輯思維。

所以有些國家就打算以訓練學生邏輯思維為由,要求國中甚至國小的小孩,必須開始學習程式設計。

Scratch就是一種常被用來做程式基礎教學的程式語言。

老實說我不是很認同。

我想請讀者做一件事情,閉上眼睛想想"軟體工程師"在你心中的樣子。

雖然刻板印象不是件好事,不過大部份的工程師都給人不善言詞、不懂人情世故的印像。

對我來說,程式設計的教育就像是在陪養木頭人一樣。

我不是反對學程式,畢竟我自己就是一個熱愛寫程式的工程師。

我只是覺得,對於有興趣的孩子提早學習是可以的,但不需要強迫所有人學習,因為我認為程式的邏輯跟生活上的邏輯(以下簡稱"生活邏輯")是不太一樣的東西,而且每個人都應該要會的是生活邏輯而非程式。

(延伸閱讀:[曹家榮]別搞錯方向!程式設計不是未來教育的核心)程式可以訓練邏輯,有了邏輯不就能用在生活上了嗎?有個理論叫「學習遷移(Transferoflearning)」意思是說我有沒有辦法把學習到的東西套用在不同的情境狀態下。

例如我被燒開的水燙傷,是否就知道火爐的火是燙的(類似舉一反三)。

所以即使是程式邏輯很好的工程師也有可能生活邏輯不好,這可能是他沒能進行學習遷移造成的。

為什麼程式邏輯遷移到生活邏輯會有困難?你們知道嗎?程式的邏輯是"看"得見的,因為程式碼就寫在那裡,而且可以利用工具去看執行的狀況和結果。

然而生活的邏輯卻是看不見的。

當你已經習慣這種看得見的邏輯時,有辦法去思考那些看不見的邏輯嗎?況且程式邏輯偏向數學,一加一只會等於二,而生活的邏輯可能連幾加幾都判斷不出來了,更別提能夠推論得出二的結果。

另一方面,程式的世界就只在小小的螢幕當中,生活的邏輯卻是大到無邊無際,這些差異都是造成程式邏輯無法遷移到生活的原因。

如果我們的目標是提升全民的生活邏輯(對周遭人事物的邏輯),為什麼不用比較接近生活的方法訓練,而要強迫所有人用學程式的方式訓練呢?如果所有工程師的生活邏輯都很好,還會有刻板印象存在嗎?可惜我到目前為止沒看到多少人推廣非程式的邏輯訓練法,所以決定試著自己整理、歸納出一些不用學程式也能訓練邏輯思維的方法。

玩遊戲訓練邏輯推理如果你是個自認邏輯思維不太好的新手,不妨從遊戲開始你的邏輯訓練。

有一些遊戲是要玩家進行邏輯推理才能夠過關的,例如我很喜歡的桌遊「阿瓦隆」就是這樣的遊戲,玩家必須找到潛藏在身邊的同伴與敵人,才有機會獲得勝利。

透過遊戲訓練是比較好入門的方式,但可能不適合作為唯一的方式。

畢竟遊戲原本就有它的規則,也就是個受限的環境,如果是以提升生活邏輯為目標,這當然是不太足夠的。

學校國文課一直被刪,但其實寫作文有助於培養邏輯思維我不知道有多少工程師跟我一樣連話都講不好。

說話之前如果能夠先組織架構好,聽的人會比較能夠快速理解。

不過講話有時要考驗即時的反應能力,而且無法回顧、反覆檢示修正,因此寫文章才是能夠慢慢整理思緒,有條理描述的一種訓練方式。

就像寫程式一樣,把原本看不見的邏輯變成看得見的文字,才比較好檢示與掌握。

在我喜歡的部落格《大人學》中,Joe也認為寫文章是培養邏輯思維的一種好方法。

不過當然,文章和口語還是有落差的。

即使到了現在,我身為一個軟體工程師也寫過不少文章,還是會被外子笑"不會講話"。

我想主要原因是我想的慢,或是根本沒想就講出去了,不過這就跟邏輯沒有什麼關係。

不會寫文章,那就看別人的文章吧沒有人一開始就能做好所有的事情,所以如果寫不好文章也不必覺得氣餒。

小時候寫作文,老師都會教我們「起、承、轉、合」,這就是一種邏輯。

寫文章的第一步是擬定大綱,因此要去看一篇文章的邏輯,就是把它的大綱摘要出來,看看別人的邏輯是什麼,想想如果是自己會怎麼寫。

以本篇文章為例,第一段先簡單帶出邏輯思維受到重視的程度、一般認為要學程式才能訓練邏輯思維;第二至四段表示反對的看法,並且說明我為什麼反對。

我的說明是先從對工程師的刻板印象開始,告訴大家程式邏輯和生活邏輯是不一樣的;如果讀者以為程式好的人生活邏輯就好,那是錯誤的觀念,因為如果事實如此,刻板印象可能就不會成立,並且點出程式與生活邏輯的差異。

接著我才開始本篇的重點,列舉我想到的訓練方式,並且每個項目都有各自的說明。

最後當然就是本篇的結尾。

我們寫文章的目的是要訓練邏輯思考,所以重點是要有邏輯地表達自己的想法,而不是運用各種文學修詞。

不瞞各位,國文是我求學階段最差的科目,所以為了逃避這些基礎學科,才跑去念技職學校。

雖然沒有能力,但是我喜歡寫作,希望自己能寫好文章,所以從2002年開始斷斷續續練習寫一些東西,才會有今天你看到的各種長篇大論的文章。

只要我們實際去做,就能夠慢慢進步,就怕你不做,永遠沒有開始的一天。

請用正確的語言描述我在辦公室的隔壁坐了一位前端設計師,因為從前念的是美容,才剛接觸程式沒多久,所以邏輯不是很好。

不過她很有心想要學程式,因此有需要的時候,就會請教我們程式的問題。

我跟其它同事都抱持著給她魚吃不如教她捕魚的心態,因此不會立刻告訴她答案,而是希望盡量用引導的方式,請她自己把答案說出來。

這個時候我注意到,我和同事都會對她說:「請用正確的語言描述」。

程式裡有種東西叫"變數",類似數學裡的x和y,變數這種東西是程式設計師自己定義的,也就是說每個變數都有它的意義、作用存在。

同樣的,每一行程式碼都有一個要被執行的"理由",如果沒有,那它就不應該存在。

所以我們就會請她試著描述這些內容。

為什麼要強調"正確"呢,因為如果不正確的話,邏輯可能是不通的。

有一次我在看同事的程式碼,影片播放完成之後,他做一個動作寫"重播",我說播完了為什麼要重播呢?結果搞了半天才知道他是顯示重播按鈕,而不是自動重播(他自己都忘記了)。

這就是語意不正確的問題,如果這件事是發生在文件上,以後的設計師都以為影片播放完真的要重播才行。

也就是說錯誤的語言可能會造成邏輯卡關,而且也很容易造成別人的誤解。

想要檢視自己的語意邏輯是否正確,有幾種簡單的方式。

如果你有打算寫文章,在撰寫完成之後,請放置幾天甚至幾個月再回頭來看,這樣比較能找出問題。

我發現有些人的狀況是這樣,想的跟說的不一樣,或是聽到的跟理解的會不一樣。

所以在與人互動的過程中,你可以把對方的話用自己的理解再重新描述給對方聽,這樣除了可以確認你的理解是否正確,也能夠驗證你的邏輯是否能讓對方理解。

如果對方跟你很熟,你也可以請對方用他的理解來描述你說的話,這樣才會知道自己原本說的話有沒有瑕疵。

不過練習的對象最好選擇邏輯好的人,不然可能會搞不清楚該如何調整。

尋找適合的框架前面提到寫文章有起承轉合,這就是一種框架。

框架可以引導我們思考的方向,進行有邏輯性,甚至系統性的思考。

例如「九宮格曼陀羅思考法」就是一種幫助我們思考的框架,如果真的不知道該如何進行邏輯思考的人,從框架著手也是一個好辦法。

用科學方法訓練你的生活邏輯STEM(科學、技術、工程、數學)也是教育界很熱門的學習主題,近年來還加上了藝術的項目,變成STEAM,除了強調創意之外,也希望未來的科技能夠融合更多"人"的溫度。

既然預期未來人工智慧可以做許多原本人類做的事,那麼這些與人相關的事物才是我們人類可以發揮價值的地方。

我認為跟生活邏輯比較有關的還是在科學上面。

我們都學過最基礎的科學方法是觀察、假設、實驗、結論,這是科學研究的框架,當然也有它自己的科學邏輯在。

如果應用到生活邏輯,我們可能無法實驗,因此這個框架就變成是觀察、推論、驗證結果。

透過這樣的流程可以訓練我們生活邏輯的思考力。

前面提到你如何判斷目前的狀況是一,靠的就是你的觀察力和判斷力,而你要預測生活上的一加一會等於二,這就是一種邏輯推論,最後驗證看你的推論是否正確。

這樣子的一個循環就會成為你的經驗,幫助你在下一次做出更好的選擇。

具備高度生活邏輯的人因為可以做出有效的推論,所以可以從較少的經歷產生更多的經驗,很快就能從生活中學到教訓,因為他們很清楚整件事情的因果關係是什麼。

除此之外,也比較容易從書籍或別人的經驗中學習到教訓,這些東西會變成類似數學般的公式存在他們的腦海裡,如果有辦法提取出來將它系統化,就會變成所謂的專家系統。

進行批判性思考的訓練邏輯思考可以說是批判性思考的基礎,所以在做批判性思考訓練時,也會同時訓練邏輯思維。

我念研究所時接觸到的大部份都是透過科學探究的方法來訓練,老師會針對一些議題提出問題,再請同學搜集資料、思考過後回答問題。

這其實也是一種框架,只是針對特定主題,所以每個問題項目可以更貼近議題的核心。

設計框架是有難度的,不是每個人都有辦法做到,所以這種方式通常必須要上課才有辦法達成。

持續多看、多想每個人的生活情境不一樣,實在很難一一列舉,只能告訴大家持續多看、多想就對了。

有次我的同事天真地問我說,能不能把我的iPad也設定他的手指解鎖?因為工作需要,他常常跟我借私人的iPad來測式,我猜他每借一次,這個念頭就在他腦海裡浮現一次,直到忍不住了才向我詢問。

問題是,稍微按照正常的邏輯想一下就知道這是不可能的事情,怎麼會問出口呢?很明顯就是他根本沒有想。

所以你說工程師的生活邏輯一定好嗎?這種事不用工程師也能知道答案的吧!生活中大大小小的事情都可以運用邏輯思考,包括你的個人決策。

如果你的行為符合你的目標,那麼達成目標的可能性才會提升,而評估的方式就可以運用邏輯思考。

我有個朋友想存錢和女友結婚,女方也同意了,卻還是要求假日常常要出門住宿遊玩,害男方存不到錢只好說分手。

當然會走到分手可能是溝通不良造成的,我們不是當事人無法評論誰對誰錯,但這件事就是因為目標與行動不符合邏輯所導致的失敗。

有位工程師單相思一位心儀的女性,以為送花送禮當個工具人就能夠獲得對方的青睞,卻遲遲沒有開花結果。

他忽略了一個基本邏輯,你會對來家裡修繕的水電工,甚至是僕人產生感情嗎?當然是不會!除非你本來就喜歡對方。

所以沒有結果也是理所當然的。

如果你想要成為對方生命中的男主角,那就要想想自己是否有做出身為一個男主角該做的事?如果沒有,當不成男主角也是很正常的,這才是符合邏輯的結果,不要被YY小說誤導了。

如果你問我生活邏輯好的人程式邏輯一定好嗎?我的答案是否定的,因為你騎機車會甩尾不代表你會用微積分算甩尾,頂多用來評估你是否有潛力。

生活邏輯不好的工程師也不必覺得氣餒,畢竟你們的邏輯其實是好的,只是還轉不過來;跟邏輯不好的人相比,只差臨門一角而已。

邏輯思維的訓練只要肯做就一定會進步,而且不會因為疏於練習就退步,算是投資報酬率很好的學習項目。

以上是我以自己的經驗來提供建議,希望本篇文章對於不想學程式但想培養邏輯思維的人有所幫助。

延伸閱讀最棒的程式碼,不是程式碼我為什麼鼓勵工程師寫blog|In91邏輯思考自我成長批判性思考是什麼?為什麼它很重要? 溝通沒你想的那麼簡單!



請為這篇文章評分?