20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

技術不斷迭代,掌握其中一門技術就可以悠閒到老麼?盲目搬磚就能以量變換取質變麼?世界的快速發展,本質是什麼?如何鑑別出有潛力的技術?如何突破自身學習和能力的瓶頸,更好做到自我管理?

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

本文來源雲加社區(ID:QcloudCommunity)

本文是左耳朵耗子老師在「雲加社區沙龍 online」的分享整理,詳細闡述了技術人應如何面對焦慮,把控技術,更好適應未來技術發展的衝擊。

從我二十多年的工作經歷來看,期間經歷了很多技術的更新換代,整個技術模式、業務模式也是一直變來變去。

所以我針對這一話題,談一談技術人員應該怎樣適應這樣一種變化?

第一,如果想要把控技術,應對這個世界的一些變化,需要大致知道這個世界的一些規律和發展趨勢,另外還得認識自己,自己到底適合做什麼?

在這個趨勢和規律下屬於自己的發揮領域到底是什麼?這是我們每個人都需要了解的。

第二,打牢基礎,以不變應萬變,不管世界怎樣變化,我都能很快適應它。

第三,提升成長的效率,因為現在社會的節奏實在太快了,比二十年前快得太多,技術層出不窮,所以我們的成長也要更有效率。

效率並不單指的快,效率是怎麼樣更有效,是有用工除以總工,怎麼學到更有效的東西,或者怎麼更有效學習,是我們需要掌握的另一關鍵。

認識世界,瞭解自己

①世界發展的大趨勢

首先要認識這個世界發展的趨勢,人類社會目前處於第三次工業革命期間,信息化革命也正在進行。

第一次工業革命是蒸汽機時代,即用蒸汽機代替勞動力。第二次工業革命是內燃機,電力被髮明也在第二次工業革命。

第三次工業革命就是今天,主要是以信息化、原子能還有空間技術以及一些生物應用工程等。

我們可以看到,這三次工業革命圍繞著都是能源的迭代、能源的升級。從蒸汽時代到內燃機時代,再到原子能。

②技術演進的規律

為什需要這些動力和能源?因為人類發明各種機器都是需要能源和動力的,所以從蒸汽、內燃到電力、原子能都是在不停的解決怎樣讓機器動起來的問題。

要讓機器動起來必須有一個外力,所以能源變成很重要的事情,機器可以不知疲倦的做,但是能源要跟得上。所以解決能源問題就是為了解決機器的自動化。

今天的信息革命其實也是在解決自動化,只要能夠被數字化了,就可以實現自動化。

以通訊為例,最早是飛鴿傳輸、然後是無線點播傳輸,到現在通過互聯網通訊,都是在解決自動化,自動化的過程就是隻有機器在不知疲倦工作。

自動化可以帶來規模化,規模化可以帶來成本極度的下降和效率極大的攀升,工業革命其實基本上都在幹這些事。

接下來關注信息化革命,信息化革命分成三個階段:

1990 年代到 2000 年,這個時代叫兆比(MB)時代,是雅虎、新浪、搜狐、網易門戶網站的時代,這個時代就是 SP 互聯網提供商,把一些資訊數字化,然後發佈到網絡上。

2000 年到 2010 年,這個時代叫多媒體或者是 UGC 時代,上網開始變得普遍了,每個人手裡的數碼設備開始變得多了起來,可以上傳照片,可以上傳視頻,甚至可以在網上做社交。

從 2010 年到 2020 年,這過去的十年是移動互聯網時代,移動互聯網只需要手機在線,不需要依靠電腦。

因為手機隨時在線,所以個人的各種各樣的數據始終在被收集,只要用戶上網就會產生數據,所以人的行為最終也被數字化了。

下一個十年,也許把手機丟了都可以。即使手機扔了,照樣可以數字化,這是因為線下有很多攝像頭、互聯網也可以虛擬化人類的很多行為。

整個世界的大趨勢基本上就是解決能源和自動化。我們瞭解到這些東西就可以知道未來世界會向什麼方面變化。

過去用機器代替牲口,或者代替人類操作。比如說織布機,一個人可以管幾百臺織布機,數控機床以前靠人操作,後來數控就不需要人了,這是數字化帶來的一個更好體驗。

說得好聽叫解放生產力,說難聽點就是讓人失業,但是是讓勞動密集型失業,未來卻可能會讓知識密集型失業。

有一些知識密集型崗位,比如律師,未來是比較容易失業的,一些低端、中端的律師會被算法和機器取代。

因為律師行業裡面很多東西是比較教條、公式化的,所有的案例、法律都是公開的,這些東西是可以被機器快速學習的。

技術的演進規律基本是自動化加規模化,從而降低成本,提升效率。這就是為什麼世界變得越來越快,人類都快跟不上節奏的原因,主要是整個社會不斷被機器、數據所驅動。

③技術世界的組成

技術世界是怎樣組成的,最大的基礎是什麼?一般是理論,首先理論得突破,理論突破以後,產生質變就能到下一個層次,理論突破了,就會有產生一些技術的基礎,這些短期看起來可能賺不了錢,但是沒有這些東西后面就轉不了。

像操作系統,操作系統並不解決人類的業務問題,但是如果沒有操作系統,沒有網絡,上傳應用就不會存在。生存技術底層技術就像高速公路一樣,是不可或缺的。

不同人有不同的能力,不同的人有不同見解,不同的喜好。能看懂理論就進入理論,能深入底層原理就到技術那邊去,想解決某項問題,提升效率就去發明工具。

還有產品,產品是用戶體驗,想要提升一些體驗可以去做產品。項目基本上是為了完成一或解決一個具體問題,項目可能是這些技術工種裡面最接近需求的,但是也是技術含量比較低的,生命週期可能會較短一些。

這個生命週期不是項目,操作系統任何產品都有生命週期,但是理論、基礎技術、工具它們所需要的基礎沉澱或者這方面技術人員的生命週期會比做項目的人員的生命週期要長。

分工也是這麼來的,不是說做前端、後端、算法等這些基本的分工,而是更抽象的分工,這個分工是看每個人的能力還有他的個人喜好,這個世界就這麼分出來的。

④世界需要的人才

這個世界需要什麼樣的人?我們需要勞工,勞工能使用技術就好了。還有另外一種是技工,技工不但是使用技術,還可以把活兒做好,這是有技能的勞動力。

勞工就是勞動力,勞動就好了,重複勞動。勞工最大的問題很有可能會被淘汰,因為他是在做一些重複勞動,做這種重複勞動的人很容易被淘汰。

技術工人能夠把技術弄好了,活兒做好,他屬於一種手藝人,隨著技術門檻的下降他可能就會被淘汰掉。

特種工人是必須瞭解原理和解決難題的一類工人,他們是解決比較難的、特定的一些技術問題。

當一種技術被淘汰,他並不容易被淘汰,因為他懂原理,原理就是解決問題的能力,是解決問題的套路和方法。

關於設計和架構,設計和架構人員主要是開發一些工具,提升效率和提升用戶體驗,提升穩定性、性能、代碼重用等,總的來說就是為了降本增效。

這一類人的工作降低了技術得到門檻,他們把技術門檻降低了以後,就可以把這個技術普及開來,就可以由廣大勞工、技工、特殊工人使用了。

對於經理,經理主要是創造利潤,組織團隊。不同的場景下,經理也需要不同的技能。比如說創造利潤,不同領域不同玩法,包括組織團隊也是一樣。

不同時代帶人也是完全不一樣。就像我們 70 後和今天 00 後、90 後怎麼帶他們,完全是兩碼事。因為大家背景不一樣,經歷不一樣。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

這就是我總結的世界需要哪些人才,我們瞭解這些東西以後大概就明白應該如何適應這個世界的變化。

④技術領域的 11 個等級

下圖所示是谷歌的 SRE 評分卡,這個評分卡主要把谷歌內部技術領域分 11 個等級。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

我們可以看到:

  • 0 等級對於相關領域不熟悉,屬於剛入門。
  • 1 是讀懂這個技術的基礎知識,能讀懂技術基礎就已經不錯了。
  • 2 可以實現小的改變,有小的動手能力,並能夠在簡單指導下找到更多的細節,只要簡單指導一下就能跑了,有靈性。
  • 3 基本懂這個領域,完全不需要別人幫助。
  • 4 對於這個技術領域非常熟悉,可以完成日常工作,這基本需要有一定的經驗的。對於這個技術領域有非常底層的深入和了解。
  • 5 基本上能夠解決很多難題,相對前面的 0123 登記基本可以看做是勞工和技工層次,345 可以達到特種工人層次,到 678 基本就屬於設計和架構了。
  • 6 是從零開發大規模系統,掌握底層和內部系統。
  • 7 是瞭解和利用技術和相關原理,從根本上自動化大量的系統管理運維工作。
  • 8 是對於邊角技術有深入瞭解,能夠設計部署並負責關鍵大規模基礎設施,並且構建自動化設施。這裡面的關鍵詞是基礎、底層原理、自動化,這些東西是我們科技工作者或者程序員的技術特徵,跟前文的分析是一致的。
  • 9 和 10 是能夠在該技術領域出本書,到理論級了,並和標準委員會的人一起工作,瞭解相關的標準和方法經典的書,不是隨便寫的書,至少要像 TCPIP 級別,或者像 Linux 高級編程,這種經典圖書或者是教科書。或者是能夠發明技術,這樣的人已經走在絕大多數人前面了。

⑤認識自己

我們除了要了解這個世界大概的一些趨勢,還需要了解自己。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

如果你需要能夠扛得住變化,首先你要找得到自己特長。你要認識自己的特長,找到自己的天賦,找到你在 DNA 裡比別人強的東西,就拿你的 DNA 跟別人競爭就好了。

所以你要找到自己可以幹成的事,找到別人找你請教的事,你身邊人找你請教就是說明你有特長。這是找到自己特長非常非常重要,揚長避短。

如果你沒有找到自己特長,就找自己有興趣的東西。什麼叫興趣?興趣是再難再累都不會放棄的事。如果你遇到困難就會放棄不叫興趣,那叫葉公好龍。

如果你沒有特長,沒有興趣就要學方法。這種方法就是要有時間觀念,要會做計劃,要懂統籌、規劃。

對於做過的事情,犯過的錯誤多總結,舉一反三,喜歡自己找答案,自己探究因果關係,這是一些方法,自己總結一些套路。

如果你沒有特長,沒有興趣,也沒有方法,你還能做的事就是勤奮,勤奮註定會讓你成為一個比較勞累的人,也是很有可能被淘汰的人。

隨著你的年紀越來越大,你的勤奮也會越來越不值錢。因為年輕人會比你更勤奮,比你更勤奮、比你鬥志更強,比你能力更強,比你要錢更少的人會出現。勤奮最不值錢,但是隻要你勤奮至少能夠自食其力。

以上就是為了應對未來技術變化,作為個人必須要從特長、興趣、方法一層一層篩選挖掘,如果沒有這些你就要努力和勤奮。

從我個人而言,我不算是特別聰明的人,但自認為對技術還是比較感興趣的,難的我不怕。

有很多比較難啃的技術,聰明點的人啃一個月就懂了,我不行,我可能啃半年。但是沒有關係,知識都是死的,只要不怕困難總有一天會懂的。最可怕是畏難,為自己找藉口,這樣就不太好了。

打牢基礎,以不變應萬變

①基礎緣何如此重要?

前面提到的谷歌評分卡中,我們看到了許多基礎原理方面的內容,其實要應對未來的變化,很重要的一點就是無招勝有招,以不變應萬變。

世界變化都是表面的東西,內在的東西其實並沒有太多的變化。理論層面上變得不多,反而形式上的東西今天一個花樣,明天一個花樣,所以如果要去應對這種變化,就一定要打牢自己的基礎,提升內功休養。

比如像編程的一些方式和套路,修飾模式原理本質,解耦,提升代碼的重用度等。

提升代碼重用度必須解耦,要跟現實解耦,提升抽象,這些都是一些技術基礎。無論用什麼語言,都是這麼做的。

打牢基礎就可以突破瓶頸,不打牢基礎沒有辦法突破瓶頸。在技術世界不要覺得量變會造成質變,這是不可能的。

技術這個東西就像砌磚頭蓋房子,按照砌磚頭方式做代碼你不行的,因為你不懂原理,你沒有辦法成長上去的。

所以你必須學習基礎的理論知識,如果不學這些基礎理論知識,你在表面,當這個技術有變化,就會發現以前學的都沒用了,要重頭學一遍。

掌握技術推理可以讓自己找到答案和知識,基礎是抽象和歸納,很容易形成進一步的推論。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

我們學的很多技術實現都逃不脫基礎原理,不管是 Java,還是其他語言,只要用 TCP 用的都是相同的原理,逃不出範圍,只要抓住原理,甚至還可以自己推導一些技術。

②什麼才算是基礎技術?

一些技術,比如程序語言,像 C 和 C++,原理主要就是編譯、內存管理、指針等。Java 語言原理基本是在虛擬機 JVM、垃圾回收、JVM 字節碼等。

Python 基本在解釋器,Go 語言就是併發,基本都是這些,內存是怎麼管的,Java 裡面為什麼沒有指針,Java 虛函數是什麼意思?......

你需要了解重要類庫的事件,它的數據結構是紅黑樹,還是哈希表?還有代碼設計,併發、異步,編程範式、設計模式。

操作系統就是計算原理,Linux、網絡協議、還有數據庫,像數據庫設計的範式,後臺原理都要搞清楚。

中間件 Kafka 是什麼原理,你要了解裡面的原理,還有一些東西巨耗內存。網管代理,調度系統等等,理論知識算法和數據結構......

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

前文所述,這個世界一直在做自動化,所以未來一定會自動化一些知識,因此算法和數據很重要,數據庫設計範式、網絡模型這些都是理論知識,理論知識可以讓你從本質瞭解很多的東西。

這些知識其實就是一個計算機科學專業的學生他所要學習的原理,除了中間件可能學校沒有教,但是一般學生時代學這些東西也沒必要,我們的一些學校教得也很糟糕,一些老師可能都不行,他怎麼能教學生呢?

而且教學生的書都是自己寫的,凡是世界上最優秀的教課書不用了,一定要自己寫一本。

我自己就遭遇過這樣的經歷,丹尼斯 C 語言程序設計不用了,一定要自己弄一本,譚浩強的語言設計,我也不明白為什麼這樣,人家好的不用,非要用自己的,然後裡面錯誤百出。

拿不出原汁原味的東西,你的學習效率一定是下降的。在大學基本都是這樣的。這些基礎技術大概需要四五年的時間堆疊。

我工作二十年了,這二十年來基本還是這些原理沒變,無論形式怎麼變,但是核心永遠還是這些,理論創新很難,這是以不變應萬變。

③如何識別好的技術?

有了這些理論知識以後,離實際操作還會有一些距離。現在技術這麼多,什麼才是好技術?

首先了解這個技術解決什麼問題。如果這個技術能解決很普遍的問題,那麼這個技術可能就很牛,如果這個技術只是解決很小眾的問題,這個技術可能也就隨之小眾。

技術一定降低技術門檻,提高開發效率,或者提升穩定性,基本所有的技術更迭都是為了這些東西。所以,技術越普遍越好。

Lisp 大家都說很好,但是 Lisp 解決的只是一種理論上的問題,其實並不具有普遍性。我們可以學 Lisp,但是你要指著它吃飯就不太行了。

我們需要提升什麼樣的能力?能夠進行更為複雜的計算?能夠自動化更為複雜和困難的事情,基本上所有技術都是這樣按這樣的方向發展的。

哪一些技術有潛力能成為主流技術?好的技術不一定能成為主流技術。成為主流技術特徵通常來說有三點:

  • 有大公司背書
  • 有殺手級的應用
  • 有強大的社區

這樣的技術 Java 稱得上是第一,所有大公司都在 Java,而且 Java 有前端、有手機端、有後端,各種殺手級應用一堆又一堆。

還有強大的社區,而且 Java 是企業級的,所以可以看到像交易型的系統基本都是 C、C++、Java 這條線還有多 .NET 也是這條線,要用開源,生產率還想高一點、系統穩定點就用 Java。

還有像 Go 語言,也有大公司背書,殺手級應用,社區也比較強大,社區把各種 Java 中間件往 GO 語言遷移,這些都是大技術。

那麼 PHP 怎麼樣,Node.js 怎麼樣,這些都是腳本型語言,腳本型語言我並不覺得有多好。

PHP 未來也不會有太多的可能性。它們倒是降低技術門檻了,但是其實並不能解決更復雜的問題。要用 PHP 搞架構也挺困難的。

為什麼 Java 更容易做架構,因為一般來說一個架構系統通常要有通訊系統,很多人覺得架構就是搞好這些系統和通訊。

系統間的通訊就是一個系統集成,架構裡面還有控制系統,像服務畫像、一些配置管理和配置中心,還有一些網管、流量分發,還有一些調度系統,控制系統和一些流量分發系統。

還有像 DIVE 的 CICD 就是切流量的,還有數據系統,一個架構基本有控制系統、流量系統、調度系統、狀態系統、數據系統很多系統組成,以及通訊系統。

Java 社區裡面這些東西最全,所以使用 Java 就比較方便。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

我們怎麼把控技術,怎麼識別什麼是“好的技術”。不是學術上的好,而是能夠更為實用、務實的技術。

作為程序員,技術不是職業,我們還是要甄別更為普及的,更為易用比較廣的技術。

但是無論怎麼樣,基礎技術都是基本不變的。所以可以看到很多高級公司不是特別看重你用什麼語言,像微軟、谷歌、Facebook 等基本都不是很看重,但是要員工把基本原理弄明白,因為這是你是否能成長的重要依據。

提升自身成長效率

技術在不斷更新,我這二十年基本也都是在不斷追趕,如果你跟進慢了肯定就不行,所以必須要跟進的快一些。

首先要有學習的效率,怎麼樣提升你學習的效率,你若是學習效率提不上來,其實時間一長了就會被甩到後面去了。

下圖展示的是學習金字塔,如果你採取的是聽講得到形式學習,最後可能只有 5% 的知識留存。

你自己讀書可以留下 10%,看一些視頻有 20% 留下,看別人演示做一遍有 30% 留下......

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

為什麼這些效果都很差呢?因為這些都是屬於被動學習,不經過自己的思考就是被動學習。

但是主動參與學習,比如說在討論組裡面積極的跟別人討論問題能夠留下 50%。如果你能夠做出實踐,親自踩踩坑,就會留下 75%。

如果你教別人,就有 90% 知識留存,所以學習知識的過程可以想象一下講給其他人聽的過程。

學習方法

學習方法要主動學習,主動學習我們稱之為深度學習,如果你不能深度學習,即使十年時間花費出去,也沒有任何意義。

①挑選一手知識和信息源

對於學習方法:第一我們一定要到知識源去挑選知識,知識信息源非常關鍵,二手信息丟失太大了,譚浩強寫的書就丟失太多信息了。

目前計算機一手知識基本都是國外的,所以英文非常重要。我鼓勵大家一定讀第一手的資料。

如果你英語有問題,至少要看翻譯過來,最好是原汁原味翻譯的,不要我理解了給你講那種,那種也是被別人嚼一遍再講給你。

你沒有體會,而是別人帶著你,別人的體會會影響你,也許你的體會會比他更好,因為是你自己總結出來的東西,所以知識源很重要。

②注意原理和基礎

第二要注重基礎原理。雖然可以忘記這個技術,但是原理記在心裡,我可以徒手實現出來,而且通過原理可以更快學習其他類似的技術。所以原理很重要!當你學會 C、C++ 要學 Java 和 GO 都很快。

③使用知識圖譜

一定要學會使用知識圖,把知識結構化。大家都說 C++ 最難學,C++ 三大塊,第一是解決 C 語言的問題,第二面向對象,第三是 STL;C 語言有指針問題、有宏問題。

對於 TCP 協議,首先第一個要記住狀態圖,怎麼建立連接,怎麼斷連接,狀態怎麼變遷。TCP 沒有連接,是靠狀態維護連接的。

其次,要了解 TCP 怎麼保證可靠性,就是丟包以後怎麼重傳。

然後,重傳會帶來擁塞控制,發的速度和收的速度不一定對等,或者網絡上的速度不一定對等,涉及到擁塞控制。

這就是 TCP 基本三大塊,順著這個脈絡一點點往下想,比如說怎麼做擁塞控制,滑動窗口消息技術,怎麼測試重傳等等類似這樣的有很多算法。所以你用知識圖關聯就可以進行順藤摸瓜。

不需要記所有知識,那些手冊的知識不需要記,你知道在哪裡能找到就可以了。

你腦子裡面要有地圖,學一個東西就跟在城市生活一樣,閉上眼睛就知道地圖,A 點到 B 點怎麼去大概方向要知道。

我在北京我去廣州,廣州在南邊,我大概坐飛機還是火車要心裡有數。雖然不用記住所有的細節,但是大概知道我去找誰,我就可以知道怎麼找到那個地方。

你不需要記住所有知識,記住大概地圖,要記住基本的方法和原理,知道在哪裡可以找到他就可以了。

④學會舉一反三

舉一反三,就是用不同方法學一個東西,比如說學 TCP 協議,看書是一種方法,編程是另外一種方法,還有用做 Debug 去看的,用不同方法學一個東西會讓你更加熟悉,你學一個知識的同時把周邊也學了。

比如說學前端能不能把 HTCP 學一下,比如說長連接、短連接,包括 hp1、hp2 有一些不一樣的東西。

⑤總結和歸納

一定要學會總結和歸納,形成自己的思維框架、自己的套路、自己的方法論,以後學這個東西應該怎麼學。

就像學一門新的語言,不管 GO 語言,還是 Rust 語言,第一件事情就是了解內存是怎麼管理的,第二是範性怎麼管,併發怎麼弄。還有一些抽象怎麼弄,比如說怎麼解耦,怎麼實現多態?

套路這種東西只有學的多了以後才能形成套路,如果你只學會一門語言不會有套路,你要學 C、C++,每年學門語言,不用學多精。

你思考這個語言有什麼不一樣,為什麼這個這種有玩法,那個有那種玩法,這些東西思考多了套路方法論就出來了。

比如說 Windows 和 Linux 有什麼不同,Linux 和 UNIX 又有什麼不同?只有總結自己的框架、套路和方法,這些才永遠不會被淘汰。

⑥實踐和堅持

剩下就是多做多練,多堅持,只有實踐才會有經驗,只有鍛鍊了才能夠把自己的脂肪變沒,所以要把知識變成技能必須練,就像小學生學會加減乘除,還是要演練,必須多做題,題目做得多了,自然掌握得好。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

要挑選好的知識源,注重原理技術,有一些原理的基礎的書太枯燥,但是我告訴你學習基礎太值得投入時間,搬磚賺幾十元不值得,因為賺的是辛苦錢,老了就賺不了,必須要賺更有能力的錢,這是學習投資。

主動管理

關於成長我們還需要主動管理,不主動管理會導致什麼結果呢?被動管理,天天被人追著,沒有效率。

所以要學會主動管理,要想應對未來,把控變化,不主動管理,就不會有好的效率,因為被動就會被別人牽著鼻子走。

①管理時間

主動管理第一是要學會時間管理,不要被別人打斷。如果你要幹一個很重要的事情,建議開啟手機勿擾模式,或者直接把手機關機。

如果有一些重要的事就通知大家我現在幹什麼事情,從幾點到幾點需要全身心不要打擾我。

像我以前在一些大公司裡面,如果我不想被別人打擾,就發郵件,就說不要打擾我。我害怕別人止不住打擾我,這是非常重要的。

你一天會領到很多作業,有很多事情要做,我的經驗就是最短作業優先,有一些不是最緊急先做,我覺得先做短的,短的很快搞完了,後面會有大塊大塊時間,為了省出大塊大塊時間,要把這些短作業清一遍。這些短作業其實最討厭。

抓重點,一天干不了太多事情,所以一定要抓最重要的事情。另外想清楚再做,慢一點,欲速則不達,快速做完了要返工,又被別人管理。

你做不好,別人天天打擾你,這個問題,那個問題,你怎麼主動管理?主動管理時間就是想清楚再做別返工。

②管理需求

管理需求,通過了解“XY 問題”,可以讓你減少很多工作量。“XY 問題”就是有個人在網絡上問別人,我怎麼截取字符串最後三位?很多人提供了各種辦法,然後相互爭論哪種辦法更好。

這個時候有個人提問:“為什麼截取字符串最後三位?”,提問者說:“因為我要拿文件名擴展,就是操作系統文件擴展名”,那個人說:“操作系統文件擴展名不一定三位,有可能兩位,有可能四位,有可能不知道多長”。

這就是“XY 問題”,這個世界絕大多數給你 X 問題,就是告訴你字符串最後三位怎麼解,但是其實 X 問題是什麼?

文件名擴展。這種問題太多了,產品經理和領導經常性不會告訴你 X,他就會覺得 Y 可以解決 X,他屏蔽了很多信息,讓你做 Y,你不知道怎麼做,做出來以後達不到效果又讓你改。

X 問題其實很重要。產品經理給你的需求很多,需要問他為什麼做這個,要達到什麼目標,做成什麼效果?

然後你再告訴他,要達到這個功能為什麼用這個方法,為什麼不用一個更好的方法呢?這就是主動管理。

③管理上級

另外要學習抓重點,區分必要性和科學性。需求有一些東西不一定要一次做好,有時候先抓最重點的,多問問為什麼要做,解決什麼問題,達到什麼目標。

管理好需求,實在忙不過來說只能做三個需求,撐死了要做第四個需求,如果讓我一個星期做五個,我可能保證不了質量了,出了問題你們自己要擔著,就是出 Bug 什麼的。

這個就是向上管理。向上管理不是說讓你說“不”,我們永遠不要說“不”,說“不”以後不管上級和用戶都會討厭你,但是我們要說有條件的“是”。

我們要給多個選項,你讓我一週做五個需求,要給他三選項:

  • 我一週做不了五個,我可以做三個,然後我做哪三個,抓重點。
  • 給我兩人,我做五個,你看行不行?
  • 一週可以做五個,但是質量不保證,可能會有很多的 Bug,你願意不願意接受?

他把球扔給你了,你再把球扔出去,壓力給到他,讓他一起跟你承擔這個壓力,怎麼讓他一起承擔這個壓力呢?這就是條件。

要把條件甩給他,我肯定做,但是你要承擔這個條件,就是上去承擔做事情的後果,要麼給我時間,要麼就犧牲質量,又好又快肯定需要條件。如果不費口舌,未來就會累得要死,一定學會費口舌。

④管理爭論

第四是管理爭論。有時候爭論不休是挺痛苦的事情,你說服不了他,他說服不了你,這個事情到老闆那邊去了,老闆也說不清楚,所以說主動說服對方是很重要的事情。

你要站在很高的格局,找到一些數據說服對方。更高的格局什麼意思呢?他來找你實現需求 ABC,你要跟他說,我們更高的格局是什麼?用戶要滿意,用戶要滿意肯定不是 ABC,可能是 XYZ,這就是更高的格局。

如果只是在這些細節糾纏,其實誰也說服不了誰。比如說用戶是更高的格局,老闆來了,CEO 來了也幹不過用戶,因為用戶是掏錢的。所以站在用戶的角度會是比較好的,站在掙錢角度也是格局比較高的地方。

所以如果你想提升你的效率,你就需要主動管理時間,主動管理工作,主動管理你的上級甚至你的平級,甚至你的用戶,還要管理好你的爭論。

20年工齡技術大牛的肺腑感言,字字珠璣!(萬字總結)

當你全面主動操控這些事情的時候,別說技術把控力了,其實你已經在在 PUA 他們,在精神控制他們。

否則你是被他們在 PUA,996 就是一種 PUA。所以主動管理誰的效率高,主動人高,被動人一定低。

總結

所以我們看學習方法包括整體提升效率,基本都需要主動,我們的學習要變主動,找一些方法,我們的管理也要變主動,找一些方法。

往大的方向,我們需要看到整個世界的發展趨勢,往小的地方,平時留意整個公司的發展趨勢。整個公司是業務是什麼?怎麼進行的?創造什麼價值?解決什麼問題?這些都是很實在的。

當你知道了這些東西以後就會潛移默化改變你的選擇你的選擇,你行為方式,你的決定,包括你挑選什麼樣的技術等。

再結合你如何認識你自己,你有什麼樣的特長,你感興趣的東西,你懂什麼樣的方法,你知道往什麼樣的地方付出.....

這些問題合起來就可以找到自己的一條路,在自己最適合的領域上。最後你還需要有一些比較科學的學習方法,還有一些比較科學的獨立的管理方法,這樣就可以面對焦慮、把控技術。

簡介:MegaEase 創始人,騰訊雲最具價值專家(TVP)。資深程序員,酷殼 coolshell.cn 博主。前亞馬遜高級研發經理,阿里巴巴資深架構師技術總監。目前創業,公司 MegaEase 創始人,致力於為企業用戶提供一個可以不改一行代碼就可以提高系統性能和穩定性的產品,即 Cloud Native 和微服務調度。


分享到:


相關文章: