技術修煉之道:
德雷福斯模型:所有專業人員都需要經歷 5 個成長階段,不管是醫生還是律師,或者是軟體開發,任何專業技能的從業者都需要經歷新手、高級新手、勝任者、精通者、專家 5 個階段,如下

- 新手:通常一個人進入專業的技能領域,即使在學校已經系統學習過這個專業的相關知識,但依然無法獨立完成作業,必須在有經驗的同事指導下,學習相關的技能,這里主要學習的是有關作業的規則和套路,比如用什么工具、什么框架,如何開發程式,如何開會、寫周報,如何和同事合作,業務領域的名詞術語是什么意思等等這些各種各樣和作業有關的大小事情
- 高級新手:是新手的自然延續,他不需要別人指導作業,也不需要學習作業的規則和套路,因為高級新手已經在新手階段掌握了這些套路,他可以熟練應用這些規則套路完成他的作業,但是高級新手的能力也僅限于此,他不明白這些規則是如何制定出來的,為什么使用這個框架開發而不是另一個框架,也不明白這個框架是如何開發出來的,一旦需要解決的問題和過往的問題有很大不同,以前的規則套路無法解決這些新問題的時候,高級新手就抓瞎了,不知道該怎么辦
- 勝任者:少部分新手和高級新手會在作業中學習、領悟規則背后的原理,當需要解決的問題變化,或者行業出現技術革新時,能夠嘗試學習新技術,解決新問題,勝任者作業的一個顯著特點是,做事具有主動性,他們在遇到新問題時,會積極尋求新的解決方案去解決問題,而不是像高級新手那樣,要么束手無策,要么還是用老辦法解決新問題,使問題更加惡化,勝任者能夠解決新問題,但他們通常只會見招拆招,局限于解決問題本身,而缺乏反思精神以及全域思維
- 精通者:擁有反思精神和全域思維,即使沒有新問題也能夠進行自我突破、尋求新的出路的人,通過主動學習進行提升,主動進行大量的閱讀和培訓,而不是僅僅依靠作業中的經驗和實踐,他們在完成一個作業后會反思:哪些地方可以改進,下次怎么做會更好,擁有自我改進能力
- 專家:把過往的經驗都融匯貫通,然后形成一種直覺,他們直覺地知道事情應該怎么做,然后用最直接、最簡單的方法把問題解決,專家通常也是他所在領域的權威,精通者和勝任者會學習、研究專家是如何解決問題的,然后把這種解決方案形成套路,成為行業做事的規則
如何在作業中成長
- 用于承擔責任:如果你只是去遵循別人的指令,按別人的規則去做事情,你永遠不會知道事物的真相是什么,只有你對結果負責的時候,在壓力之下,你才會看透事物的本質,才會抓住技術的核心和關鍵,才能夠讓你去學好技術,用好技術,在團隊中承擔核心的技術職責和產生自己的技術影響,并鞏固自己的技術地位
- 在實踐中保持技能:不斷超越自我,挑戰自我的作業,也就是說,每一次在完成一個作業以后,下一次的作業都要比上一次的作業難度再增加一點點,不斷地讓自己去挑戰更高難度的作業,從而擁有更高的技術能力和技術認知,多實戰、多思考、多總結
- 關注問題場景:善于根據問題場景發現解決方法的那個人,如果你關注場景,根據場景去尋找解決辦法,也許你會發現解決問題的辦法可能會非常簡單,也許并不需要多么高深的工具和方法就能夠解決,基于場景尋找解決方案
技術等級

二八原則,80% 的工程師處在這個金字塔最底層,全世界絕大多數的代碼出自這一層的工程師之手
- 團隊影響者:剩下的 20% 技術人員中的 80%,也就是總數為 16% 的工程師,他們是專案架構師、技術經理、技術骨干,他們撐起了專案的技術核心,在專案范圍內決定著各種技術方向,核心的代碼由他們開發,出了重要的問題也要找他們去解決,這樣的人,在一個 10 人團隊中,大約有一兩人
- 公司影響者:大約占總數的 3.2%,他們決定整個公司的技術方向,用 Java 還是用 PHP?用 MySQL 還是 SQLServer?微服務用 Dubbo 還是 Spring Cloud?在一個有 300 名技術人員的公司,這樣的人大約有 10 個,他們通常是公司的技術元老,在公司的技術團隊中擁有較大知名度的技術牛人
- 全國影響者:通常來自知名的 IT 互聯網公司,傳播最新技術動向的人
- 全球影響者:跨越國界傳播技術動向,在這個技術影響力體系里面,越往高,背景越重要,你是誰不重要,你代表誰更重要
- 關鍵開創者:開發了一些關鍵性的技術產品的人,比如一些廣為使用的 JSON 決議器、單元測驗框架、分布式快取系統
- 領域開創者:開創了一個領域,比如 Spring,構建了一個完整的 Java web 開發技術堆疊
- 行業開創者:Hadoop 成就了大資料行業,Linux 引領了作業系統行業,Linus、Doug Cutting 這些人就是軟體技術領域的王者
構建技術影響力
- 承擔責任:重大的技術決策可能會帶來重大的技術風險,要有勇氣承擔風險,并因此贏得他人的尊重
- 幫助他人:團隊成員遇到技術問題的時候,即使不是自己的作業范圍,也可以幫助他們去解決問題,一方面建立自己的技術影響力,另一方面,通過解決問題獲得更快的技術成長和領悟
真正的問題
小故事
北歐有一個度假勝地,是歐洲人民夏天避暑度假的好去處,去度假勝地需要經過一個長長的隧道,隧道的工程師為了保證隧道的安全使用,在隧道入口處立了一塊牌子,寫著:請打開車燈,游客們開著汽車,打開車燈,穿過隧道,到達度假勝地,愉快地去玩耍了,而等他們要回去的時候,有些人卻發現車子無法啟動——他們忘記關閉車燈,汽車電池耗盡了,小鎮的警察們只好開著自己的警車四處為游客們充電,疲憊不堪,而沮喪的游客們則在回去以后四處抱怨,分享他們糟糕的旅游經驗,導致小鎮旅游業大受影響,鎮長壓力山大,于是人們找到隧道的工程師,要求他在隧道的盡頭再立一塊牌子,寫上:請關閉車燈,工程師照做了以后,卻發現麻煩來了:夜晚穿過隧道的游客看到牌子,雖然非常疑惑,但還是按照指示關閉了車燈,結果卻發生了車禍,麻煩更大了,于是工程師不得不寫上:如果是白天,請關閉車燈,結果有的游客沒看到隧道入口的牌子,卻看到了隧道出口的牌子,同樣疑惑,為了解決新問題,工程師不得不在牌子上繼續寫下去??
這個場景和軟體工程師們日常的作業場景是不是很相似?總有客戶、老板、產品經理過來跟你說,這里需要這樣一個按鈕,那里需要這樣一個功能,你照做了以后,發現帶來了更多的麻煩,為此,你不得不在代碼里不斷地寫 if/else,你不是在解決問題,而是在制造問題
-
不要把方案當做問題的定義,而忽略了真正要解決的問題是什么
- 不需要解決別人的問題,只需要提醒他問題的存在
- 魚是最后一個看到水的,身處問題之中的人往往并不覺得有問題
如何解決問題
- 如果某人能夠解決問題,但他自己卻感受不到我那題,那么就讓他感受一下
- 用人的最高境界是用上司
- 要批評而不是責難,對事不對人(直言有諱)
- 以贊成的方式表示反對,反對一個技術方案的時候,他先是表示贊成,然后從設計、價值幾個方面快速說幾個比較好的點,接著,將話題轉換:“但是,我還有幾個小小的疑問和建議
- 如果想解決一個大家都不關注的我那題,那么試試讓問題變得更糟(亡羊補牢)
- 如果不填老師想要的答案,你就是個傻瓜
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/50503.html
標籤:其他
上一篇:創建精靈的幾種方式:有什么差別
