這纔是高手!Java大牛騰飛指南

這纔是高手!Java大牛騰飛指南

編者有言:每個大牛的誕生都是從菜鳥起步的,只是在成長的過程中,他們爲自己設立了長期而鑑定的奮鬥目標,梳理了清晰而受用的知識架構。用這種知識框架去按部就班地成長,每個人都有成爲大牛的可能。本文就將展示一種知識體系的構建方法,希望能夠對你有所幫助。

面試的時候,我會問面試者,你日常如何構建自己的知識體系,如何讓自己更高更快更強?多數工程師並沒有深入地思考過這個問題,基本上是零敲碎打,隨機性大,基本上是腳踩西瓜皮滑到哪裏算哪裏。

本着不能讓你白來一趟的精神,我會用本文詳細說明:

第一階段:認真構建完整的知識體系

十幾年前我投身軟件行業的時候,光是講解數據庫原理、操作系統、TCP/IP、組網、算法等等基礎知識的英文原版書摞起來就等身,認認真真看完,各種上手實踐,入行後,讀遍 C++ 各種經典著作,讀遍各種協議原文,認認真真打基礎。

很多工程師都說自己平常就是在某些 IT 門戶上看看推薦的博文或新聞,我說這屬於典型的零敲碎打,不夠刺激。

聊到這時,我會舉一個例子,爲什麼要閱讀長篇小說,因爲中短篇小說就像用針扎你,而長篇小說就像把你裝進一個沙袋裏吊起來,從四面八方用狼牙棒打你,酣暢淋漓。構建可用的知識體系,就得讀書,書是有體系結構的,你關心不關心,現階段你用到用不到,它都講到了,從頭到尾看幾遍,針扎得透透的。

何謂知識體系?

曾就職於阿里、蘇寧易購等一線互聯公司,十餘年Java從業經驗,系統架構師及微服務之先驅,JEECG急速開發框架的設計與佈道者。重點關注微服務設計與編排、高併發架構設計與重構、國內外前沿開源技術封裝及引進等領域的Peter老師曾經在我們公司做過技術人員如何規劃自己的分享講座,他是這麼論述的:

技術與技巧包括:

架構師築基

成爲一名優秀的架構師之前,必須熟練Linux操作系統,從JVM內存模型到深度優化實戰,從Java程序性能優化過渡Tomcat、Mysql深度優化實戰,從Netty框架入門使用到Netty源碼解讀實戰,讓併發編程與你的應用業務場景結合更緊密,系統性能直線提升上千倍,全面學習架構築基專題,從性能調優到併發編程,逐步脫變成優秀的Java架構師。

這纔是高手!Java大牛騰飛指南

開源框架解析

源碼解讀是一位合格架構師的必備技能,站在更高的角度來分析及解決技術疑難問題;
首先要學習開源框架的常用設計模式及經典設計思想,紮實源碼內功基礎,學習大牛們源碼設計思想及技術規範,從源碼學習過程中提升個人技術審美觀及架構設計思想。然後以以Spring5與Mybatis的基礎應用編碼爲起點,尋找底層源碼切入點,讓開源框架底層技術不再神祕。

這纔是高手!Java大牛騰飛指南

高性能架構

熟悉大牛的源碼框架後,接下來我們進入高性能架構專題學習,從傳統技術架構到大型互聯網架構的演進過程,如何將傳統軟件技術昇華到高併發高性能的互聯網技術。從高性能架構技術的基礎入門,到技術架構的逐步進階,再到技術架構的高級專題,最後通過多個實戰環節將所有技術點鞏固加強,在高性能架構技術的深度及寬度上得到跳躍式提升,成爲互聯網企業的核心技術人才。

這纔是高手!Java大牛騰飛指南

微服務架構

在高併發的應用場景下,微服務技術是互聯網平臺必選的架構技術,目前國內較流行,用得較多的有Spring Boot, Spring Cloud, Duboo。從底層源碼透析每個開源框架的設計模式及設計思想,還有Docker虛擬化技術等等,使用微服務改變互聯網系統的併發瓶頸,讓你的平臺開發更加高效、快捷。

這纔是高手!Java大牛騰飛指南

團隊協作開發

高速發展的互聯網生態環境下,除了擁有優秀的架構技術之外,高效快捷的團隊協作開發技能必不可省,優秀的架構師如何爲企業減輕成本,如何更高效高質量的完成系統。

這纔是高手!Java大牛騰飛指南

B2C商城項目實戰

有了互聯網熱點技術,一個真實的互聯網項目可以讓你把所學的熱點技術由點到線,由線到面,將所有技術聚集到實戰的環境,最終將技術點和項目實戰真正變成自己的本領;分析B2C項目的每一行源行及設計規範,對Nginx、 Redis、Docker、Mq等技術學而致用,用而不忘,具備獨立的架構設計與開發能力。

這纔是高手!Java大牛騰飛指南

以上其實就是一份從業基礎知識清單,你可以按圖索驥,閱讀相關書籍。

第二階段:順着一個Topic鑽進去鍛鍊自己的預研能力

無論公司業務還是自己喜歡做的事,都可以抽象出通用性課題,然後以做論文的方式殺進去。這個事情得反覆操練,有意識操練。

做事方式爲:

  • 抽象出 Topic:如分佈式鎖,分佈式並行計算引擎,防CSRF的FormToken自動生成框架,定時任務管理與調度平臺,分佈式跟蹤,等等
  • 向功課好的人學習:有針對性地深入瞭解業界其他公司是如何分析問題和解決問題的,彙總各種方案,站在巨人的肩膀上
  • 分析特定應用場景、技術選型
  • 兼顧高可用性和可伸縮,做設計評審
  • 做測試自證靠譜,梳理知識點,開技術分享會
  • 上線商用,總結經驗教訓,開經驗分享會

其中一個重點是彙總和分享。05年時,應電信級統一消息業務需要,我去研究了 SIP 協議,做了各種試驗,分析報文,寫了一系列的幻燈片,做了公開分享,一時間還頗受歡迎:

  • SIP_to_Freshman_by_zhengyun.ppt
  • SIP之穿越NAT_by_zhengyun.ppt
  • SIP體系架構講義及消息交互演示_by_zhengyun.ppt
  • SIP多方會話消息之實例講解_by_zhengyun.ppt
  • SIP安全框架之認證[NTLM和Kerberos]_by_zhengyun.ppt
  • SIP消息之逐項講解_by_zhengyun.ppt

爲什麼要寫出來、講出來呢?

因爲有一個學習金字塔理論,如下圖所示:

這纔是高手!Java大牛騰飛指南

  • 我們讀過的事情能夠記住學習內容的10%,
  • 我們聽過的事情能夠記住20%,
  • 我們看過的事情能夠記住30%,
  • 我們聽過和看過的事情能夠記住50%——如看影像/看展覽/看演示/現場觀摩,
  • 我們說過的事情能夠記住70%——如參與討論/發言,
  • 我們說過和做過的事情能夠記住90%——如做報告,給別人講,親身體驗,動手做

這也就是我強調的管理方法:我們從入職之後就有意識地訓練大家,讓大家能夠公開陳述、清晰表達。所以,試用期內,新人必須做一次技術分享和一次技術評審,面對各方的 challenge;預研的中間和結尾都要有分享會;平時也要定期組織技術講座。

第三階段:瘋狂回答技術問題

知識體系慢慢構建,與業務相關的抽象 Topic 也在探索中。

但這還不夠。

因爲你親身接觸到的世界太小,可能不足以構成挑戰,你可能意識不到自己缺多少知識和技能,不利於你分析問題、提出問題和解決問題的能力培養。

所以,要主動出擊——瘋狂回答問題。

你學過的每一樣東西,你遭受的每一次苦難,都會在你一生中的某個時候派上用場。
——佩內洛普·菲茲傑拉德 《離岸》
Everything that you've learnt and all the hardships you've suffered will all come in handy at some point in your life.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章