自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么90%的“碼農”做不了“架構師”?

開發(fā) 架構
選擇有時候比努力重要,真正厲害的人不僅僅是埋頭苦干,而是會利用好的思維方式、好的方法,看穿事物的本質,順勢而為,找到事情的最優(yōu)解,并懂得舉一反三。

選擇有時候比努力重要,真正厲害的人不僅僅是埋頭苦干,而是會利用好的思維方式、好的方法,看穿事物的本質,順勢而為,找到事情的最優(yōu)解,并懂得舉一反三。

[[286326]] 

圖片來自 Pexels

架構師是程序員的目標之一,但大多數程序員無法成為架構師。真正厲害的架構師具備什么樣的思維方式,到底強在哪?今天,韓帥為你揭秘。

世界上所有的道理都是相通的,而有一些相似到令人吃驚,模型思考者和架構師就是如此。

《模型思考者》是密西根大學教授斯科特·佩奇的一本書,這本書的目的是教大家如何理解和應對這個復雜的世界。

目前這本書的中文版還沒正式出版,得到萬維鋼精英日課中有 15 節(jié)課程講解。

這一篇文章是篇讀書筆記,內容來自榮華老師的文章,還有萬維鋼精英日課中對《模型思考者》的講解,結合一些自己的理解和思考。

學習了這些后,我的學習和成長都有了框架有了方向,如果你覺得很有收獲,可以閱讀原著,歡迎留言區(qū)交流。

什么是架構?

ISO/IEC 42010:20072 中對架構的定義如下:

The fundamental organization of a system, embodied in its components, their relationships to each other and the enviroment, and the principles governing its design and evolution.

ISO/IEC 42010

 

這里定義了架構的三要素:

  • 職責明確的模塊或者組件
  • 組件間明確的關聯(lián)關系
  • 約束和指導原則

越是簡單抽象的定義,越是美,越是通用。小到一個玩具,大到一個國家的運作都可以隱含著這樣的內容。

舉兩個簡單的例子,我們來一起看他們的三要素分別是什么。

軟件架構: 

  • 模塊:模型、域
  • 關系:一對一、一對多(模型);依賴(域)
  • 原則:單一職責、開閉原則、里氏替換原則等等

組織架構: 

  • 模塊:部門
  • 關系:管理 or 上報
  • 原則:各種管理原則、財務原則

從不同的角度來豐富架構的定義:

  • 架構的原則是簡單,但不能有遺漏。
  • 架構的目的是解決問題。問題的尺度上,可以大到國家戰(zhàn)略問題、經濟問題、民生問題,也可以小到一只鋼筆如何均勻地吐墨;時間上,可以是當下的問題,也可以是預期以后會發(fā)生的問題。
  • 架構不是一成不變的,它只適合于特定的場景。過去的架構不一定適合現(xiàn)在,當下的架構不一定能預測未來。

什么是架構師?

架構師是一個角色,定義角色其實是定義職責,架構師的職責是:識別并定義問題,創(chuàng)建、選擇或調整架構,從而找到最優(yōu)的方案,解決問題。

這其實也是架構師做事的一般套路:定義問題→確定架構→提出方案→落地拿結果。

這四步中,越是前面的步驟,越是重要,越是抽象,也越是困難,越能體現(xiàn)架構師的功力。

什么是問題

問題的定義很寬泛,生存或是毀滅?這是一個問題。晚上去吃燒烤不?也是一個問題。

架構師常說,我的架構解決了什么問題,這里的問題不是一般性的問題,而是特指馬克思哲學中的矛盾(矛盾的定義也很寬泛,注意這里是馬克思哲學中的矛盾)。

問題就是事物的矛盾。哪里有沒有解決的矛盾,哪里就有問題。

——毛澤東

任何事物都是作為矛盾統(tǒng)一體而存在的,矛盾是事物發(fā)展的源泉和動力。

——馬克思

架構師要定義和解決的問題,就是特定領域中的矛盾,解決了矛盾,就得到了發(fā)展,取得了收益。

既然架構師眼中的問題就是馬克思哲學中的矛盾,我們就可以從馬克思哲學中學習定義問題的系統(tǒng)方法,比如矛盾分主要矛盾、次要矛盾。

主要矛盾指在事物發(fā)展過程中處于支配地位,對事物發(fā)展起決定作用的矛盾;次要矛盾指處于從屬地位、對事物發(fā)展不起決定作用的矛盾;主次矛盾相互依賴、相互影響,并在一定條件下相互轉化。

當我們面對復雜的問題時要不斷反思,這是不是主要問題?是不是當下最主要的問題?

如何區(qū)分問題、手段、挑戰(zhàn)

我們述職或晉升時常常要說問題、手段、挑戰(zhàn),但這些概念總是混淆在一起,很難區(qū)分一件事情是問題還是手段。

其實問題、手段、挑戰(zhàn)都是一回事,都是矛盾,只是層次不同,比如:

每一個問題可以向下不斷展開不斷細化,下一級的問題是上一級問題的具體解決手段,當你把“提升性能”當做你 Owner 的問題時,提升幀率、提高頁面秒開率、優(yōu)化啟動耗時就成為了你的具體解決手段。

而手段的下一級問題,就是你將面臨的挑戰(zhàn),比如你要優(yōu)化網絡耗時,你要面臨的挑戰(zhàn)就有弱網環(huán)境、一些國家區(qū)域的帶寬問題等等。

同理,當你把“提升用戶體驗”當做你 Owner 的問題,“提升性能”就變成了你的具體手段,幀率、秒開率、啟動耗時就成為了挑戰(zhàn)。

如何定義問題

The significant problems we face cannot be solved at the same level of thinking we were at when we created them.

——愛因斯坦

榮華老師把愛因斯坦這種思想定義為升層思考:我們不能只局限于問題本身,還需要看到問題背后的問題,然后才能更容易找到更多的解決方案。

亨利福特說,如果我問客戶需要什么,他們會告訴我,他們需要一匹更快的馬。

從亨利福特的這句話,我們可以提煉出一個最直接的問題:客戶需要一匹更快的馬。

立足這個問題本身去找解決方案,可能永遠交不出滿意的答卷:尋找更好的品種,更科學的訓馬方式。

思考問題背后的問題,為什么客戶需要一匹更快的馬?可能客戶想要更快的日常交通方式,上升了一個層次后,我們立刻找到了更好的解決方案:造車。

閱讀了本段內容,相信你不僅僅理解了什么是架構師,也理解了架構師的做事套路和思考方式。

什么是模型?

《模型思考者》中對模型的定義是這樣的:

模型是對真實世界的抽象,明確定義了各種元素、以及元素之間的關系,可以用來做邏輯推導。

對比架構三要素和模型的定義,相同點是都有元素(組件),以及元素(組件)間的關系。

不同的是,架構強調約束和指導原則,用來指導我們如何做事;模型強調邏輯推導能力,指導我們在現(xiàn)有規(guī)律下尋找答案或尋求最優(yōu)解。

舉個使用模型解決問題的例子:如果你是一位高中班主任,想要提高班級中考試成績大于 90 分的人數,你應該怎么做?

首先要找到正確的模型。關鍵元素有兩個:考試成績、相應的學生人數,這兩個元素之間的關系是正態(tài)分布函數,所以應該使用的是正態(tài)分布模型。

然后使用模型做推導,找到問題的最優(yōu)解。正態(tài)分布函數有兩個關鍵變量:均值、方差,只要這兩個變量確定了,正態(tài)分布就唯一確定了。

想要提高班級中考試成績大于 90 分的人數,我們有兩個選擇,提高均值,或者提高方差。

即使忽略提高方差帶來的負面影響(成績差的同學也更多了),提高方差帶來的正面影響也遠遠遜色于提高均值,特別是當均值接近 90 分時,均值哪怕提高 1 分,大于 90 分的人數都有巨大提升。

最后根據推導結果,確定具體落地方案。放棄提高方差的方法,比如給成績好的同學特別的照顧,把成績不好的同學座位調到后排。多采取提升均值的方法,比如培養(yǎng)班級的學習氛圍,成立學習小組等等。

什么是模型思考者?

參考架構師,用模型思考者的做事方式來給它下定義:

面對問題,能看穿客觀事物的本質,選取或構建合適的模型,推導出問題的最優(yōu)解。

就像架構和模型的定義類似,只是突出的重點不同一樣,架構師和模型思考者的定義也很類似,重點也不同。

架構師的重點是定義問題、解決問題、推動事物發(fā)展;模型思考者的重點是看穿事物的本質,遵循規(guī)律,找到最優(yōu)解。

接下來介紹幾個驚艷的模型:

認知模型(認知金字塔)

這個模型揭示的是認知的本質,給出了一條提升認知的最佳實踐。

[[286328]] 

模型解釋:

金字塔的最底層是數據。數據代表各種事件和現(xiàn)象。數據本身沒有組織和結構,也沒有意義。數據只能告訴你發(fā)生了什么,并不能讓你理解為什么會發(fā)生。

數據的上一層是信息。信息是結構化的數據。信息是很有用的,可以用來做分析和解讀。

信息再往上一層是知識。知識能把信息組織起來,告訴我們事件之間的邏輯聯(lián)系。有云導致下雨,因為下雨所以天氣變得涼快,這都是知識。成語典故和思維套路都是知識。模型,則可以說是一種高級知識,能解釋一些事情,還能做預測。

認知金字塔的最上一層,是智慧。智慧是識別和選擇相關知識的能力。你可能掌握很多模型,但是具體到這個問題到底該用哪個模型,敢不敢用這個模型,就是智慧。

來源:得到付費課程《精英日課》 作者:萬維鋼

模型的應用:

  • 信息焦慮:處在信息時代,很多人都有信息焦慮,生怕自己每天閱讀的信息不夠多而被時代拋下,每天疲于輸入新的信息,沒時間思考總結,結果隨著信息的遺忘,什么也沒留下。

其實相比于信息,模型并沒有那么多,我們應該花更多的時間總結模型,明確模型的使用范圍(智慧)。

  • 數據分析:開發(fā)完一個功能,加一些埋點,跑 SQL 能拿到數據,做報表能拿到信息,針對報表所做的分析屬于知識。

反思一下自己,有多少埋點還沒跑數據,有多少數據還沒結構化為信息?多少信息還沒做分析?多少分析還沒做下一步決策?

  • 指導投資:DALIO 的《原則》一書中提到了橋水基金掙錢方法:不斷采集市場數據,使用計算機加工數據抽象模型,根據模型自動做投資決策。計算機的這個行為,不就是模型思考者嗎?

索洛模型(經濟增長模型)

這是個拿了諾貝爾經濟學獎的模型,揭示的是經濟增長的本質。

模型解釋(摘抄自得到精英日課):

  • O 代表經濟產出,A 代表技術進步,L 代表勞動力,s 代表儲蓄率,d 代表折舊率。
  • O 與 L 成線性關系:索洛考慮勞動力有兩個作用:他們不僅僅是去工廠上班工作,他們還要拿工資,拿了工資會存錢,存的這個錢可以用來投資。

經濟產出跟勞動力工作是平方根關系,跟勞動力的投資也是平方根關系,所以跟勞動力本身就成了正比關系。

  • O 與 A 成平方關系:你的技術更先進,你的產出就比別人的產出更值錢。

A 代表了你的技術附加值。為什么經濟產出和 A² 成正比?因為 A 有兩個效應。一個是 A 能直接增加產出,一個是因為 A 增加了產出,會導致相對于同樣的折舊,投資也會增加。如果你能把技術附加值變成兩倍,你的總產出就會變成四倍。

來源:得到付費課程《精英日課》 作者:萬維鋼

模型的應用:

  • 單純的投資行為,會被折舊追平,是邊際效應遞減的過程,不可持續(xù)。
  • 勞動力對經濟增長的影響是線性的,但是技術進步的影響是平方的,面對我國人口問題,追求技術進步是唯一出路,技術進步是真正的增長之本。

其他的模型

《模型思考者》中有許多許多模型,每個模型有詳細的解釋,以及模型的適用場景。

比如:適用于市場營銷、病毒傳播領域的“傳播模型”,研究穩(wěn)態(tài)與“宿命”的“馬爾可夫模型”,大家感興趣可以閱讀原著。

總結

架構師和模型思考者是非常相似的兩套做事方法,對于所研究的系統(tǒng):

  • 當我們可以對系統(tǒng)做修改時,可以用架構師思維,定義問題、解決問題,推動系統(tǒng)一步步完善。
  • 當我們無法影響系統(tǒng)運行機制時,要用模型思考者思維,洞見其本質,順勢而為,找到最優(yōu)解。

參考文章:

  • 榮華老師的多篇文章點擊“閱讀原文”即可在線閱讀
  • 萬維鋼精英日課,《模型思考者》系列課程

 

責任編輯:武曉燕 來源: 阿里技術
相關推薦

2012-02-23 15:02:20

架構師介紹

2018-07-03 15:46:24

Java架構師源碼

2019-04-15 09:07:46

碼農首席工程師互聯(lián)網

2017-12-04 09:26:56

架構師碼農菜鳥

2016-04-11 17:34:35

首席架構師經歷

2019-11-20 08:30:07

架構師軟件組織

2020-11-09 08:10:47

菜鳥碼農架構師

2018-12-29 09:58:19

碼農架構師Leader

2013-09-22 09:55:23

碼農程序員

2017-12-15 20:30:03

開發(fā)碼農架構師

2020-02-10 08:05:41

碼農架構師封神

2015-08-10 13:25:38

編程寫作

2015-12-28 10:35:59

碼農寫作

2013-11-14 13:58:06

硅谷碼農

2017-11-06 08:27:26

開發(fā)

2018-07-02 08:57:27

碼農業(yè)務程序員

2012-12-13 09:47:15

軟件架構師架構師

2020-06-28 08:34:07

架構師阿里軟件

2022-07-26 11:46:54

數字化轉型IT架構師

2023-10-08 10:30:59

云架構人工智能云工程
點贊
收藏

51CTO技術棧公眾號