網易資深的Java架構師談,菜鳥如何發展成爲架構師

作爲一名程序員,大家都會爲自己未來的職業發展焦慮。

一方面是因爲IT是知識密集型的行業。

知識體系複雜且知識更新速度非常快,“一日不學就會落後”。

另外一方面,IT又是勞動密集型的行業。

從業人員多,個人在平時的開發過程中有大量的重複勞動(如CRUD),能力沒有隨年齡的增加而增長。

這種情況下,就會應驗“35歲就失業”魔咒。

那作爲一名Java開發者,如何規劃自己的職業生涯呢?

一般來說,程序員的技術生涯會分爲技術新人,技術專家,架構師3個階段,這也是我們的成長的路徑。

一,技術新人:夯實技術基礎

對於工作1〜2年左右的技術新人來說,夯實基礎是立足之本。

具體來說,技術基礎的能力尤其反映在代碼品質上。

比如“大段重複代碼”,“極端情況沒異常處理”,“麪條型代碼沒有任何架構”等,都是代碼品質差的表現。

提高的方式比較通用:

看書是最系統的提升方式。比如“Java編程思想”,“Effective Java”等。

在看書的過程中一定要思考能否實踐,比如看到voliate,就要想想能否應用到自己的項目中。

代碼評論是最有體感的提升方式。這個階段一定不要怕丟人。

讓自己組內的大牛來看看自己的代碼,肯定會被批評,但這是成長最快速的方式。

二,技術專家:構建技術深度

技術專家的要求是在技術深度上一定有積累。

但說到技術深度,第一感覺它很玄乎,多深才叫有深度,是不是掌握冷門的技巧就叫深度?

比如:你的同事花費了一週來“重構”代碼。

最後發現,僅僅是換了個語法糖:

把for循環等換成了所謂的函數式編程lambda表達式,而且lambda表達式巨長到無法下嚥;

還有同事在不休止的討論if-else的100種寫法,各種設計模式堆砌,到最後除了他沒有別人能看懂。

很顯然,我們最多會說他們有鑽研精神,語法糖使用的很厲害,但絕不會說他們有技術深度。

很多同學始終無法構建自己的深度。

就在於他們會把編碼過程中的“奇淫技巧”看做是技術深度的體現,把炫技放在首位。

而這種想法顯然是片面的,也是錯誤的。

而真正的技術深度,一般要在學習的過程中思考如下問題:

1.技術誕生的背景是什麼,這是理解技術理念的關鍵。

2.技術的優勢和劣勢分別是什麼,技術沒有銀彈,只有適應場景,在某一方面有優勢,那在其他方面就肯定有劣勢。

3.技術的底層原理和關鍵實現

4.和已有的其他技術相比有什麼不同

提升的方式無非就是多看資料,尤其去看官方英文文檔。

遇到不懂的可以去社區提問,甚至還可以仿照某個技術重新造個輪子(僅供學習之用,不建議工作中重複造輪子)。

技術深度的構建非一朝一夕,如果能按照上面的思路堅持學習三五年,就一定會在某一領域成爲專家。

三,架構師:擴大技術視野

在成爲某一領域的專家之後,想要承擔更大的職責,那麼還需要擴大自己的技術視野,通盤考慮整個業務和系統。

通俗來講,技術視野不僅包含了技術深度,也包含了技術廣度,就是“既見樹木,又見森林”。

尤其體現在技術選型與架構設計這兩個階段。

這個能力也是決定自己以後是繼續當“搬磚工”,還是昇華爲“建築師”的關鍵。

要時刻保持跳出當前層級和環境來思考的習慣。

每個人都有自己的侷限性,每天接觸的技術和工作都是固定的,工作常用的技能隨着時間就熟練了。

比如,你只用了關係型數據庫,有沒有想過數據一直產生,到達TB級別的時候該如何快速檢索與保存呢?

充分利用思維導圖工具,不斷延展知識邊界。

架構師的知識一定是系統化的,當接觸到一個知識點後,要去追尋與現有技術的關係。

這樣就可以將所學知識串聯,從而形成體系。

溝通與交流時提高視野的最快捷的方式。

相信每個人都有感觸,當你偶然間獲得某個知識點後,會不由感嘆:原來如此啊,我還以爲有多難呢。

其實知識不難,就在那裏,只是你沒找到合適的途徑去觸達它。

對於Java的來說,構建系統的化的知識體系可以參考以下腦圖:

最後,在這裏分享一些源碼和Java的核心知識點,可以更好的幫你降低一點門檻。

資料獲取方式:請加JAVA架構技術交流羣:714827309
點擊鏈接加入羣聊【JAVA高級架構技術交流】:https://jq.qq.com/?_wv=1027&k=51OhGuo

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