程式設計師需要了解的邏輯學思想

P.yh發表於2019-05-31

導言

簡單的邏輯學 是一本連中學生都能夠讀懂的書,但是這本書的最終目的不是介紹邏輯這門學科,而是幫助你在工作生活中用邏輯的基本思想去思考,去學習,這樣更有助於我們發現事物的本質和真相,這篇文章算是一個讀書總結吧,我會把一些書中我覺得比較重要的觀點概括性地講出來,也會寫一些自己的思考總結,希望對你有幫助


什麼是邏輯

我們平時說或者經常聽到別人這樣說 “你說的話怎麼沒有一點邏輯,我聽的不是很懂” 或者是 “你說的內容邏輯性很強,聽完之後很有共鳴。”,這裡的邏輯可以理解為有條理,清晰等等。這也就說明邏輯是一個褒義詞,它是符合大部分人價值觀的東西。這麼說可能我們還是不太清楚什麼是邏輯,書中指出邏輯包含兩個部分,“前提” 和 “結論”,邏輯推理就是用一個或者多個正確的前提去論證得出結論的過程,正確的邏輯推理可以得出事物的真相,而錯誤的邏輯推理則會得出錯誤的結論,或是讓自己更加的困惑不解。由此可見,邏輯的最終目的就是尋找事情的真相,尋找事物的本質。這裡我們重點是要分清楚哪些是正確的觀點,哪些是錯誤的觀點,因為正確的觀點是得出正確的結論的必要前提,注意這裡是必要條件,不是充分條件,關於充分條件和必要條件,這裡簡單解釋下,必要條件: A && B && C && .... -> T充分條件:A || B || C ... -> T,這裡也就是說,正確觀點還不足以推出正確的結論,必須要加上其他的條件,比如正確的推導過程等等。


基本原理

像原文中說的那樣,邏輯學中的原理性的東西是不需要去論證的,也是不能被證明的,它是不證自明的,它們反應的是絕對基礎的事實,它們也是人類意識行動的首要基礎,因此深刻理解這些不變的東西對於我們應用邏輯學非常的重要。這裡講幾個我覺得比較重要的,首先是矛盾律,它指的是同一時刻,某個事物不可能在同一方面既是這樣,又不是這樣。這個很好理解,中學的時候我們通常使用 “反證法” 去證明一些數學上的題目,這個過程就是先假設一個東西是對的,但是最後在其正確的前提下推出了它錯誤的結論,使其自相矛盾,從而證明它不是正確的。

另外還有一個值得注意的原理,或者說是思想就是我們需要找到問題的根本原因,而不是潛在原因,比如 A -> B -> C,這裡事件 A 導致了事件 B,事件 B 導致了最後的結果事件 C,當我們看到事件 C 的時候,我們往回尋找原因,首先找到事件 B,這時如果我們不繼續往下探究問題的根源,滿足於當下,那麼其實我們並沒有找到最核心的,最根本的原因,也就是這裡的事件 A,因此問題還是沒有得到很好的解決。在當今這個快節奏的社會,大多數人追求的都是一些快速的東西,在這樣的大環境下,有點耐心,不急躁,努力去思考問題的本源,相信你會看到大多數人看不到的東西,從而能到達大多數人到達不了的高度。

第三個要講的是關於事物的定義,邏輯上定義術語包含兩步:

  1. 將要定義的術語放入最相近的類別中
  2. 確定其與同類中其他事物的不同特性

在我的理解中,這也是瞭解一個事物或者事情的步驟,舉個例子,我們學習 Java,我們首先要把 Java 這個術語放到一個類別中,這裡有很多的選擇,比如計算機知識,計算機語言,計算機靜態語言,很顯然,這裡我們選擇計算機靜態語言最好不過,因為它更相近,這樣更有助於我們對知識的歸納,方便我們更加快速地定位到知識,在計算機靜態語言這個類別中,除了 Java,還有 C++,C,... 我們必須瞭解 Java 和其他同一類別下的其他語言的不同點,才能夠更好的去了解 Java 語言的一些的設計理念和設計目的。你有沒有發現我們嚴格按這兩個步驟走下來,我們更能瞭解事物的本質,沒錯,就是這樣,把這樣的方法帶到我們的程式設計學習當中,相信我們能夠學習得更加透徹,知其然,也知其所以然,而不是僅僅停留在表面,停留在那些巨集觀的概念上。

最後要講的是直言命題,這裡作者給了兩個陳述句,“收音機在汽車後座上” 和 “收音機可能在汽車後座上”,這裡的第一句話就是直言命題,直接說出事物的真相,我們可以馬上根據這句話得出相應的結論,但是第二句話就不行,想要得出結論我們還需要進一步的行動或者推論。這裡我並不想說直言命題有多好,不直言命題就不對,我是想說我們說話或者平時交談的時候應該注意自己或者別人的表達,明白什麼東西是事實,是真相,是客觀存在的東西,什麼東西僅僅代表的是個人的主觀評價與猜測,避免無意間的話語造成歧義,妨礙自己或者別人對客觀事物的理解,這個在高效溝通中是很重要的。


邏輯推理

我們上面講過邏輯學就是尋找事物真相的學科,說的更直白些就是根據前提條件推導結論的過程,最後我們能不能得出正確的結論其實是基於前提條件的正確性,和推導過程的正確性,那在推導之前呢,我們首先得判斷這裡的前提條件是不是正確的,而且必須保證這裡的前提和我們要推導的結論是相關的,是聯絡緊密的,如果我們基於錯誤的或者不相關的前提條件去推理的話,顯然結論會是錯誤的,就算是正確,也只是恰巧正確,不能從邏輯層面上證明其正確。

首先要講的是特稱全稱這兩個概念,像是“一般”,“有些”,“大多數” 都是屬於特稱的範疇,“所有”,“一切” 以及 “全部” 這些帶有絕對性質的詞表示的是全稱,我們要清楚知道一句話,或者是說的一件事情當中,描述者說的是全稱還是特稱,因為推理過程中,我們可以由全稱的命題,得出特稱的結論,但是反過來就不行,比如 “所有的狗都是四條腿可以推出沙皮狗是四條腿”,但是反過來則不行,這個很好理解,但是我們需要把這些知道的東西,理論性的東西運用在平時我們的思考中,往往並不簡單,不信可以試試,你會發現自己很多時候說的話都是不符合邏輯的。

邏輯推理中還有一個比較重要的點就是比較,我們之所以能夠分辨事物的不同,靠的就是比較,也正是因為這些比較,才有了人類眾橫交錯的觀念。比較兩個事物的時候,特別是那種龐大的事物,我們判斷兩個事物是否相似不能僅僅根據相似點的多少來判斷,因為起決定性作用的是這些相似的地方的重要性,這些個相似的地方是不是這個事物的本質,如果這個相似的地方揭露了兩個事物的本質,它就是重要的,因為它是事物本身的特性,在這種情況下,我們可以說這兩個事物是相似的。

邏輯推理有兩種論證方式,演繹論證歸納論證,演繹論證是從一般到個別,而歸納論證則相反,簡單點說就是演繹論證得出的是必然的結論,而歸納論證得出的是可能性的結論。注意,跟之前一樣,這裡沒有好壞、優劣之分,這兩個是在不同場合,不同條件下的推理方式,演繹論證只需要基於前提條件一步步往下推理即可,而歸納論證則不同,因為這裡你要乾的事情是用部分情況推匯出整體情況,因此你得保證你取到的樣本有足夠的代表性,收集到的資料足夠多,足夠準確,不然你得出的結論是不夠有說服力的。不管是演繹論證,還是歸納論證,只有證據充足,真實,前提條件和最後的結論關係緊密,最後推匯出的結論才會是可信的。


誤導邏輯判斷的一些因素

文章當中也給出了一些會影響我們邏輯思考的因素,在平時生活中使用邏輯需要避免或者減少受到這些因素的影響。

首先就是情感因素,不得不說人本來就是一個情感動物,情感和理性是共存的,有些時候我們做一些事情並不是因為這個事情正確,我們很多時候的認識是從感性上面來認識的,這並不是錯,我們不可能完全規避情感因素的影響去使用邏輯。但是這裡需要強調的是,我們做事情的時候得清楚這件事情我做是因為其正確才去做,還是說為了滿足自己在情感方面的需求,如果是前者的話你是可以抱有一些個期待的,期待得到正確的結果,但是如果是後者的話,你就要想到可能發生的問題,以及要預備好問題發生的解決辦法,不然自己可能會陷入手足無措,進退兩難的局面。書中也給出了一個基本原則,就是永遠不要直接調動人們的情感,要努力使人們自己發現真相。只有真相,才值得人們為之歡呼雀躍

另外一個影響邏輯判斷的是懷疑,可能我們會根據之前的一些歷史經驗來看待當前的問題,這裡有兩個狀態,第一是將懷疑永久化,這種懷疑的負面的影響是非常巨大的,也是極度危險的,因為它在邏輯推理開始前就已經設下了巨大的障礙。第二種是根據一些個理論依據做適當的懷疑,這種懷疑是正常的,也是對我們推理和認知起保護作用的,能夠幫助我們往更加正確的方向上去做推理。

逃避問題也是一個影響邏輯判斷的因素,有時我們因為自身的懶惰,以及追求快速的結果,選擇在收集前提條件,或者在推理步驟上面偷工減料,就簡單認為沒有證據來證明這個事情的正確與否。如果確實是我們對某個事物的認知有限,不能作出確定的判斷,我們是可以說不知道的;在你做了長久深入的調查之後說不知道,與你根本沒有任何付出任何努力時說不知道是有本質區別的,這樣的無知是懶惰和漠視的結果。

另一個影響邏輯判斷的是人云亦云,我們很多時候的思想或者說是做法是跟著大多數走的,但是你需要知道的是,對於一個錯誤的認知或者觀念,即使再多的人認為它是正確的,從本質上面來看它還是錯誤的,我們做邏輯推理,更多的是需要知道事情的真相,真假,而不是去糾結誰做了這個事情。


總結

上面的東西是我的一些概括性總結,肯定有說的不到位的地方,但是我相信知道跟不知道是有本質區別的,我們需要知道邏輯的重要性,並漸漸地將其融入自己的生活當中,下次聽別人講話的時候,我就會試著去看他話中的邏輯,我可以清楚的知道他的話中什麼是主觀的觀念,什麼是真正的客觀事實,我也會試著讓自己的話語更有邏輯性,更具有說服力,練的多了,思考的多了,就進步了,期待自己過些日子在回過頭來看這本書的時候,會有更多的不一樣的想法。

相關文章