顛覆平庸:在技術上持續精進

80-20

本文很長,約 9200 字,需要認真閱讀 30 分鐘,趕時間的朋友,看看下面的導圖也會有一些幫助。

轉載請簡信聯系我獲得授權。

你肯定想要顛覆平庸,保持技術精進,但這是一件極其困難的事。正因其困難,本文才有存在的意義——因為它描述一般性方法和原理,你可以從中找出適合自己的地方,付諸實踐,獲得你個人化的精進策略。

本文的結構導圖,方便后面的閱讀:

文章結構導圖

作為開發者,工作了 2~3 年后,往往會感到迷茫:能夠使用一種或者幾種技術解決一些問題了,卻覺得自己停滯了,不知道接下來怎么辦。于是我們有時羨慕做管理的,覺得他們輕松、地位高、賺錢多,有時又羨慕技術大咖,覺得他們能搞定別人搞不定的問題,像神一樣會發光,可是回看我們自己,到底是接著做技術呢,還是轉管理呢?如果做技術,接下來該怎么精進,如果不做,又該怎么轉型?這都是問題……每日煎熬著我們。

我有十幾年的開發和管理經驗,對于開發者的各種迷茫,深有體會。一般來看,開發者的迷茫分兩個層面:

  1. 方向上的迷茫,即我到底適不適合做開發、要不要繼續在開發的路上走下去
  2. 執行層的迷惑,即我繼續做開發,該怎么找目標、學點什么、學到什么程度、如何能一直精進。

我們的 Chat 就從這兩方面來展開,先講如何確認自己是否要繼續做開發,這部分會提供一些方法(比如工作的三種分類、時間感覺、成就感來源、工作感受等),讓大家能夠自我覺知和判斷;然后我們會沿著開發這條線繼續前進,看看如何在技術上持續精進,這部分最重要的是對標管理法及其四種典型標桿;再接下來,我們會講怎樣設定有效目標,找到下一步行動,把精進落地;最后,我們會介紹四個習慣,讓精進成為你自身的一部分。

我要繼續做開發嗎

有幾種方法,可以幫助你判斷要不要繼續做開發:

  1. 工作的三種維度
  2. 成就感來源
  3. 對時間的感受
  4. 對開發工作的感受

工作的三種維度

根據交互對象不同,工作可分為三類:

  • 數據和信息處理
  • 人際互動
  • 事務型操作

開發者偏重與數據和信息打交道,以信息和數據為輸入,也以信息和數據為輸出。

假如你發現自己更愿意圍繞著人際交互來做事情,希望自己的工作中大部分時間都在和人打交道,那可能你更適合做銷售、市場、客服、咨詢師等方面的工作。

假如你發現自己更愿意做操作性的工作,比如修理電腦、組裝電腦、搭建局域網、修理汽車等,那可能軟件開發工作可能不太適合你。

假如你覺得信息很迷人,很享受與信息和數據之間這種確定性、一致性、可預期性較高的互動方式,也很享受通過組織、修改、整合、創造信息來解決問題這種工作方式,那你有比較大的概率是適合做開發的。我們可以繼續往下看,用其它方法來繼續分析自己。

成就感來源

2015 年底創業失敗,我決定找一家單位上班。此時我 35 歲,在很多人眼里這個年齡的程序員已經要被淘汰了。我面臨的選擇是:做開發開始做管理。

從 2009 年開始我就在做技術管理工作,這時比較傳統的做法是,找一個研發經理的職位來做(當時有幾個不錯的機會),一來職業生涯有延續性,而來薪水也高。可是我后來選擇了到全時云商務做開發工作,讓很多朋友大跌眼鏡。

我為什么這么選擇?其中的關鍵點是:我覺得親力親為解決問題更有成就感

回顧我多年的開發和管理經歷,我發現在我寫作《Qt Quick核心編程》時,在我一周 7 天不休息加班加點重構智能機頂盒播放器時,感覺最為充實,最有意義感。而在我做管理工作時,即便帶領團隊完成了某項任務,我也沒什么特別的感覺,即便有一些興奮感和成就感,也很快會被委派任務、一對一談話等事情淹沒。

所以我思來想去,決定做回開發,這樣我更能感受到意義和價值,更有成就感。

每個人的成就感來源都不一樣,假如你像我一樣,High 點在于自己動手解決具體的技術問題,那開發工作就更適合你;假如領導和管理別人完成目標讓你更有快感,那管理工作適合你。

實際上這一點和前面介紹的“工作的三種分類”是類似的。你越傾向于做人際互動類的事情,就越適合做管理工作,你越傾向于和數據、信息交互,就越適合做開發工作。

尋找成就感來源可以遵循下面的步驟:

  1. 回顧你做過的事情,找出那些讓你情感反應強烈的,記錄下來。
  2. 分析你的情緒底色,是快樂、高興、振奮、愉悅、充實等積極情緒,還是沮喪、灰心、挫敗、失落、空虛、失望等消極情緒。
  3. 挑選出帶給你強烈積極感受的事件,它們就是你的成就感事件
  4. 分析成就感事件,看看它們用到了什么知識、技能、軟能力,看看在這些事件中,你印象深刻的交互對象是什么(數據、人、事務)

可能有的朋友會說,即便有這 4 個步驟,也判斷不出來自己的成就感來自哪里,不怕,下面這個簡潔的方法可以幫到你。

對時間的感受

做個小測試,用是和否來回答下面 3 個問題:

  1. 寫代碼讓你覺得時間很難熬,一秒猶如一萬年。
  2. 當你回顧一天、一周、一月的工作,經常后悔自己在開發上投入了太多的時間。
  3. 你覺得花費在軟件開發上的時間沒有什么意義。

如果你的答案是三個“是”,那么,你可能不該再做開發了。如果是三個“否”,那么,再回答下面 3 個問題:

  1. 寫代碼時有沉浸感,感覺不到時間流逝,被中斷時經常有意猶未盡的感覺。
  2. 當你回顧一天、一周、一月的工作,經常覺得自己應該在開發上投入了更多的時間。
  3. 你覺得花費在軟件開發上的時間非常值得。

如果你的答案是三個“是”,那么恭喜你,開發工作是你的最愛,繼續做下去吧,跟隨自己的感覺。你可以跳到“在技術上持續精進”那部分,接著閱讀。

如果你的答案有“是”有“否”或者不太確定,再往下看。

對開發工作的感受

你可以用下面這些問題來探索自己對開發工作的感受:

  1. 看到代碼是否有“似曾相識燕歸來”的溫暖?
  2. 隔一段時間不寫代碼,是否會充滿懷念,有想打開 IDE 寫點什么的沖動?
  3. 是否經常有這樣的時刻:看著自己的代碼,有種“相看兩不厭,唯有敬亭山”的喜悅?
  4. 有沒有那么一些時候,你看著自己的代碼,會不自覺地想:這里或那里改改是不是更好一些?
  5. 當你看到令人眼前一亮的 App 或網站或其它軟件,會不會發出“要是我來做該怎么做”之類的問題?
  6. 你有沒有想讓別人閱讀你代碼的沖動?
  7. 你有沒有讀別人代碼的沖動(想看到更好的代碼)?
  8. 別人指出 Bug、錯誤或設計瑕疵,你會生氣、拒絕還是接納感激?
  9. 修復一個 Bug,你是為這個 Bug 被解決掉高興多一些還是為你的代碼(軟件)更完美而高興多一些?
  10. 聽到新語言、新框架、新系統、開發者大會等相關的消息,你是很想了解還是懶得搭理?
  11. 有技術大咖在你身邊出現時,想去結交還是懶得理他?
  12. 看見別人的爛代碼,你是吐糟真 TM 爛然后繞過還是想擼起袖子把它改好?
  13. 看見別人的優秀代碼,會不會羨慕,會不會想“要是我也能寫出這么漂亮的代碼就好了”?
  14. 當你完成一個模塊、功能、系統,解決一個問題時,是有“快感”、“成就感”還是有“終于交差了”的感覺?
  15. 想到你開發的軟件可以幫助別人解決問題帶來好處你是否感到期待、興奮?
  16. 你是否想建立屬于自己的軟件資源(比如工具、類庫)?
  17. 你是不是像蜜蜂一樣總是把看到的與軟件相關的好東西收藏起來?
  18. 為了可以繼續做開發,你是否愿意忍受一些不愉快的事情,比如領導的批評、客戶的抱怨、需求的變更?

思考這些問題,體會自己的感受。

完成這個練習,根據自己的感受,你就可以判斷出來要不要繼續做開發。

如果通過上面這些方法,綜合分析之后,你發現自己更愿意在開發之路上前進,那 Ok ,咱們接著往下走,看看執行層面上我們該怎么做才能保持精進。

在技術上持續精進

在專業領域成長的一般模型如下圖所示:

精進模型

模型中有三個要素:

  • 現狀
  • 目標
  • 執行計劃

每個人都可以評估自己的現狀,我在做什么、用什么技術、技術達到了什么程度、拿多少薪水、什么職級、是否被領導認可、與人協作是否順暢……有很多維度,靜下心來思考一下,在紙上列一列,就能自己得出當下的狀態。

而目標則很可能隨著舊目標的達成而消失,或者隨著日復一日的編碼、Debug、交付而褪色,或者隨著每個月的薪水蒸發掉。一旦我們失去了目標,就會陷入迷茫,被動工作,進而,慢慢失去競爭力。

所以,要想日有寸進,必須要在日常的開發工作中找到努力的目標。這非常關鍵——很多人就是因為沒有目標而放任自己隨波逐流被動工作最終變得庸常而被他人淹沒或者被組織淘汰。

因此我們引入原本用于企業的對標管理法,幫助自己在日常工作中找到貼合自己的目標。一旦我們找到目標,對比現狀,就可以找到差距和前進方向,有了方向,就可以制定計劃,穩步前進,獲得提升。

下圖是實踐對標管理法指導個人成長的基本過程:

個人對標管理法

以下解釋來自百度百科:

????對標管理,由美國施樂公司于 1979 年首創,均將其視為現代西方發達國家企業管理活動中支持企業不斷改進和獲得競爭優勢的最重要的管理方式之一,西方管理學界將對標管理與企業再造、戰略聯盟一起并稱為20世紀90年代三大管理方法。

????對標管理是指企業以行業內或行業外的一流企業作為標桿,從各個方面與標桿企業進行比較、分析、判斷,通過學習他人的先進經驗來改善自身的不足,從而趕超標桿企業,不斷追求優秀業績的良性循環過程。

????所謂“對標”就是對比標桿找差距。推行對標管理,就是要把企業的目光緊緊盯住業界最好水平,明確自身與業界最佳的差距,從而指明了工作的總體方向。

在針對個人運用對標管理法時,可以從四個方面來尋找標桿:

  • 優秀的人
  • 一般性規律
  • 技術本身的知識層次
  • 項目指標

接下來我們就從這四個方面展開,看看怎么尋找我們的目標。

從優秀者身上找目標

我們身邊一定有人在某方面做得比自己好,比如:

  • 張三設計文檔寫得結構合理、條理清晰
  • 李四 UML 圖表畫得準確
  • 王五對 ES6 標準掌握得好
  • 趙六對代碼管理門清
  • 錢七架構設計能力超群對產品的架構如數家珍
  • 毛八每天上班前都會列出要完成的三件事下班時都會總結
  • 胡九學習新技術特別快總是在項目組中擔任技術預研角色
  • ……

別人做得好的方面,都可能是我們努力的方向。我們要用善于發現的眼睛,找到身邊人的突出之處。

在向優秀者對標時,下面的問題清單可以幫助我們有序地、系統的分析標桿:

  • 他在什么事情上做得突出?是怎么做到的?
  • 他有哪些知識、技能是我不具備的?
  • 他有哪些提升效率的工具?
  • 他有哪些好的工作習慣?

舉個例子。

袁大每天都能準時下班,工作還完成的蠻好。你對這點很感興趣,就觀察他做事,發現他過一段時間就會翻看一下紙質筆記本,或者用筆在本子上記錄點什么,還有,每天下班的時候,他都會在本子上寫點東西。

于是你就跟他聊天,發現他每天下班都會在筆記本上記錄今天完成了什么、遇到了什么問題、明天做什么。還了解到他每天都會早到半個小時左右,利用這半個小時規劃一天的工作。

后來你明白了,袁大培養了一個“早規劃晚回顧”的工作習慣,通過這個習慣,保證每天都有幾件重要的事可做,每天都有目標,有節奏,這樣就可以不慌不忙的工作。

于是你就會思考:袁大的習慣可以不可成為我的習慣?

這個時候,你就找到了一個提升的方向:培養每日完成三件事的習慣。一旦你養成這個習慣,習慣的力量就會幫助你集腋成裘,完成從量變到質變的過程。

再舉個例子。

你發現組里的袁二,排查 Bug 特別厲害,像一休哥一樣,點點頭沉思一下,就可以說出問題所在的地方。即便是別人代碼引入的 Bug ,他也可以很快找到原因——只需要翻翻代碼,和這個人聊幾句。

為什么袁二這么牛逼?

你向他請教,發現他做到了以下幾點:

  1. 對業務特別熟悉,非常清楚某個業務到底是什么,用戶在軟件上怎么使用這個業務
  2. 對業務邏輯和代碼的映射關系特別熟
  3. 愛看代碼,所有人的代碼都看

好啦,正好你總是被 Bug 困擾,往往一個 Bug 能讓你愁煩一個星期,是不是有努力方向啦?

一般性規律

所謂一般性規律,指的是那些通用的,可以指導我們什么時候做什么事情的規律。

舉個例子,舒伯的生涯發展階段理論就是一般性規律,男大當婚女大當嫁也是一般性規律。

對于開發者來講,要關注專業能力成長的一般性規律,即:技術成長三階段。如下圖所示:

成長階段

在技術領域內的成長,基本上都會經歷三個階段:

  1. 專項能力的提升,這是初級階段,你為了做事情,必須先具備某些基礎能力,比如你要學會 Python、Visual Studio、Vue、TensorFlow 、Mybatis 等。
  2. 技能體系的構建,這是中級階段,你擁有了一組技能,圍繞某個方向構建了自己的知識圖譜,能夠用自己的方式來解決問題。比如在C++這個方向上,你用 C++、Qt、OpenGL、libevent、ffmpeg、WebRTC 等組成了自己的知識圖譜,可以勝任流媒體方面的產品開發。
  3. 融合創新,這是高手階段,你具有了豐富的實踐經驗,具備了 T 型知識結構,形成了自己的思維框架和解決問題的框架,能夠融合不同領域的知識,組合各種資源,創造性的解決各種問題。此時你跳出了具體的技術束縛,站在了更高的層面,用底層認知和思維來指導你的工作。

對開發者來講,一年左右經驗,多數人處在第一個階段——專項能力提升的階段,熟悉某種編程語言,可以完成別人安排的一個小模塊的開發。

三年及以上的經驗,就應該進入到第二個階段了。當你在某個技術方向上構建了技能體系,就可以完成相對復雜的工作,可以獨立的做一些事情,甚至可以輔導初級開發者來完成工作。這個時候,你往往已經是團隊里富有生產力的成員了。

五年往上的開發經驗,應該進入到融合創新階段,能夠獨當一面,可以獨立的完成特定項目的評估、設計、技術方案選擇等事情。此時你往往是團隊里的技術領袖或者技術管理者,具有比較大的影響力。

假如一個開發者干上八年十年,還到不了第 3 個階段,可能就需要考慮通過其他方式來提升自己的競爭力,保住自己在團隊中的位置。

這個模型更適合應用開發人員,對于做基礎研究的開發者,比如音頻算法、圖像處理算法等,第三個階段,可能是在他所在的領域內鉆得更深,成為專家。

我們了解了技術成長的三個階段,就可以結合自己的工作情況,判斷自己當下處于哪個階段,該做什么事情。

比如你做了 2 年 PHP 開發,可能你處于從第 1 階段向第 2 階段轉型的過程中,此時提升的方向,就可以考慮和PHP相關的技術棧,比如了解 HTTP 服務器如何和PHP整合在一起,比如了解數據庫,比如了解操作系統,這樣你就可能會定下掌握 LAMP (Linux/Apache/MySQL/PHP)或者 LNMP(Linux/Nginx/MySQL/PHP) 技術棧的目標。

技術本身的知識層次

一門編程語言、一個技術框架,其本身的知識層次,也會有深淺,在學習時,也存在先后順序和一般性規律。從這個角度上講,技術本身的深淺層次,也可以用于個人對標管理。

一般來講,學習一門技術時,有三個階段:

  1. 基礎開發,了解 API,基 于API 開發應用
  2. 熟悉內核及原理,主要是了解框架的設計原理,閱讀源碼,洞悉內在機理
  3. 優化框架,主要是針對框架的已有功能的不足進行完善、優化,或者使用框架提供的機制擴展框架功能,或者對框架進行定制,讓它適合特定情境

我比較熟悉 Qt ,Qt 這個應用開發框架,三階段的劃分可能是這樣:

Qt學習三階段

多數技術框架,通過分析,都可以劃分出類似上面的知識層次和學習階段。

以這個作為對標的標桿,就可以弄明白每個階段應該達到什么程度,還可以定位自己處在哪個階段,當前階段的任務有沒有完成,接下來該該學什么。

項目指標

開發者的工作往往是由一個又一個的項目串起來的,每個項目都會有預期結果,都會界定怎么樣才算是完成,然后會有一系列的指標用于衡量項目做得怎么樣,比 如 Bug 率、延期時間、并發用戶數、持續運行時間、單元測試覆蓋率、安全性等。

我們在做項目時,就可以用這些指標來要求自己,這樣你每個項目都有目標,都可以制定一些策略,幫助自己來實現這些目標。

很多開發者其實不大關心交付時間、Bug率、冒煙測試通過率、并發用戶支持、內存占用、CPU占用、電池消耗等問題,往往是做完了,能跑,就這樣吧。

以這樣的態度來應付開發任務,其實損失最大的是自己,因為你白白失去了鍛煉和提升的大好機會。

如果我們以項目指標來要求自己,把項目指標分解到開發工作中,并且在開發過程中貫徹執行,我們的收獲一定比被動完成任務多得多。

舉個簡單的例子,你用 Java 開發一個電商類的 Android App,內存占用就應當是你關心的一個指標,否則你的應用就會經常出現 OOM 錯誤,嚴重損害用戶體驗,導致用戶大量卸載,最終影響產品的市場。

如果你把內存占用作為重點考慮的指標,你一定會考慮如何使用圖片預縮放、重用、解碼格式、緩存等策略來優化內存占用,甚至你會自己設計一個圖片緩存池或者特殊的 ListView 來專門處理用戶快速瀏覽商品時巨大的內存消耗。

你有了這樣的考慮,做出來的 App 肯定比你從未考慮過內存占用問題而穩定得多。

目標的設定與執行

當我們運用個人對標管理法從人、規律、技術、項目等四個方面找到目標后,還要仔細地考慮兩個問題:

  • 這個目標適合我嗎
  • 如何完成這個目標

適合性評估

先來看看如何判斷某個目標是不是適合我。兩方面:

  1. 這個目標和我的職業規劃是不是一致
  2. 這個目標和我當下的工作是不是可以關聯起來

你所在的團隊里有位什么都可以搞定的全棧工程師,你非常羨慕這樣的人,用對標管理法對他做了分析,發現他的知識圖譜包括HTML、JavaScript、CSS、AngularJS、Node.js、MySQL、Redis、C++等,那么,接下來,你要把他的技能樹作為你的目標嗎?

假如你也想成為一個全棧工程師,那 Ok ,你跟著他學習 JavaScript 前后端開發沒有問題;假如你的目標是成為 WebRTC 領域的專家,那么,他的技術棧,對你幾乎沒什么幫助,參考意義不大。

我們在運用個人對標管理法時,一定要理性,結合自己的長遠目標,否則就會今天想學這個明天想學那個,久而久之什么也沒學透。

如何完成目標

當你選定了與你相關的某個目標,如何完成?兩個關鍵點:

  • 目標必須是有效的
  • 找到下一步行動

1) 有效目標

首先你要確保你選擇的目標是有效的,符合SMART原則:

  • S(Specific):目標必須是具體的,要對標特定的工作指標,不能籠統。比如我要學會前端開發就不具體,而“我要學會 HTML5 、Angular 4、Bootstrap 3,用它們做Web管理界面”就相對具體。
  • M(Measurable):目標必須是可衡量的,衡量的指標是數量化或者行為化的,驗證這些指標的數據或者信息是可以獲取的;比如“ Bug 率控制在千分之三以內”就是可衡量的,而軟件沒問題就是非常模糊的說法。
  • A(Attainable):目標必須是可實現的,在付出努力的情況下可以實現;比如“在兩周內學會 HTML5 、Angular 4、Bootstrap 3”就是不太現實的。
  • R(Relevant):與其他目標有一定的相關性,比如你把代碼規范化作為你的提升目標,就和你日常的開發工作有很強的關聯性;
  • T(Time-bound):目標必須有明確的截止期限。必須的!沒有期限,就沒有目標!

一個有效目標示例:

在三個月內學會 HTML5 、Angular 4、Bootstrap 3,然后用一個月時間,采用 SPA(Single Page Application) 方式,開發清單 App 的 Web 版本,支持登陸登出、任務增刪改、分組增刪改功能,Bug 率控制在千分之三。

1) 下一步行動

單單擁有有效目標,還不夠,我們還要找到可以立即開始的下一步行動!

所謂“下一步行動”,就是某一件事情的下一個可以直接去做的步驟

《小強升職記》中介紹了撰寫下一步行動的四個秘訣:

  • 動詞開頭。一個好的行動應該是以動詞開頭的,比如“打電話給某某”、“準備會議資料”、“回復E-mail”等,以動詞開頭才能保證它具備可執行性。
  • 內容清晰。比如“準備會議資料”,雖然是動詞開頭,但是描述得不是很清晰,“需要準備哪些資料”、“幾點開會”、“會議上要提出什么問題”,這些都需要進一步落實。所以說這樣的下一步行動是失敗的。
  • 描述結果。在任務開始之前對想要的結果進行描述,描述得越清晰,產生的能量就越大。比如你這樣:“早晨9點帶著做好的計劃書在1號會議室討論營銷計劃,說服與會者認同我的營銷方案?!?/li>
  • 設定開始時間、周期、最后期限。在設定了這三個和時間有關的屬性之后,就可以更合理地安排自己的時間,把握行動的進度,照顧別人的時間。

如果你能夠按照上述四個秘訣來擬定“下一步行動”,就有 90% 的可能找到“可執行的下一步”。所謂“可執行的下一步”,往往是簡單到你只需要邁出右腳就行了。假如你還要考慮到底是邁右腳還是邁左腳,就說明你的下一步存在未決因素,不能立刻開始。

下面是幾個下一步行動:

  1. 找到 AngularJS 的官網
  2. 買一本講 AngularJS 開發的書籍
  3. 買一本 JavaScript 的書
  4. 2 個小時完成 Node.js 下載與安裝

當你能從目標分解出能夠立刻開始的下一步行動序列(最少3個),就可以做起來。做完一個,分解一個新的下一步行動,加入到行動序列中,然后開始新的下一步行動。這樣跑起來,你的目標就會穩步實現。

精進的四個習慣

習慣是很強大的力量,要把精進落實到日常習慣中。我個人有這四個習慣,供參考:

  • 對標管理
  • 三個問題
  • 刻意練習
  • 復盤

1) 對標管理

前面我們仔細介紹了個人對標管理法的運用,它應該成為我們的習慣,成為習慣后,我們就可以自發地運用它,隨時找到前進方向。

2)三個問題

參考《Scrum實戰——敏捷軟件項目管理與開發》

在 SCRUM 開發模型中,有個每日站會。每日站會一般早上開,站著開(坐下來會讓會議變長),10 到 15 分鐘。在每日站會上,每個人都要回答三個問題:

  1. 我昨天完成了什么
  2. 我遇到了哪些問題
  3. 我今天做什么

回答完這三個問題,就可以更新看板上的任務狀態,別人也都能了解到你的狀態,如果有需要配合的,也都可以即時做出決定。

這三個問題,不僅僅可用于開發過程,還可以演化成個人的工作習慣,指導我們每天的工作。

我是這么用的:

  1. 每天晚上下班時記錄完成了什么、遇到了什么問題、明天準備做什么。記錄在紙質的筆記本上。
  2. 每天早上正式開始工作前,審視昨天記錄的內容,決定今天要做哪幾件事(最好不要超過三件),今天就聚焦在這些事情上。

非常簡單的,但是好用。堅持這么做,你的工作就會越來越高效、輕松。最重要的是,你會知道你每天都有成就,不會焦慮和恐慌。

3) 刻意練習

參考《刻意練習》

我們可以把刻意練習簡單地理解為四個要素:目標、Focus、Feedback、Fix it。

  • 目標,每一次練習,都要有明確的目標,而且這個目標要高于你現在的能力,需要跳一跳才能夠得著。個人對標管理法可以幫助你找到練習的目標。
  • Focus,指專注地做事,所謂專注,就是方向明確,聚焦當下,心無旁騖,積極努力。
  • Feedback,指反饋。我們在練習時,需要有高人陪伴,需要找到教練,能夠及時給予我們準確的反饋,讓我們知道差距。
  • Fix it,指修正,改善。當我們獲得了反饋后,要根據反饋來改善自己的做法,這樣才能進步。

下面是我繪制的刻意練習循環:

一旦我們養成了刻意練習的習慣,你就可能在很多領域內成為高手。

4) 復盤

參考陳中所著的《復盤:對過去的事情做思維演練》和成甲的《好好學習:個人知識管理精進指南》

所謂復盤,就是在頭腦中對過去所做的事情重新“過”一遍。它通過對過去的思維和行為進行回顧、反思和探究,實現能力的提升。

復盤分兩種:

  • 事件觸發型復盤,比如項目抵達里程碑節點(或重大狀態改變)
  • 周期性復盤,比如周、月度、年度、每五年

下面這個清單,可以作為我們復盤的框架:

  • 項目(事情)預期的目標是什么
  • 現狀如何
  • 執行過程分析
  • 決定是如何做出的,有沒有其他可能

通過復盤,我們可以知道,事情結果比預期好還是壞,在執行過程中,有哪些環節做得好,哪些環節做得差,好的總結經驗指導下次行動,差的反思原因制定提升策略,這樣我們就可以獲得成長。

很多開發者忙于做項目,往往是趕工、交付、開始新項目,很少去思考做過的項目做得怎么樣,什么好什么壞,原因在哪里,怎么改進和提升,陷入馬不停蹄做項目一年經驗用十年的怪圈,多年之后才發現自己的經驗對不起工作的年限。

要告別這種狀況,做項目時可以這樣:

  • 使用對標管理法為自己找到提升目標
  • 通過刻意練習來提升
  • 三個問題讓你每天有目標,實現日有寸進
  • 運用復盤來成長

開始行動!

我們在前面用很長很長的篇幅講了怎樣判斷要不要繼續做開發,介紹了如何使用個人對標管理法找到提升的方向,還剖析了如何設定有效目標,通過找到立刻可以執行的下一步行動來推動精進計劃落地,最后還提出了四個有利于我們長期精進的好習慣,可是,所有這些,沒有你的努力和行動,都沒卵用!

知道和做到之間,有一道鴻溝,你只有積極行動跨越它,才可能收獲更好的職場,成長為你想要的樣子。

所以,開始吧!立刻!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容