一、背景
在阿里雲開發者社區看到《我的Java 打怪日記》徵文活動,徵文的主題中就包括了“我眼中的大牛”,對此非常感興趣。希望可以藉著這個機會寫一下我眼中的大牛:孤盡老師。
寫孤盡老師的主要原因是我認為孤盡老師影響和幫助了很多人。
本文將講述自己和孤盡老師的一些“接觸”,我眼中的孤盡老師是什麼樣的人,以及自己從孤盡老師身上學到了什麼。
二、時間線
下面是和孤盡老師“接觸”的時間線:
第一次知道孤盡老師還是在《阿里巴巴 Java 開發手冊》發佈的時候,當時第一時間下載並打印出規約的 PDF 版,認真拜讀了好幾遍。後來出了紙質版,第一時間購買。
後來,聽說孤盡老師要出《碼出高效》,當時在雲棲大會上現場發佈,當時託學弟專程去現場第一時間進行購買,並讓孤盡老師幫忙簽名。
後來得知孤盡老師網上辦了一個公益的培訓 “DIY 班”,在高家祺學弟的推薦下加入了 DIY 學習群,更近距離接觸孤盡老師。
開始見到 DIY 的口號就被深深吸引,非常好奇,看公告才知道其真正含義:
其一,Deeply Inspire Yourself
深度激發自己
其二,Do It Yourself
實踐出真知
參加 DIY 班,每一段時間都有一份作業,有很多種淘汰機制,如晚於某天幾點交淘汰,最後一個交淘汰,寫得最差的淘汰等,非常驚心動魄。
雖然每一期都會有人淘汰,但是正是因為這種淘汰機制,才能夠淘汰掉一些不夠堅持的人,只有有危機感才能更認真地對待 DIY 的每一份作業。
只有珍惜機會,有毅力的人才更容易走到最後。
很多次作業孤盡老師都會給予點評,每次都會定好鬧鐘準時參加,即使在路上也要堅持參與。
最後經過不斷淘汰,剩下 12 位同學組成兩組設計錯誤碼系統,我們小組最終獲勝,拿到了 DIY 班畢業證書和獲勝團隊獎杯。
後面也看了孤盡老師一些公開的文章和視頻,參與了部分直播。
出於對孤盡老師的崇拜,今年換工作優先考慮阿里巴巴,最終成功面試通過順利入職。
可惜的是,還沒入職孤盡老師就從阿里離職了,不過後面或許還會有很多和孤盡老師接觸的機會。
三、我眼中的孤盡老師
在我看來,孤盡老師是一個極具技術熱情和分享精神的技術人;是一個非常善於思考問題本質並且能夠有很強執行力的人。
通過自己的出書和直播等引燃了很多熱愛技術同學的熱情;通過分享自己的經驗讓更多地人少走了彎路;通過傳授學習和思考的方法,提高了一些同學的進階速度。
孤盡老師就像一盞明燈點亮學習之路上的漫漫夜空,就像一杆旗幟引領我們學習的方向。
四、 從孤盡老師身上能學到什麼?
所謂,授人以魚不如授人以漁。
孤盡老師更多地是傳授方法和思考,我認為這對一個人的影響更大且深遠。
不管是孤盡老師主動傳達的,還是我們主動從孤盡老師身上學到的,這都不重要。
重要的是我們能否意識到自己的不足,能夠從優秀的人身上學到了多少,能夠改變多少。
4.1 技術熱情
通過孤盡老師寫《阿里巴巴 Java 開發手冊》、《碼出高效》和辦 DIY 班,看孤盡老師的一些技術文章和參與孤盡老師的一些直播分享等,能夠明顯感受孤盡老師對技術的熱情而且極具分享精神。
在內網也看到孤盡老師發表的一些文章,在其中一篇文章的評論中有同事提到很久之前孤盡老師分享給他一份自己總結的經驗對他幫助非常大。
孤盡老師能夠將趟過的坑整理出書,可以幫助很多新手避坑。《碼出高效》在我眼裡已經成為國內 Java 學習的經典教材之一。
孤盡老師應該是想通過寫書或者直播的方式影響和幫助到更多的人。
我自己也一直堅持寫博客(博客名為:明明如月學長,博客閱讀量 300多萬,有 5000多個粉絲),也出過技術專欄(訂閱量 5000份以上)。主要想通過寫博客、專欄等幫助自己更系統地理解知識,記錄自己這些年的成長曆程,此外也希望能夠通過自己的博客幫助別人少走彎路。
由於自己對技術也一直有熱情,而且喜歡分享,從孤盡老師身上更能夠找到一些共鳴。
我想,應該正是因為這一份技術熱情,讓孤盡老師從新手走向大牛,從自我提升再到幫助他人提升。
4.2 學習之法
下面是在其他平臺上看到的孤盡老師對“成為 Java 大神必備哪些條件” 進行了回答。
重點講到具備的技術體系中虛的和實的部分,在這裡就不再贅述。
但是我們不僅要知道學什麼,還需要知道如何高效學習,需要知道學習如何學習。
孤盡老師之前有提到,關鍵在於結構化思維、知識內化的能力和保持好奇心、求知慾和靈感等。
4.2.1 學習四部曲
DIY 班前幾次作業孤盡老師就強調大家要重視 “快速學習的能力”、 “學習如何學習的能力”、“舉一反三的能力”。
很多人缺乏快速學習的能力,面臨未知的問題非常恐懼,沒有掌握好的方法學習緩慢。
不知道大家是否意識到這個問題,其實很多人從小學到大學,甚至到碩士、博士一直都在學習,但是我們很少去思考“如何學習”。
孤盡老師提到學習的四部曲:記憶、理解、表達和融合。
沒有規律的記憶很容易遺忘,沒有理解很難內化,通過表達可以強化認知,通過邊學邊實戰才能融會貫通。
因此我們通過反覆學習,將知識進行整理幫助記憶;通過和自己已經有的知識體系相關聯來理解;通過以教為學,寫博客、做分享來強化自己的認知;通過在實踐中有意識地運用來實現對知識的融會貫通。
如果我們可以將自己所學進行歸納和整理,不斷深化都某一塊知識的理解,並且工作中逆向演繹去運用。
下圖為自己對性能優化的思考(圖片大小有限,做了摺疊):
下圖是自己對讀源碼的一些思考:
大家可以通過思維導圖整理自己的知識體系並不斷豐富和修改進行完善(不知道你注意觀察會發現,大多數人作思維導圖是不會去更新的,其實這也就意味著思想的深度沒有增加)。
4.2.2 費曼學習法/以教為學
從孤盡老師的分享中可以看到以教為學的費曼學習法的影子。
其實很多人都會有類似的體會:當你準備要做某個分享,你會查很多資料,對某個問題重新整理,對該問題的理解就會特別深入,當分享完畢別人的提問可能還涉及到你沒有真正搞清楚的點,再研究又會有新的發現。
此外,一個技術或者理論,只有能用通俗易懂的語言進行描述,才代表自己真正理解了它。
當我們想學習某個技術和知識時,不妨採用寫博客、寫公眾號、視頻分享或者直播交流等方式來強化學習效果。
4.3 思維方式
看孤盡老師的一些文章就可以感受孤盡老師具有“本質思維”(不僅知道表象,更重視思考本質)、“結構化思維”(問題考慮地非常全面)、“覆盤思維”等。
4.3.1 本質/原理思維
花半秒鐘就看透事物本質的人,和花一輩子都看不清事物的人註定有截然不同的人生。
孤盡老師有一篇提到同步和異步、阻塞和非阻塞和並行和串行的概念,其中講到同步和異步是函數調用視角;阻塞和非阻塞是線程視角;並行和串行是 CPU 視角。短短幾句話點透了問題的本質,讓我茅塞頓開。孤盡老師的很多文章和直播對某些問題的分享都能夠一語中的,醍醐灌頂。
《碼出高效》中關於浮點數的表示、HashMap 的源碼解讀等地方無不體現深挖原理的思維。
我們學習技術時,不僅要知其然,還要知其所以然。
學習某個技術時要主動學習原理,只有學習原理才更容易複用,更有價值,才更能夠拉開和別人的差距。
在面試阿里時體會更加深刻,面試知識點和項目時,面試官更重視你是否知道為什麼這麼設計,是否明白底層原理。
4.3.2 結構化思維
再比如一次關於無人機容災作業,很多人都是這想一點,那想一點不夠系統、不夠結構化。這次作業點評中就提到如何用結構化思維來分析問題。比如從事前、事中和事後的角度,比如從技術、商業等角度更全面地分析。
我們要學習結構化思維,遇到問題時主動地從時間、空間、邏輯關係等維度,通過金字塔原理、5w1h、zoom in / zoom out 等方法去分析問題。
人總是有思維慣性,不敢輕易離開舒適區,不敢嘗試新鮮事物,這反倒是成為我們成長進階的重要阻礙。結構化思維需要反覆實踐,才能真正掌握。
4.3.3 覆盤思維
之前孤盡老師分享了一篇《阿里技術專家:一文教你高效畫出技術架構圖》,讓大家寫一下自己能夠從中學到什麼。後面又一次作業還是讓我們重新讀這篇文章,寫寫自己有沒有不一樣的收穫。
然而,部分同學的兩次作業思考的深度幾乎都一樣。
然後通過兩次作業對比,驗證是否有更深入地思考。
正如那條物理學慣性定律所描述的那樣:“一切物體在沒有受到外力作用的時候,總是保持勻速直線運動狀態或靜止狀態”。其實人也是這樣,人的思維也有慣性,正是思維的慣性讓一個人很難有突破或改變,沒有覆盤就很難意識到問題,就沒有尋找解決辦法的可能。
通過覆盤,可以發現自己做的好的不好的點,梳理出哪些需要繼續堅持,哪些需要放棄,哪些需要新增的措施,從而指導未來的學習和工作。
通過 PDCA 循環(具體自行百度),不斷檢查原有計劃的結果,找到癥結,進行改進,進入新一輪的循環。
4.3.4 跨學科思維
孤盡老師在一些直播中也提到過“哲學思維”,之前也看過一些很牛逼的技術文章,解釋原理時可以上升到哲學高度,非常佩服。
自己曾經也嘗試過將技術上升到哲學思維。比如整數溢出其實和傳統哲學中的“物極必反”、“否極泰來”的思想相一致和馬克思主義哲學中矛盾對立統一的思想相一致。
比如“文章都是改出來的”、“優秀的系統都是演化而來的”,這和生物學的進化論非常相似。
《阿里巴巴Java 開發手冊》也出了很多版,不斷添加新的內容,這也符合哲學中的事情是變化發展的原理,要求我們用發展的眼光看問題,堅持與時俱進。
此外,前面結構化思維為什麼那麼受推崇,為什麼能夠幫助我們更全面地看待問題,底層和物理學的“熵增理論”有著密切的聯繫。
"熵”是對系統的混亂程度的度量,熵值越高越混亂無序,熵值越低越有序!
因為它揭示了宇宙演化的終極規律。 這個規律包括我們所有生命和非生命的演化規律,生命裡又包含著個人和群體的演化規律。
非生命:比如物質總是向著熵增演化,屋子不收拾會變亂,手機會越來越卡,耳機線會凌亂,熱水會慢慢變涼,太陽會不斷燃燒衰變……直到宇宙的盡頭——熱寂。
生命與個人:比如自律總是比懶散痛苦,放棄總是比堅持輕鬆,變壞總是比變好容易。
只有少部分意志堅定的人能做到自我管理,大多數人都是作息不規律,飲食不規律,學習不規律1。
其實結構化思維就是通過多種維度/視角/方法將知識結構化,從而對抗熵增的過程。
一些經典的設計原則,如單一職責、開閉原則、依賴倒置等,再如各種各樣的架構和理論,都是在“減熵”,減少無序、降低複雜度。
“人活著就是在對抗熵增定律,生命以負熵為生。” --《生命是什麼》,薛定諤
其實系統又何嘗不是,系統的一次又一次優化和重構,其實就是不斷對抗熵增的過程。
當我們從技術角度找不到更好地解決方案時,我們可以考慮從生物學、物理學、哲學甚至心理學等學科尋找啟發,多一種學科思維就多一種接觸問題本質的途徑。
大家感興趣可以多看看其他學科的圖書,把這些學科最基本的原理梳理出來,在學習、工作和生活中嘗試結合運用。
4.4 做人做事的態度和超強的執行力
雖然很多直播都是公益的,但是孤盡老師對每一次作業點評都有所準備,比較認真。
對於 DIY 班觸犯淘汰規則的同學都能夠嚴格淘汰(雖然有些時候很可惜)。
孤盡老師出版《阿里巴巴 Java 開發手冊》時也收到了很多質疑,但還是頂住了壓力,堅持做自己,最終也受到了廣泛認可。
我們做人要鮮明,做事要有執行力。
想要有超強的執行力的一個重要前提還是前面提到的技術熱情,還要做好時間管理,並且要應用一些技巧,比如更低的門檻、更小的阻力、更正向的反饋等。
4.5 提升軟技能
在 DIY 班畢業作品時,給了下面的點評:
一、信任是什麼?(信任是主動的,單向的)
二、透過現象看本質。(需求背後的都是人性)
三、解決問題的能力。(定位問題更加重要)
四、效率是什麼?(效率是單位時間你幹了別人兩倍的活)
五、完成比完美更重要。(代碼是改過來的,架構是演進出來的)
六、新技術的恐懼,是IT從業者的命門。(回顧第一節課:學習如何學習的能力,快速學習的能力)
七、提升抗壓能力。(抗壓能力是事業的基礎)
八、演講能力,限時演講。(通過關鍵詞來帶動演講節奏)
其中第二條透過現象看本質和前面講到的“本質思維”是一致的。
從上面的點評中我們還可以看到很多軟技能方面的內容,如培養抗壓能力,提升演講能力等。
技術是我們安身立命的根本,但一定不是全部。
剛開始工作,技術方案什麼可能都是已經給設計好的,不需要特別注重思考和溝通。
隨著工作年限的增加,你越來越發現很多問題不僅是技術問題,還可能是產品問題,商業模式問題等。
之前一個主管也講過,當 TL 的未必都是技術最強的,但一般都是綜合實力最強的。
除了技術之外,我們還需要培養文檔編寫能力、溝通表達能力、項目管理能力、培養產品思維、團隊管理、時間管理等。
至於如何提升這些軟實力,需要大家有意識的去針對不同的模塊讀一些書,查一些資料,多做一些實踐,量變引起質變(又是哲學)。
五、總結
本文重點談了自己和孤盡老師的一些“接觸”,自己眼中的孤盡老師是什麼樣的人,以及自己從孤盡老師身上學到了什麼。
希望能夠幫助大家從我的視角瞭解孤盡老師,也希望大家能夠通過我對孤盡老師的介紹學到一些東西。
我們在進階之路上要主動向身邊優秀的人學習,取長補短,才能更快進階。
你身邊是否也有 Java 大牛呢?他給你帶來什麼樣的啟發?
如果本文對你有幫助,歡迎點贊、評論,你的支持是我創作的最大動力。