首頁 > 易卦

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

作者:由 朝槿木兮 發表于 易卦日期:2023-02-04

大膽假設小心求證是什麼思維方式

蒼穹之邊,浩瀚之摯,眰恦之美; 悟心悟性,善始善終,惟善惟道! —— 朝槿《朝槿兮年說》

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

眾所周知,軟體設計是從理解問題域開始,而理解問題域的核心是要深入理解領域的核心概念。從而意識到,邏輯思維是幫助我們深入理解領域的關鍵之一。究其本因,邏輯思維是程式設計師最底層的思維能力,其本質是判斷關係是否合理。就像培根說的——“讀史使人明智,讀詩使人聰慧,演算使人精密,哲理使人深刻,倫理學使人有修養,邏輯修辭使人善辨。” 實際上,學會明確的定義概念,正確地使用判斷,合理地進行推理是邏輯思維的核心。比如,就像《如何閱讀一本書》中提到的分析閱讀,說的就是如何透過提煉書中的關鍵字詞(邏輯概念),關健句子(邏輯判斷),以及關健論述(邏輯推理)來分析一本書的主要宗旨。從而,這十分形象地和非常準確地向我們概述瞭如何去梳理一本書和一篇文章的邏輯;同時,也向我們闡述了邏輯思維的三個組成要素,接下來我們進入深入的探討和交流。

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

概念(Concept),是邏輯思維要素之一,是思維的基本單位。一般主要是指反映事物的本質屬性和特有屬性的思維形式。在英文詞典裡特指“Concept“,其意思是“An idea or a principle that is connected with sth abstract。“。主要可以理解為,概念是一些關於抽象事物的思考和定義。這個世界有很多食物是透過我們的思維去揣摩和賦予它們意思和意義,當然也會反覆推敲和檢驗,最後透過語言以及符號的形式呈現出來。當然,這些意思和意義是概念的思維內涵(內顯形式),語言則是概念的外貌長相(外顯形式)。可以說,明確概念是我們認識世界和了解事物的第一步,是我們學習,研究,討論的基礎。一般來說,認知水平越高的人,越能體會概念明確的重要性。

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

判斷(Proposition),是邏輯思維要素之二,是推理的基礎,也叫作命題。一般一個判斷就是一個斷言(Asert),它斷定一件事情是這樣或者不是這樣,每個判斷只有真或者假的結論。我們需要認識到一點,一個問題沒有斷言任何東西,因此他不是判斷,而且判斷一般都是用陳述句表達,疑問句以及命令或者感嘆都不能作為判斷的描述。由此可見。判斷有兩個方面的特徵:第一個方面,判斷肯定有肯定或者否定之分,即就是肯定判斷和否定判斷;另外一個方面,判斷有真假之分,一個判斷要麼真,要麼假,不能非真非假。從本質來說,判斷是概念的展開,沒有判斷,就不能表達和說明概念;同時,判斷也是推理的前提,是正確運用各種推理的條件。所以,準確地運用判斷,我們才能夠進行正確的思考。

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

推理(Argument),是邏輯思維要素之三,是研究語句,判斷,命題之間的學問,也叫作論證。常用的邏輯推理方法可以分為演繹推理(Deductive Inference),歸納推理(Inductive Inference) 以及溯因推理(Abductive Inference)等。首先,演繹推理宗旨在於闡明前提和結論之間的關係,為演繹評估論證是否有效提供方法,是一個從一般到特殊的過程。常見的“大前提,小前提,結論”的著名三段論形式就是典型的演繹推理。

在歷史上,演繹推理出現過兩種傑出的理論。一種是“古典邏輯”,開創這種理論是古希臘哲學家亞里士多德,主要記錄在《工具論》,所以也被稱為“亞里士多德邏輯“,主要處理不同物件的類之間關係的論證;另外一種是“現代邏輯”,主要是英國數學家布林出版《邏輯的數學分析》,建立了“布林代數”,並創造了一套符號邏輯系統。所以也稱為“現代符號邏輯“,就是利用符號來表示邏輯中的各種概念關係等。“古典邏輯”和“符號邏輯“都是研究邏輯的形式,所以也被稱為形式邏輯。

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

其次,歸納推理是以一類事物中的若干個別對象的具體知識為前提,得出有關該事物的普遍性知識的結論的過程。雖然歸納推理可以得到新的知識,但是不能窮舉,所以永遠也得不到真理。就像基本演繹法一樣,可以保真,但是因為結論蘊含在大前提中,又不能產生新的知識,最後只能推匯出真理存在即可。我們熟知的科學知識是來自科學歸納法的,真正的科學都是可以被證偽的,一旦科學理論與最新發現發生矛盾時,就會出現一種新的理論進行替換。由此可見,演繹和歸納並不是“割裂”狀態,而是彼此相互聯絡的。一般為了提高歸納推理的可靠程度,都需要運用已有的知識對歸納推理的個別前提進行分析,把握其中的因果關係和必然規律,都會運用歸納推理。同時,歸納推理需要依靠演繹推理來驗證自己的結論,需要以一般性知識作為前提。在軟體工程建模的時候,建模是一個歸納工作,我們透過抽象問題領域裡具有業務的共同特性的類來建立模型。而為了驗證模型的可行性和有效性,我們會是使用演繹的方法去推算和演練不同的業務場景,看看軟體模型是否滿足業務需求。

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

最後,溯因推理是我們已經知道答案,再去追溯原因的推理過程。簡單來說,就是“大膽假設,小心求證“。這也是我們程式設計師每天都在乾的最多的事情,通常說的“故障排查(Trouble Shooting)”其實就是溯因推理,用的手段基本都是假設和求證。綜上所述,其實不論是哪一種推理方法,對於我們實際工作和生活來說,都是值得推敲與學習的。

雲原生時代程式設計師必備:底層思維之深入理解邏輯要素?

我們都知道中華上下都有五千年的歷史文明,至少在社會發展水平如此高速的今天。有許許多多的智慧和道理影響著我們的方方面面。在此之前,看見過一段話,“我們聽過那麼多的古今道理和至理名言,卻為何依舊沒有辦法過好自己的一生!“看到的時候,我都在想,這個號稱處於”最好的時代“的我們是怎麼了,為何會有如此多的感概和迷茫?直到看見《我是特種兵》裡的“丫頭”發了一個影片,說“小莊哥哥抱著的小女孩長大了”,我看了看鏡子中的自己,突然意識到,時間只給了我們年齡,其它的一無所有。就像《思辨與立場》一書提到的,學習一門課程應該從理解課程的基本概念開始。結合到實際來說,不論社會現狀多麼美好,現實多麼不盡人意,我們都應該懂點邏輯思維,才能讓我們做事有章法,識人斷物有條理,才能讓自己變得“甜一點”!