一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

阿里技術(shù)專家:優(yōu)秀工程師是怎樣煉成的?

 靜靜的看一看 2019-06-16

很多程序員在工作一段時(shí)間后會(huì)遇到迷茫期,雖有技術(shù)傍身,也難免會(huì)產(chǎn)生焦慮,反復(fù)思考怎樣才能快速成長(zhǎng)。

關(guān)于如何提高自己的思考力,運(yùn)用思考的力量推動(dòng)能力提升,以此實(shí)現(xiàn)技術(shù)成長(zhǎng),阿里巴巴盒馬產(chǎn)品技術(shù)部的巖動(dòng)總結(jié)了一套思考方法,分享給每個(gè)正在成長(zhǎng)的程序員。(本篇文章較長(zhǎng),閱讀時(shí)間約 30 分鐘,建議收藏后,找一個(gè)合適的時(shí)間慢慢品讀哦)

我們來(lái)看一下幾類在程序員成長(zhǎng)、發(fā)展中的常見(jiàn)問(wèn)題,如果你或多或少存在一些,那么恭喜你,這篇文章值得你仔細(xì)往下看了:

  • 你自認(rèn)為付出了跟別人同樣的努力,但是你的成長(zhǎng)確實(shí)更慢一些,比如學(xué)得比別人慢,排查問(wèn)題比別人慢,出方案老是有漏洞等等。

  • 你覺(jué)得你只是在疲于應(yīng)付需求,自己做的事情完全沒(méi)有技術(shù)含量(很多人覺(jué)得自己做的業(yè)務(wù)開(kāi)發(fā)就是沒(méi)有技術(shù)含量,但我認(rèn)為每個(gè)領(lǐng)域都有自己的技術(shù)含量,只是你有沒(méi)有 Get 到)。

  • 你發(fā)現(xiàn)總是在犯同樣的錯(cuò)誤,或者做的事情不斷地在同一個(gè)水平循環(huán)。

  • 每次要晉升的時(shí)候,你發(fā)現(xiàn)根本講不出來(lái)(很多人會(huì)認(rèn)為是表達(dá)能力問(wèn)題,但是我認(rèn)為不是)。

  • 當(dāng)你換到一個(gè)新的領(lǐng)域,你發(fā)現(xiàn)自己的經(jīng)驗(yàn)好像用不上。

  • 你一直很難搞懂老鳥(niǎo)說(shuō)的“認(rèn)知升級(jí)”到底是什么概念?不同級(jí)別的技術(shù)思維能力到底有什么差別?為什么晉升的是他,而不是我?

在這篇文章里,我會(huì)告訴大家一些技術(shù)成長(zhǎng)的誤區(qū),我先點(diǎn)出來(lái):

  • 只要把事情搞定了,成長(zhǎng)是自然而然的事情——可能過(guò)段時(shí)間,你發(fā)現(xiàn)之前犯過(guò)的錯(cuò)誤,后來(lái)一個(gè)都沒(méi)有避免。

  • 我只要努力,996 甚至 007,我就能夠成長(zhǎng)得比別人快——可能你發(fā)現(xiàn)你干得最多,但是并沒(méi)有拿到最好的結(jié)果。

  • 我盡力了,還是比別人慢,應(yīng)該是我智商確實(shí)差一些——恭喜你,其實(shí)大家的智商并不會(huì)有太大差別。

  • 別人表現(xiàn)好,或者晉升了,只不過(guò)是比我表達(dá)能力更強(qiáng)而已——我可以負(fù)責(zé)任地告訴你,這并不是僅僅是表達(dá)能力的問(wèn)題。

先拋一個(gè)非常重要的結(jié)論:“思考力”是程序員需要具備的一種至關(guān)重要的素質(zhì)。

掌握了思考力,你就掌握了在互聯(lián)網(wǎng)領(lǐng)域,這種高度“智力密集型”行業(yè)成長(zhǎng)的鑰匙。

上面這幾個(gè)成長(zhǎng)的問(wèn)題和誤區(qū),跟沒(méi)有掌握思考力有著非常重要的關(guān)系,而且我發(fā)現(xiàn)所有發(fā)展比較順暢的同學(xué),他們的思考和學(xué)習(xí)能力是非常強(qiáng)悍的。

我個(gè)人在工作中,一直有意或者無(wú)意地鍛煉自己和團(tuán)隊(duì)同學(xué)的思考力,包括哪些是對(duì)我們最重要的思考力,如何去訓(xùn)練思考力,有一些心得,希望能夠分享給大家。

關(guān)于思考力

思考力是一門很深的學(xué)問(wèn),包括認(rèn)知科學(xué),心理學(xué)、教育學(xué)、邏輯學(xué),如果要系統(tǒng)化學(xué)習(xí),是需要看很多書的,我推薦以下幾本:

  • 《金字塔原理:思考、表達(dá)和解決問(wèn)題的邏輯》-[美] 芭芭拉·明托,這本書系統(tǒng)闡述了思考、表達(dá)和解決問(wèn)題的邏輯,也是麥肯錫的思維能力基礎(chǔ),算是一本比較標(biāo)準(zhǔn)的思考力教材。

  • 《麥肯錫教我的思考武器》- [日] 安宅和人,作者根據(jù)自己在麥肯錫公司工作時(shí)積累的豐富經(jīng)驗(yàn)以及腦神經(jīng)學(xué)的專業(yè)背景,設(shè)計(jì)出一套極具邏輯性的問(wèn)題解決思維模式。

  • 《思維的本質(zhì)》-[美]約翰·杜威 ,這本書是美國(guó)著名教育家約翰·杜威的代表作,闡述了思維訓(xùn)練的基礎(chǔ)理論和實(shí)踐。

本文并不是探討思考力的深層理論,而是分享我們從日常的技術(shù)學(xué)習(xí)和項(xiàng)目過(guò)程中沉淀下來(lái)的思考力,以及如何培養(yǎng)這些思考力,這些思考力幾乎我們每天都可以用到,只要你有一定體感,你一定會(huì)感同身受。

有哪些對(duì)程序員最重要的思考力

原理性思維:找出知識(shí)背后的原理

有的人會(huì)說(shuō),為什么要思考原理,而不是直接掌握知識(shí)就可以了?我只需要會(huì)用就行了啊。

我們先來(lái)舉一些技術(shù)方案設(shè)計(jì)的案例:

  • 為什么訂單創(chuàng)單要先 Create,然后 Enable?這其實(shí)是一種采用二階段提交解決分布式事務(wù)的思路,只是從一般的事務(wù)框架延展到交易領(lǐng)域。

  • 業(yè)務(wù)系統(tǒng)中為什么要使用消息?因?yàn)橄⑹褂玫氖怯^察者模式,觀察者模式的好處是可以實(shí)現(xiàn)多個(gè)消費(fèi)事務(wù)與觸發(fā)事務(wù)的解耦。

  • 為什么業(yè)務(wù)系統(tǒng)中會(huì)使用 DTS 來(lái)做補(bǔ)償?這本質(zhì)上是一種最終一致性 BASE 理論解決分布式事務(wù)的一種思路。

  •  為什么更新數(shù)據(jù)的時(shí)候一定要在 SQL 中加上版本比對(duì)或者狀態(tài)比對(duì)?這本質(zhì)上是一種借助 DB 實(shí)現(xiàn)的樂(lè)觀鎖機(jī)制。

進(jìn)一步,你會(huì)發(fā)現(xiàn)再大到系統(tǒng)架構(gòu)和頂層設(shè)計(jì)的案例:

  • 比如阿里系的技術(shù)框架 NBF、TMF、早期的 WebX,各類框架設(shè)計(jì)理念,逃不脫設(shè)計(jì)模式,比如開(kāi)閉原則,模板方法、責(zé)任鏈、工廠模式、開(kāi)閉原則。

  • 不管是底層中間件,錯(cuò)綜復(fù)雜的業(yè)務(wù)系統(tǒng),在設(shè)計(jì)的時(shí)候永遠(yuǎn)無(wú)法離開(kāi)核心的業(yè)務(wù)建模,比如實(shí)體與實(shí)體關(guān)系的構(gòu)建;在分析這類系統(tǒng)的設(shè)計(jì)思想時(shí),你會(huì)發(fā)現(xiàn)最好的工具就是 UML!

實(shí)際上除了軟件領(lǐng)域的原理,還有商業(yè)設(shè)計(jì)的原理,比如案例:

  • 所有的售中退款前必須要先取消履約,所有的履約過(guò)程中發(fā)生缺貨都需要退款,為什么?

    因?yàn)榻灰椎幕驹瓌t是:“錢貨平衡”,錢和貨的變更必須是最終同步的(允許短期的不平衡),你掌握了錢貨平衡的基本原理,交易中的很多復(fù)雜的流程設(shè)計(jì)就很好理解了。

  • 在設(shè)計(jì)財(cái)務(wù)系統(tǒng)、庫(kù)存系統(tǒng)的時(shí)候,業(yè)務(wù)流程、業(yè)務(wù)邏輯可能非常復(fù)雜,導(dǎo)致你暈頭轉(zhuǎn)向。

    這時(shí)候“有借必有貸,借貸必相等”的財(cái)務(wù)平衡性原理就發(fā)揮作用了,你只要知道這個(gè)原理,很快就能看懂各類財(cái)務(wù)流程、庫(kù)存流轉(zhuǎn)流程,以及各類數(shù)據(jù)對(duì)賬邏輯。

  • 在我的領(lǐng)域“高可用線下收銀系統(tǒng)”進(jìn)行線下系統(tǒng)容災(zāi)的時(shí)候,有各種容災(zāi)方案的設(shè)計(jì),會(huì)員容災(zāi)、商品容災(zāi)、交易容災(zāi)、支付容災(zāi)……不同的容災(zāi)手段看起來(lái)讓你眼花繚亂,但是他們有沒(méi)有共同遵循的原則呢?

    有,這就是“讓消費(fèi)者最快速度完成交易,但保持最后追溯的能力”。你只要 Get 到這個(gè)基本原理,設(shè)計(jì)各類容災(zāi)策略就會(huì)得心應(yīng)手了。

此外,我們的工作流程、管理手段,同樣也蘊(yùn)含著深層的原理,非常有意思,大家可以抽空仔細(xì)推敲一下,比如:

  • 為什么團(tuán)隊(duì)機(jī)制要透明?溝通要透明?

  • 為什么要有 Owner 意識(shí),都是在工作,Owner 意識(shí)會(huì)有什么不同呢?

  • 為什么管理者不能管得太細(xì),也不能放羊?到底哪些該管,哪些不該管?

所以,掌握了知識(shí)背后的原理,帶來(lái)的好處是:

  • 軟件系統(tǒng)的復(fù)雜度越來(lái)越高,我們所面對(duì)的場(chǎng)景越來(lái)越多,掌握原理實(shí)際上可以大幅度降低我們對(duì)于知識(shí)的記憶量,知識(shí)量是爆炸的,但是原理絕對(duì)是可控的!

  • 原理性的東西比直接的知識(shí)有更強(qiáng)的復(fù)用度!記住最核心的原理,當(dāng)你面對(duì)新的場(chǎng)景時(shí),你會(huì)驚喜地發(fā)現(xiàn),你的理解速度大大加快!

    這個(gè)點(diǎn)大家應(yīng)該有體會(huì),比如可能之前我們都學(xué)習(xí)過(guò) Dubbo 等底層的 RPC 通信框架的基本原理,但是你如果僅了解了他的基本用法,你會(huì)發(fā)現(xiàn)對(duì)你現(xiàn)在做業(yè)務(wù)系統(tǒng)沒(méi)有什么幫助!

    但是,當(dāng)你了解的是 Dubbo 如何尋址,如何做容災(zāi),如何做擴(kuò)展,你再去做業(yè)務(wù)系統(tǒng),發(fā)現(xiàn)設(shè)計(jì)原理是一樣的,并沒(méi)有本質(zhì)區(qū)別!這樣你之前研究中間件的設(shè)計(jì)思想就可以快速用到業(yè)務(wù)系統(tǒng)上面。

  • 另外探求原理的過(guò)程,本身很有樂(lè)趣!這是一個(gè)非常有價(jià)值的思維訓(xùn)練過(guò)程,不斷對(duì)系統(tǒng)設(shè)計(jì)思想、業(yè)務(wù)設(shè)計(jì)思想、做事情的工作方式,追尋背后的原理,并找到他們之間的共性,在我看來(lái)非常有樂(lè)趣,一段時(shí)間訓(xùn)練以后,你會(huì)發(fā)現(xiàn)你看透本質(zhì)的能力越來(lái)越強(qiáng)!

好,那么我們程序員的工作中,究竟有哪些原理性知識(shí)是需要我們掌握的呢?

按我們團(tuán)隊(duì)的實(shí)戰(zhàn)經(jīng)驗(yàn)來(lái)看:

  • Java,Linux,數(shù)據(jù)結(jié)構(gòu)和算法,數(shù)據(jù)庫(kù),網(wǎng)絡(luò)通信與分布式計(jì)算的原理,這幾類是比較重要的基礎(chǔ)知識(shí),我們?cè)谧龇桨冈O(shè)計(jì)、編碼、問(wèn)題排查中會(huì)運(yùn)用得很多。

  • 設(shè)計(jì)模式,UML 這個(gè)是對(duì)系統(tǒng)架構(gòu)設(shè)計(jì)必要要掌握的知識(shí),當(dāng)你經(jīng)歷了很多大規(guī)模的軟件系統(tǒng)設(shè)計(jì),回到根本上,你會(huì)發(fā)現(xiàn)逃不出這一塊的理論和工具。

  • 領(lǐng)域性的基本原則,比如我們上面提到的“錢貨平衡”,“財(cái)務(wù)平衡公式”,“線下收銀讓消費(fèi)者最快速度走人”,這種邏輯需要大家 get 到這些領(lǐng)域性的設(shè)計(jì)原理,甚至自己去總結(jié)出這種原理。

  • 關(guān)于管理學(xué),人際溝通,心理學(xué)的一些基本原理,大家可以按照自己的實(shí)際需求去看一下。

如何在工作中學(xué)習(xí)和運(yùn)用這些原理,我覺(jué)得有一個(gè)最佳實(shí)踐:

  • 首先,對(duì)你可能用到的領(lǐng)域知識(shí),建立一個(gè)基本的概念??磿?,看文章,找行業(yè)資深的人去聊,都可以得到。

    注意,這里需要有一個(gè)基本的概念就可以,這樣你在有可能 Touch 到這些原理的時(shí)候,你會(huì)有意識(shí),也不至于花很多時(shí)間。

  • 在實(shí)踐中,有個(gè)意識(shí)是“多問(wèn)一下為什么”,并一直“刨根問(wèn)底”,最終肯定能夠追查到背后的最終原理。

    這里面還要注意思考一下,為什么在這個(gè)地方會(huì)運(yùn)用這個(gè)原理,也就是找到“場(chǎng)景”和“原理”的關(guān)聯(lián)關(guān)系,這樣你的理解會(huì)更加深刻。

  • 了解了原理以后,在實(shí)踐中運(yùn)用一下,這樣你對(duì)這個(gè)原理的理解就會(huì)非常深刻,并且你知道如何去運(yùn)用這原理。

  • 如果這是一個(gè)非常重要的原理,建議大家如有余力去結(jié)合經(jīng)典的書籍系統(tǒng)化學(xué)習(xí)。

結(jié)構(gòu)化思維:構(gòu)建自己的知識(shí)樹(shù)

知識(shí)樹(shù)要解決的問(wèn)題,我們看一些場(chǎng)景:

  • 為什么我知道很多東西,但是當(dāng)場(chǎng)景來(lái)的時(shí)候老是會(huì)記不起來(lái)使用。

  • 完成一個(gè)方案你只能想到一些點(diǎn)狀的手段,還有其他方案被漏掉了。

  • 講一件事情的時(shí)候邏輯非?;靵y,前后沒(méi)有邏輯性關(guān)聯(lián)。

但是很有可能你的知識(shí)都是知道的,為什么會(huì)出現(xiàn)這種悲???這個(gè)就跟大腦中的知識(shí)結(jié)構(gòu)有關(guān),這是知識(shí)學(xué)習(xí)中“索引”沒(méi)有建立,也就是說(shuō),你的知識(shí)只有點(diǎn),沒(méi)有線!

大家想一想,把東西亂七八糟地丟在房間中,到用的時(shí)候沒(méi)有查找的線索和路徑,怎么找得到呢?來(lái)看一下我們工作場(chǎng)景的結(jié)構(gòu)化的典型案例,大家體會(huì)一下。

項(xiàng)目中測(cè)試 MM 提了一個(gè) Bug,我總結(jié)出來(lái)的比較標(biāo)準(zhǔn)的問(wèn)題定位步驟:

  • 確認(rèn)剛才是否有過(guò)代碼變更和部署,因?yàn)橛斜容^高的概率是剛才變更的代碼又搞壞了……

  • 追蹤鏈路日志看鏈路是否有異常。

  • 通過(guò) RPC 的控制臺(tái)調(diào)用看接口輸入輸出是否符合預(yù)期。

  • 追蹤關(guān)鍵方法的入?yún)⒑统鰠?,看是否有?wèn)題。

  • 定位到方法細(xì)節(jié)后,推理邏輯是否有問(wèn)題。

  • 如果無(wú)法通過(guò)推理,那就最后一招,回放異常流量 Debug,這樣肯定能夠找到原因。

某個(gè)鏈路耗時(shí)比較長(zhǎng),需要進(jìn)行性能優(yōu)化,我的分析步驟是:

  • 通過(guò)實(shí)際流量制造一個(gè)耗時(shí)較高的 Trace。

  • 進(jìn)行 Trace 分析,看清楚耗時(shí)最多的原因,然后按優(yōu)先級(jí)進(jìn)行排序。

  • 針對(duì)原因找解決方案,可能的方案有:減少數(shù)據(jù)訪問(wèn)次數(shù)或者計(jì)算量,常見(jiàn)手段是增加 Cache:線程內(nèi)的 InvokeCache;分布式緩存 Tair;頁(yè)面緩存……增強(qiáng)處理速度,比如多線程加速。

    減少循環(huán)調(diào)用次數(shù),比如請(qǐng)求合并后再分發(fā);減少數(shù)據(jù)處理范圍,比如減少查詢內(nèi)容,異步加載分頁(yè);邏輯簡(jiǎn)化,比如邏輯進(jìn)行優(yōu)化,或者非核心邏輯異步化等。

  • 改掉以后,回放同樣的 Case,看性能消耗是否滿足預(yù)期,不滿足預(yù)期繼續(xù)優(yōu)化。

如何熟悉一個(gè)新系統(tǒng),我的步驟是:

  • 要一個(gè)測(cè)試賬號(hào),把相關(guān)功能走一遍,這樣能非??斓亓私庖粋€(gè)系統(tǒng)的功能。

  • 看關(guān)鍵的核心表結(jié)構(gòu),這樣可以快速了解系統(tǒng)的領(lǐng)域模型。

  • 根據(jù)功能步驟找到系統(tǒng)對(duì)外的接口列表,了解系統(tǒng)的 L0 業(yè)務(wù)流程。

  • 下載系統(tǒng)工程,熟悉整個(gè)工程結(jié)構(gòu)和模塊職責(zé)。

  • 以一個(gè)最重要的流程為入手點(diǎn),閱讀代碼,看清楚核心的執(zhí)行邏輯,可以邊看邊畫時(shí)序圖。

  • 制造一個(gè) Debug 場(chǎng)景,以 Debug 方式走一遍流程,這樣可以實(shí)際加深一下對(duì)系統(tǒng)的理解。

  • 做一個(gè)小需求,掌握相關(guān)的流程和權(quán)限。

下單這里來(lái)了一個(gè)新的需求,出一個(gè)技術(shù)方案的步驟:

  • 看清楚之前的需求,把這個(gè)需求所在的場(chǎng)景和鏈路大致閱讀一遍,搞懂。

  • 找到需求的變化點(diǎn)。

  • 分析變更的方案,涉及的內(nèi)容可能會(huì)有:

    • 數(shù)據(jù)結(jié)構(gòu)會(huì)不會(huì)變,如何變。

    • 交互協(xié)議會(huì)不會(huì)變,如何變,交互協(xié)議分為:端和組件要不要變;和下游接口要不要變。

    • 執(zhí)行邏輯會(huì)不會(huì)變,如何變,執(zhí)行邏輯變更的細(xì)化考慮點(diǎn):是否變更域服務(wù);是否變更流程編排;是否變更主干邏輯;是否變更擴(kuò)展點(diǎn);是否變更擴(kuò)展點(diǎn)的內(nèi)部邏輯。

      變更內(nèi)部邏輯的時(shí)候,又可以進(jìn)一步拆解:重構(gòu)原有的方法,覆蓋之前的邏輯,那就需要進(jìn)行回歸;通過(guò)邏輯路由到新的方法,這里需要增加路由邏輯。

  • 穩(wěn)定性方案。

  • 發(fā)布方案。

可以看到,面對(duì)任何一個(gè)場(chǎng)景,不管多大多小,我們所需要掌握的知識(shí)或者技能都可以構(gòu)建成一個(gè)樹(shù)結(jié)構(gòu),同類之間是順序關(guān)系,上下之間是父子關(guān)系(或者粗細(xì)顆粒度)。

當(dāng)這個(gè)樹(shù)在大腦中構(gòu)建起來(lái)以后,你會(huì)發(fā)現(xiàn)你做什么事情都是有一個(gè)明確的分析和執(zhí)行邏輯,不太可能產(chǎn)生遺漏和混亂!

那么如何訓(xùn)練出自己的知識(shí)樹(shù)呢?我給一些比較有效的實(shí)踐方案:

  • 一定要總結(jié)出自己的知識(shí)樹(shù),而不要盲從書本上的或者別人的,為什么呢?

    一是因?yàn)槿说乃季S速度和習(xí)慣、技能有一定差異,不一定每個(gè)人都是一樣的;二是如果沒(méi)有內(nèi)化別人的知識(shí)成為自己的知識(shí),這棵樹(shù)不太能夠很熟練地運(yùn)用。

  • 習(xí)慣性總結(jié),做完任何一個(gè)事情,都習(xí)慣性地回顧一下,往自己的樹(shù)上面掛新東西,這個(gè)是構(gòu)建知識(shí)樹(shù)的必備手段,這個(gè)總結(jié)不需要花很多時(shí)間,比如做完事情后花個(gè)幾分鐘回顧一下就可以,但是需要堅(jiān)持。

  • 推薦一個(gè)很常見(jiàn)的工具:Xmind,把自己的樹(shù)記錄下來(lái)。

  • 訓(xùn)練自己的思維習(xí)慣和做事方式變得結(jié)構(gòu)化,當(dāng)你做事情的時(shí)候,習(xí)慣性用樹(shù)的方式推進(jìn),強(qiáng)迫自己按照這個(gè)方式來(lái)。

擴(kuò)展性思維:舉一反三,拓展思維

擴(kuò)展性思維的核心目標(biāo)是提升我們思維的廣度,也就是讓我們的知識(shí)樹(shù)變得更加開(kāi)闊。我在工作中總結(jié)出來(lái)的擴(kuò)展性思維的兩個(gè)關(guān)鍵的擴(kuò)展方向:

①舉一反三:解決同類型的 N 個(gè)問(wèn)題

舉一反三的好處是:“我們能否用同樣的知識(shí)和手段去解決類似的相關(guān)聯(lián)的幾個(gè)類似問(wèn)題”,先舉一些案例:

  • 當(dāng)發(fā)現(xiàn)某個(gè)系統(tǒng)的 JVM 參數(shù)配置存在一個(gè)錯(cuò)誤配置,不是僅僅修復(fù)這個(gè)系統(tǒng)的 JVM 配置,而是把負(fù)責(zé)的幾個(gè)系統(tǒng)都檢查一下是否需要統(tǒng)一修改。

  • 系統(tǒng)中存在某個(gè) Bug 導(dǎo)致產(chǎn)生了臟數(shù)據(jù),不是直接訂正已發(fā)現(xiàn)的臟數(shù)據(jù),而是根據(jù)特征拉取出所有的臟數(shù)據(jù),進(jìn)行一次性處理。

這種思維方式的特征是舉一反三,觸類旁通,相當(dāng)于產(chǎn)生批處理的效果,可以大大提升解決問(wèn)題的效率,避免重復(fù)處理。

②尋求更多的可能性:拓展解決問(wèn)題的不同手段

拓展思維常見(jiàn)的手段是:是否能夠換更多的理解方式,或者更多的解法,舉一些案例:

  • 產(chǎn)生故障的時(shí)候,快速止血除了回滾以外,還有哪些方案?如果故障處理經(jīng)驗(yàn)豐富的人一定知道,除了回滾,其實(shí)還有系統(tǒng)降級(jí),運(yùn)營(yíng)活動(dòng)降級(jí)等多種方案。

  • 除了寫更加健壯的代碼,還有哪些手段都可以提升系統(tǒng)的容錯(cuò)性?還有數(shù)據(jù)監(jiān)控,單據(jù)閉環(huán)等多種手段。

當(dāng)解決問(wèn)題的手段更多了,思維就開(kāi)闊了。

抓重點(diǎn)思維:提升效率方便記憶傳遞

當(dāng)我們發(fā)現(xiàn)知識(shí)樹(shù)構(gòu)建起來(lái)以后,怎么樣使得記憶和使用的效率變高?而且對(duì)外傳遞的時(shí)候更加容易讓人理解?

抓重點(diǎn)思維要解決的場(chǎng)景是:

  • 如果每件事情都按照知識(shí)樹(shù)方式做,效率可能不會(huì)特別高,有更快的辦法么?

  • 在對(duì)外溝通表達(dá)的時(shí)候,要表達(dá)核心思想,否則別人會(huì)很難理解你的表達(dá)內(nèi)容;比如大家再晉升答辯、項(xiàng)目匯報(bào)的時(shí)候一定會(huì)有體會(huì)。

解決這兩類困惑,核心思路是要抓住重點(diǎn)和脈絡(luò)。但是抓住重點(diǎn)和知識(shí)結(jié)構(gòu)化之間并不矛盾。

而且我認(rèn)為是有先后次序的,一定要先建立知識(shí)結(jié)構(gòu)化,然后才能從里面篩選出重點(diǎn),否則知識(shí)的體系是不完整的。那么篩選重點(diǎn)的思路有哪些呢?

①歸納法

采用歸納法,把細(xì)節(jié)隱藏掉,呈現(xiàn)知識(shí)的脈絡(luò),這是一種非常好的思路;尤其是大家在準(zhǔn)備晉升 PPT 時(shí),PPT 的每一頁(yè)都需要?dú)w納一個(gè)核心觀點(diǎn),不是全是細(xì)節(jié),這個(gè)非常重要!并且訓(xùn)練歸納的能力,本身就是對(duì)知識(shí)理解深刻程度的一種反映。

②優(yōu)先級(jí)法

優(yōu)先級(jí)策略往往應(yīng)用于在多項(xiàng)任務(wù)之間找到最最關(guān)鍵或者收益最大的那個(gè)任務(wù)項(xiàng)。

比如完成一個(gè)事情可能有若干個(gè)步驟,其中哪個(gè)步驟是最有效的,大致可以做一個(gè)排序。在實(shí)施的時(shí)候,你可以按照優(yōu)先級(jí)去落實(shí)。

但是找到效果最好的那個(gè)任務(wù)項(xiàng),在不同場(chǎng)景下是不同的,跟我們的熟練程度和經(jīng)驗(yàn)有關(guān)。

就像老中醫(yī)把脈,越有經(jīng)驗(yàn)判斷越準(zhǔn),這塊沒(méi)有什么捷徑,只能不斷練習(xí)自己找到哪些任務(wù)項(xiàng)在什么場(chǎng)景下更加重要。

反思性思維:思考哪里可以做得更好

反思性思維是提升知識(shí)質(zhì)量和深度的一個(gè)關(guān)鍵能力。因?yàn)橹挥胁粩喾此疾拍茏屜乱淮卧谏弦淮位A(chǔ)上升級(jí),而不是重復(fù)循環(huán)。

常見(jiàn)的反思案例:

  • 有個(gè)問(wèn)題我查了 2 個(gè)小時(shí),師兄只花了 10 分鐘,這是為什么呢?是他的業(yè)務(wù)比我熟悉?思路比我清晰?還是知道某個(gè)我不知道的工具?一定要找到關(guān)鍵的差異點(diǎn),然后彌補(bǔ)掉這個(gè)差距。

  • 一個(gè)項(xiàng)目做完了,從方案設(shè)計(jì),研發(fā)過(guò)程,質(zhì)量保障上面,哪些地方下次可以做得更好?找到不足,下次避免。

對(duì)于我們技術(shù)團(tuán)隊(duì),哪些內(nèi)容值得反思,我們團(tuán)隊(duì)的經(jīng)驗(yàn)是:

  • 這個(gè)項(xiàng)目商業(yè)價(jià)值 OK 嗎?是否取得了預(yù)期的效果?

  • 項(xiàng)目中我的能力有哪些問(wèn)題,有哪些做得好的和不好的?

  • 系統(tǒng)設(shè)計(jì)的優(yōu)勢(shì)和不足?

  • 項(xiàng)目質(zhì)量保障是否可以做得更好一些?

  • 研發(fā)過(guò)程和項(xiàng)目管理是否有不足?

反思性思維的實(shí)踐,注意有兩個(gè)點(diǎn)比較關(guān)鍵:

  • 反思性思維最重要的意識(shí):做事情的過(guò)程總有優(yōu)化的空間,每次都要有進(jìn)步;如果沒(méi)有這種心態(tài),那么很難持續(xù)地進(jìn)行反思。

  • 反思是一種習(xí)慣和潛意識(shí),可以在不經(jīng)意之間經(jīng)常進(jìn)行,其實(shí)不需要很形式化地花很多時(shí)間,有時(shí)候做完一個(gè)事情,習(xí)慣性思考一下就可以。

鍛煉思考力的有效實(shí)踐

意識(shí)覺(jué)醒

意識(shí)覺(jué)醒是提升思考力最重要的一個(gè)點(diǎn),我認(rèn)為。只要形成了這種意識(shí),就已經(jīng)成功了一半。

很多同學(xué)思維能力沒(méi)有上去,是沒(méi)有意識(shí)到思考力這個(gè)概念,只是機(jī)械地做事情,做事情,做事情……每次都在同一個(gè)思維層次上面轉(zhuǎn)悠,不可能有本質(zhì)的提升。

從初級(jí)工程師,高級(jí)工程師,技術(shù)專家,高級(jí)專家,資深專家……級(jí)別提升靠什么?多接了多少需求?多寫了多少代碼?

這些因素會(huì)有,但是關(guān)鍵因素不是這些,而是思考力在不斷提升,思維方式在不斷進(jìn)化,進(jìn)而導(dǎo)致業(yè)績(jī)產(chǎn)出必變得更加優(yōu)秀,產(chǎn)生的是事半功倍的效果。

能夠堅(jiān)持看到這里的同學(xué),一定是能夠知道思考力的重要性了。

保持信心

現(xiàn)在知道思考力的重要性了,很多同學(xué)可能認(rèn)為自己是一個(gè)不夠聰明的人。為什么我努力了,還是不行?

給大家一個(gè)信心:有位大師說(shuō)過(guò):在相同的文明程度和種族背景下,每一個(gè)正常人的潛意識(shí)與意識(shí)相加之和,在精神能量意義上基本上是相等的。

我?guī)缀踅佑|到的很努力但是成長(zhǎng)速度不快的同學(xué)都是因?yàn)闆](méi)有掌握正確的方法。只要掌握了正確的方法并堅(jiān)持訓(xùn)練,思考力絕對(duì)可以提升。

空杯心態(tài)

思考的過(guò)程其實(shí)是對(duì)人的知識(shí)進(jìn)行不斷刷新和重構(gòu)的過(guò)程,這里一定要保證空杯心態(tài),對(duì)新的環(huán)境,新的理念,新的技術(shù)持開(kāi)放態(tài)度,否則就是自己給自己制造阻力。

思考的時(shí)間從哪里來(lái)

常見(jiàn)的借口是“我連需求都做不完,哪來(lái)的時(shí)間思考”?

訓(xùn)練思考力其實(shí)并不需要太完整的時(shí)間,我的口訣是:“1.利用碎片時(shí)間;2.抓住工作的過(guò)程”:

  • 利用碎片時(shí)間,比如上下班路上的時(shí)間,吃飯的時(shí)候,可以把剛才或者今天的事情想一想,想通了,然后定期匯總一下就可以。

  • 抓住工作的過(guò)程,注意,每次每次出技術(shù)方案,優(yōu)化代碼,排查問(wèn)題,處理故障,準(zhǔn)備晉升……都是一次訓(xùn)練的機(jī)會(huì),在做事情的過(guò)程中就可以思考并快速實(shí)踐。

思考力提升有沒(méi)有什么判斷標(biāo)準(zhǔn)

有的,一般來(lái)說(shuō)思考力有三個(gè)度:廣度、深度、速度,這你自己就能夠感覺(jué)出來(lái)的:

  • 廣度:就是你自己的知識(shí)樹(shù)能夠長(zhǎng)多大的范圍,越廣知識(shí)越淵博;比如從“如何寫一個(gè)多線程程序”,提升到“如何做系統(tǒng)性能優(yōu)化“,再到“如何做系統(tǒng)穩(wěn)定性備戰(zhàn)”,這就是一種廣度的提升。

  • 深度:就是你自己的知識(shí)樹(shù)的葉子節(jié)點(diǎn)有多深,越深對(duì)知識(shí)了解越透徹;比如從“分布式事務(wù)問(wèn)題解決思路”,到“利用最終一致性解決分布式事務(wù)”,再到“利用 DTS 解決分布式事務(wù)”,這就是一種深度的提升。

  • 速度:就是建立和刷新知識(shí)樹(shù)的速度了。比如原來(lái)你想清楚一個(gè)建模方案要一天,現(xiàn)在只需要半小時(shí)可以想清楚,那就是速度的提升了。

好的工具有推薦么

還是推薦一個(gè)工具:Xmind,這個(gè)最土的工具最有效??梢韵螺d手機(jī)版和 PC 版本,隨時(shí)進(jìn)行記錄。

一定要相互分享

思考雖然主要是靠自己,但是一定要相互分享。因?yàn)樗伎际侵橇顒?dòng),相互分享完全能夠取得 1 1>2 的效果。

注意分享可以有很多形式,比如我們團(tuán)隊(duì)最經(jīng)常用的是:

  • 項(xiàng)目分享:重大項(xiàng)目是一定要分享的,包括架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),過(guò)程經(jīng)驗(yàn),質(zhì)量提升經(jīng)驗(yàn),都需要分享出來(lái)。

  • 周會(huì)分享:團(tuán)隊(duì)周會(huì)重點(diǎn)過(guò)進(jìn)度?那太浪費(fèi)啦,了解進(jìn)度和風(fēng)險(xiǎn)看周報(bào)就可以了。周會(huì)是學(xué)習(xí)分享的好時(shí)機(jī),重點(diǎn)就是一些關(guān)鍵的方案,架構(gòu)設(shè)計(jì)理念,好的工具,甚至工作無(wú)關(guān)的內(nèi)容。

  • 群內(nèi)分享:當(dāng)有個(gè)人踩坑以后,在群里面提醒一下大家,這是一個(gè)很及時(shí)的分享方案。

  • 年度/季度分享:這時(shí)候適合找個(gè)風(fēng)景優(yōu)美喝茶的地方,大家講一講自己的成長(zhǎng)和思考,非常有幫助。

  • 小圈子:大家形成自己的小圈子,隨時(shí)都可以相互傾訴一下自己的心得體會(huì),其實(shí)這種效果也很好。

技術(shù) Leader 訓(xùn)練大家思考力的職責(zé)

在技術(shù)團(tuán)隊(duì)中,技術(shù) Leader 的思考力意識(shí)、能力和實(shí)際行動(dòng),決定了一個(gè)團(tuán)隊(duì)的整體思考力水平和成長(zhǎng)速度!

一個(gè)團(tuán)隊(duì)要提高思考和學(xué)習(xí)的能力,首先得這個(gè)團(tuán)隊(duì) Leader 的思考意識(shí)就要提上來(lái),如果團(tuán)隊(duì) Leader 沒(méi)有思考意識(shí),也沒(méi)有把團(tuán)隊(duì)同學(xué)的成長(zhǎng)放在心上,那么整個(gè)團(tuán)隊(duì)的思考力和成長(zhǎng)速度絕對(duì)快不起來(lái)。

在提升團(tuán)隊(duì)整體思考力的實(shí)踐中,技術(shù) Leader 的職責(zé):

  • 先要把自己變成一個(gè)思考者,自己做表率,以身作則。

  • 意識(shí)心態(tài)上先變過(guò)來(lái),要把團(tuán)隊(duì)同學(xué)的成長(zhǎng)速度做為最重要的職責(zé)之一,沒(méi)有這個(gè)意識(shí)都是空談。

  • 多創(chuàng)造思考的條件和氛圍,一定要抓住任何機(jī)會(huì)(代碼 Reivew、方案評(píng)審、周會(huì)都可以)鼓勵(lì)大家去思考和分享。

  • 控制團(tuán)隊(duì)節(jié)奏,給大家學(xué)習(xí)和思考留出一定的時(shí)間。

  • 及時(shí)的引導(dǎo)和示范,有的同學(xué)可能掌握會(huì)偏慢一些,這時(shí)候需要有耐心去引導(dǎo)同學(xué)找到思考的感覺(jué)。

  • 不必過(guò)多干預(yù)細(xì)節(jié),發(fā)揮大家的群體智慧,而不必做過(guò)多干預(yù),更不能以個(gè)人的意志去強(qiáng)迫別人接受。

重要觀點(diǎn)小結(jié)

好了,到這里可以給重要觀點(diǎn)做個(gè)小結(jié),時(shí)間緊的同學(xué)們可以直接讀這一段:

①思考力對(duì)程序員的成長(zhǎng)至關(guān)重要,團(tuán)隊(duì)和個(gè)人都需要有意或者無(wú)意識(shí)地提升思考能力。

②對(duì)程序員最重要的思考力有原理性思維、結(jié)構(gòu)化思維、反思性思維、擴(kuò)展性思維、抓重點(diǎn)思維:

  • 原理性思維是根基,因?yàn)闆](méi)有搞懂的情況下所有的知識(shí)建構(gòu)都是空談。

  • 結(jié)構(gòu)化思維幫助我們建立了我們的知識(shí)樹(shù)。

  • 反思性思維不斷對(duì)知識(shí)進(jìn)行重構(gòu),是實(shí)現(xiàn)認(rèn)知升級(jí)的必備條件。

  • 擴(kuò)展性思維可以提升知識(shí)的廣度和深度。

  • 抓重點(diǎn)思維可以加快知識(shí)的使用效率和傳遞效率。

③在提升思考力的實(shí)踐中:

  • 思考力提升最關(guān)鍵的是意識(shí)的轉(zhuǎn)變。

  • 要對(duì)思考力的提升充滿信心。

  • 多在工作中去鍛煉思考力,不需要花太多額外的休息時(shí)間。

  • 多相互分享。

  • 團(tuán)隊(duì) Leader 要把團(tuán)隊(duì)同學(xué)的成長(zhǎng)和思考力提升作為最重要的內(nèi)容,并拿出實(shí)際行動(dòng)。

作者:巖動(dòng)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美胖熟妇一区二区三区| 日本中文字幕在线精品| 亚洲欧美日本国产不卡| 国产日韩中文视频一区| 年轻女房东2中文字幕| 久草视频这里只是精品| 欧美精品一区久久精品| 欧美尤物在线视频91| 国产免费成人激情视频| 国产欧洲亚洲日产一区二区| 偷拍美女洗澡免费视频| 日韩一级免费中文字幕视频| 精品香蕉一区二区在线| 国产视频在线一区二区| 亚洲欧美视频欧美视频| 大伊香蕉一区二区三区| 99久久精品国产日本| 麻豆一区二区三区精品视频| 少妇在线一区二区三区| 日韩人妻av中文字幕| 日韩国产传媒在线精品| 91欧美视频在线观看免费| 粉嫩国产一区二区三区在线| 亚洲精品福利视频你懂的| 日本高清不卡在线一区| 日韩欧美国产精品中文字幕| 日本黄色高清视频久久| 91欧美亚洲视频在线| 久久综合亚洲精品蜜桃| 国产精品亚洲欧美一区麻豆| 国产午夜福利在线观看精品| 国产不卡最新在线视频| 五月婷婷缴情七月丁香| 国产精品亚洲综合天堂夜夜| 国产精品欧美日韩中文字幕| av一区二区三区天堂| 一级欧美一级欧美在线播| 欧洲一级片一区二区三区| 91人妻人澡人人爽人人精品| 一区二区三区欧美高清| 亚洲色图欧美另类人妻|