挺後悔,我敷衍地回答了“程式設計師如何提升抽象思維“

程序员老猫發表於2024-03-24

大家好,我是老貓。

大概在月初的時候,我發了一篇文章【當程式設計師之後?(真心話)】,在這篇文章中,提及了抽象思維對一名程式設計師的重要性。可能說得也比較籠統,所以就有小夥伴問了“普通人應該如何提成抽象思維呢?”,當時我的回答是這樣的。

回答截圖

老貓覺得當時的回答太過敷衍了,甚至有點不太負責,所以在此也要向這位小夥伴道個歉。後來老貓仔細結合日常工作中的思考方式,把想到的又重新梳理總結了一下。分享給各位,希望對大家有所幫助。

關於抽象的一些簡單例子

關於抽象思維,百度百科上面是這麼說的:“又稱詞的思維或者邏輯思維,是指用詞進行判斷、推理並得出結論的過程。抽象思維以詞為中介來反映現實。這是思維的最本質特徵,也是人的思維和動物心理的根本區別。”

感覺會比較官方,當然老貓也可能尚未到達這個認知高度,老貓的理解,抽象思維應該更多的是一個概括出事物共同的、關係性比較強的本質特性,捨棄非本質特性的過程。

用我兒子最喜歡的昆蟲打個比方,七星瓢蟲、螳螂、螞蟻、大兜甲蟲等等,他們長得形態大小可能都不同,而且差距還是比較大的,但是這些蟲子有一個比較顯著的共同特性,那就是它們都有六條腿,根據這個咱們就抽象出“六足節肢動物”,也就是昆蟲。(出於好奇,老貓後來也看了一段時間小朋友的昆蟲繪本,發現挺有意思,其實我們日常看到的蜘蛛,馬路等等多足動物不能叫做昆蟲)那這樣對共同特性的概括其實就是一種抽象了。

我們再舉個場景抽象的例子,某東plus會員大家不曉得大家有沒有用過,開通會員之後可以享受免運費、優先配送、可以加入健康關愛計劃、PLUS會員可以享受全年最低價等等,這些亂七八糟的乍看起來好像也沒有什麼共同特性或者關係,但是我們可以看到的是,這些好像都是再給使用者提供額外的服務享受。那麼對於這種共性,我們可以抽象成“會員享受福利”,那麼再語言文字精簡一些,那就是“會員權益”。老貓剛才的描述中,其實就是一個抽象過程。

一些抽象練習

上面有朋友問,日常生活中如何提升抽象思維,那咱們就從日常鍛鍊思維聊起。

水平思維

水平思維是從一個點向四面八方發散出許多有直接關聯或者沒有直接關聯的點。比如看到桌上放著的充電器,我們可以想到手機、電池、充電寶等有直接關聯的點,也可能想到電動車、共享單車、太陽能等沒有直接關聯的點。這種思維方式的話,更多類似於“頭腦風暴”。尋求看待事物的不同角度以及不同方法,追求數量以及創意。

這種思維方式要求我們致力於提出不同的看法,所有的看法都在同一層面上,每個不同的看法不是相互推匯出來的,而是各自獨立產生的。日常開發過程中這種水平思考有助於我們擺脫產品需求的“資訊囚籠”

比較形象一點的描述就是“在不同的地方挖出不同的洞。”

如下圖咱們用上面提到的plus會員舉例畫一幅圖:

水平思維

上圖中這種服務於會員的方式就是我們所說的“挖出的不同的洞”

垂直思維

上面提到水平思維,那當然還有垂直思維方式。垂直思維的方式實在水平思維的基礎上,對事物特定部分(關鍵部分)深度分析的方法。垂直思考注重細節,同時又兼顧水平思考。

舉個生活中的例子可能更好理解,我們去眼鏡店挑選眼鏡,有太陽鏡、近視眼鏡、老花眼鏡等這種水平思維抽象之後就是眼鏡。那麼如果咱們深入垂直方式去看待呢?那麼我們可能會這麼理解。桌上擺放的這個眼鏡鏡片是什麼材質的,樹脂的還是其他合成材料,鏡框採用的是什麼材質的,另外眼鏡的焦距多少等等一些列就當前這個眼鏡的一些列深入的挖掘。

垂直思維能讓我們在某一領域或者專業技術上更加精通透徹,成為專家。

垂直思維是以邏輯與數學為代表的傳統思維模式。其特點是:根據前提一步步進行推導,既不能逾越,也不允許出現步驟上的錯誤。它有非常強的邏輯性、推理性,能夠讓我們專注於某一點,深入分析。

還是基於之前的會員的例子,咱們來看一下下圖。

垂直思維

上面的圖我們可以看到,我們對“Plus會員權益”中的免運費表示垂直深度思考,其中可能會包含,免運費實現的細節以及流程等等。那這種思考方式就是垂直思考方式。

從上面的圖中,我們能夠更加清晰的看出,咱們的“垂直思維”方式是基於“水平思維”的基礎上的,那麼我們平時的抽象思考方式就顯而易見了,咱們需要先“水平思考”然後繼而再進行“垂直思考”。

“水平思維”和“垂直思維”對比總結

上面聊了一下兩種抽象思維方式,那麼對於兩者的關係我們可以總結出下面的三點:

  1. 運用水平思維從多個角度看待問題,儘可能多地羅列出視角和點子。水平思維的發散效能讓我們更容易看到事情的整體,並且想出許多有創意性的點子。
  2. 對羅列的點進行排序,找到最重要的點。
  3. 對最重要的點進行垂直分析。

研發人員常用抽象思維

上面和大家聊到了日常生活中,咱們提升自己抽象思維的思考方式並且列舉了一些小例子。

那麼我們研發人員比較實用的抽象思維方式又是什麼呢?

“自頂向下思考”以及“自底向上思考”相結合

在咱們日常的生活中“水平思維”以及“垂直思維”固然重要,但是上面提及的這個點可能在我們實際中使用得更加多些。

自頂向下:咱們在梳理業務的過程中,咱們需要先明確目標使用者、業務訴求。從而建立“大局觀”。然後在依層次分解,一直到業務的規則和細節。

這種思考方式在日常工作中偏向於系統建模上,例如咱們在進行技術設計的時候,我們一般都會從架構著手,從大到小,我們可能會劃分具體的系統有幾個,然後再到每個系統之間的協作方式,然後再到每個系統內部的實現細節(在這個階段可能就會涉及我們熟悉的流程細節以及資料模型細節)。老貓之前寫過一篇文章,其熟悉業務流程的思路大概也是按照這種方式去做的,大家有興趣可以看一下這裡【新接手一個系統,我是這麼熟悉的

自底向上:這種思考方式是強調我們需要先去收集細節,從區域性著眼於歸納、演繹,最終洞見宏觀層面。這種思考方式很多時候使用於產品經理進行做產品設計的時候,產品經理在做相關產品設計的時候,往往會去先調研業務訴求,業務訴求一般都是比較零散而且沒有組織的,比較稀碎。然後產品經理會將這些稀碎的需求進行歸納,抽象昇華出相關的產品形態。那這種過程其實就是自底向上的過程。

總結

老貓覺得這種思考方式可能無論對於軟體行業還是非軟體行業的人都有比較好的幫助。老貓之前做過相關大客戶的業務,和一些銷售也打過一些交道,在他們實際和客戶進行交流的過程中,我就發現他們在介紹業務的時候僅僅有條,最終表述出來的思路總結之後也差不多是上面幾種。當然這也是老貓所能想到的一些提升抽象思維的一些方式。希望對大家有所幫助,當然如果大家還有比較好的思路也歡迎在評論區留言,歡迎大家一起討論。

拋開技術不談,老貓始終覺得,其實很多行業咱們的思考方式應該是相通的。包括抽象思維的方式甚至思考問題的方式以及邏輯思維方式。今天的分享就到這裡了。歡迎持續關注老貓。

相關文章