畢業5年的同學突然告訴我,他已經是年薪50W的Java架構師了
作為一名程式設計師,都會對自己未來的職業發展而焦慮。一方面是因為IT作為知識密集型的行業,知識體系複雜且知識更新速度非常快,“一日不學就會落後”。
另外一方面,IT又是勞動密集型的行業,不僅業人員多,而且個人在平時的開發過程中有大量的重複勞動(如 CRUD),自己的能力沒有隨年齡的增加而增長。
這種情況下,就會應驗“35歲就失業”魔咒。
那作為一名 Java開發者,如何規劃自己的職業生涯呢?一般來說,程式設計師的技術生涯會分為技術新人、技術專家、架構師3個階段,這也是我們的成長的路徑。
技術新人:夯實技術基礎
對於工作1~2年左右的技術新人來說,夯實基礎是立足之本,具體來說,技術基礎的能力尤其反映在程式碼品質上。比如“大段重複程式碼”,“極端情況沒異常處理”,“麵條型程式碼沒有任何架構”等,都是程式碼品質差的表現。提高的方式比較通用:
看書是最系統的提升方式。比如《Java程式設計思想》、《Effective Java》等。在看書的過程中一定要思考能否實踐,比如看到 voliate,就要想想能否應用到自己的專案中。
程式碼 Review是最有體感的提升方式。這個階段一定不要怕丟人,讓自己組內的大牛來看看自己的程式碼,肯定會被批評,但這是成長最快速的方式。
技術專家:構建技術深度
技術專家的要求是在技術深度上一定有積累。但說到技術深度,第一感覺它很玄乎,多深才叫有深度,是不是掌握冷門的技巧就叫深度?比如:
你的同事花費了一週來“重構”程式碼,最後發現,僅僅是換了個語法糖,把 for迴圈等換成了所謂的函數語言程式設計 lambda表示式,而且 lambda表示式巨長到無法下嚥;
還有同事在不休止的討論 if-else的100種寫法,各種設計模式堆砌,到最後除了他沒有別人能看懂。
很顯然,我們最多會說他們有鑽研精神,語法糖使用的很厲害,但絕不會說他們有技術深度。很多同學始終無法構建自己的深度,就在於他們會把編碼過程中的“奇淫技巧”看做是技術深度的體現,把炫技放在首位,而這中想法顯然是片面的,也是錯誤的。
而真正的技術深度,一般要在學習的過程中思考如下問題:
技術誕生的背景是什麼,這是理解技術理念的關鍵。
技術的優勢和劣勢分別是什麼,技術沒有銀彈,只有適應場景,在某一方面有優勢,那在其他方面就肯定有劣勢。
技術的底層原理和關鍵實現
和已有的其他技術相比有什麼不同
提升的方式無非就是多看資料,尤其去看官方英文文件,遇到不懂的可以去社群提問,甚至還可以仿照某個技術重新造個輪子(僅供學習之用,不建議工作中重複造輪子)。
技術深度的構建非一朝一夕,如果能按照上面的思路堅持學習三五年,就一定會在某一領域成為專家。
架構師:擴大技術視野
在成為某一領域的專家之後,想要承擔更大的職責,那麼還需要擴大自己的技術視野,通盤考慮整個業務和系統。
通俗來講,技術視野不僅包含了技術深度,也包含了技術廣度,就是“既見樹木,又見森林”,尤其體現在技術選型與架構設計這兩個階段。這個能力也是決定自己以後是繼續當“搬磚工”,還是昇華為“建築師”的關鍵。
1)要時刻保持跳出當前層級和環境來思考的習慣。每個人都有自己的侷限性,每天接觸的技術和工作都是固定的,工作常用的技能隨著時間就熟練了。比如,你只用了關係型資料庫,有沒有想過資料一直產生,到達TB級別的時候該如何快速檢索與儲存呢?
2)充分利用思維導圖工具,不斷延展知識邊界。架構師的知識一定是系統化的,當接觸到一個知識點後,要去追尋與現有技術的關係,這樣就可以將所學知識串聯,從而形成體系。
\3) 溝通與交流時提高視野的最快捷的方式。相信每個人都有感觸,當你偶然間獲得某個知識點後,會不由感嘆:原來如此啊,我還以為有多難呢。其實知識不難,就在那裡,只是你沒找到合適的途徑去觸達它。
朋友的職業道路為什麼能如此之順?
朋友能拿到50W的年薪的奧祕也告訴了我,原來是機緣巧合下獲得了一份阿里內部的成長筆記,現在分享出來。Java成長筆記主要是將Java程式設計師按照年限來進行分層,清晰的標註著Java程式設計師應該按照怎樣的路線來提升自己,需要去學習哪些技術點。
下面會介紹這份Java成長筆記的主要內容涵蓋的知識點,由於文章篇幅,所以只展示了截圖內容
如有需要完整版PDF文件,可掃碼免費領取
Part1:0-1年入門
- Java基礎覆盤(物件導向+Java的超類+Java的反射機制+異常處理+集合+泛型+基礎IO操作+多執行緒+網路程式設計+JDK新特性)
- Web程式設計初探(Servlet+MySQL資料庫+商品管理系統實戰)
- SSM從入門到精通(Spring+SpringMVC+Mybatis+商品管理系統實戰-SSM版)
- SpringBoot快速上手(SpringBoot+基於SpringBoot的商品管理系統實戰)
1.Java基礎覆盤
2.Web程式設計初探
3.SSM從入門到精通
4.SpringBoot快速上手
Part2:1-3年高工
- 併發程式設計進階(併發工具類實戰+CAS+顯示鎖解析+執行緒池內部機制+效能優化)
- JVM深度剖析(理解執行時資料區+堆外記憶體解讀+JDK+記憶體洩漏問題排查+Arthas+GC演算法和垃圾回收器+類載入機制等)
- MySQL深度進階
- 深入Tomcat底層(執行緒模型+效能調優)
1.併發程式設計進階
2.JVM深度剖析
3.MySQL深度進階
4.深入Tomcat底層
Part3:3-5年資深
- 資料庫(調優+事務+鎖+叢集+主從+快取等)
- Linux(命令+生產環境+日誌等)
- 中介軟體&分散式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等元件)
1.資料庫
2.Linux
3.中介軟體&分散式
Part4:5-7年架構
- 開源框架(Spring5原始碼+SpringMVC原始碼+Mybatis原始碼)
- 分散式架構(Zk實戰+RabbitMQ+RocketMQ+Kafka)
- 高效儲存(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)
- 微服務架構(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)
總結
雖然我個人也經常自嘲,十年之後要去成為外賣專員,但實際上依靠自身的努力,是能夠減少三十五歲之後的焦慮的,畢竟好的架構師並不多。
架構師,是我們大部分技術人的職業目標,一名好的架構師來源於機遇(公司)、個人努力(吃得苦、肯鑽研)、天分(真的熱愛)的三者協作的結果,實踐+機遇+努力才能助你成為優秀的架構師。
如果你也想成為一名好的架構師,那或許以上這份Java成長筆記你需要閱讀閱讀,希望能夠對你的職業發展有所幫助。
上述完整PDF版已經整理好了,有需要的朋友可以點選下方名片,掃碼可免費獲取。
相關文章
- 阿里年薪50W前端工程師,告訴你如何正確的學習前端阿里前端工程師
- 同樣是搞Java,年薪15W和50W的到底差在哪裡?Java
- 好程式設計師告訴你Java架構師學習路線程式設計師Java架構
- 架構師之路:從Java碼農到年薪八十萬的架構師架構Java
- 看年薪50W的架構師如何手寫一個SpringMVC框架(文末附視訊)架構SpringMVC框架
- 畢業5年,我問遍了身邊的大佬,總結了他們的學習方法
- 為什麼年薪 50W 是程式設計師的分水嶺?程式設計師
- 企業架構師、解決方案架構師和技術架構師的異同 - Briqi架構
- 阿里P7架構師告訴你Java架構師必須知道的 6 大設計原則阿里架構Java
- 【非廣告,純乾貨】本科畢業3年的我,是如何薪資翻倍拿到38萬年薪Offer的?【石杉的架構筆記】架構筆記
- 如何從三流程式設計師成長為一名年薪50W的架構師(文末附送學習資料)程式設計師架構
- 阿里十年架構師用一張圖告訴你什麼是系統架構師阿里架構
- 真誠製作:從零到年薪百萬的架構之路,學Java就看他了架構Java
- 阿里架構師耗時一個月整理的《java架構師學習路線》太全了阿里架構Java
- 告訴你架構師與程式設計師的區別在哪裡架構程式設計師
- 同樣是搞IT,年薪 15W 和 50W 到底差在哪裡?
- 從前端工程師到前端架構師, 我們經歷了什麼?前端工程師架構
- 大資料架構師拿50W的方法訣竅大資料架構
- 程式設計師離百萬年薪有多遠?移動架構師是這樣學成的!程式設計師架構
- 許式偉:畢業 2 年成為首席架構師,我的技術學習方法論 | 極客時間架構
- Java加薪寶典——程式設計師年薪50W必需掌握怎樣的技術Java程式設計師
- 學習Java架構師的路線分享Java架構
- 高二的他已透過NOI保送北大了,讓我們一起了解他的資訊學奧賽學習經歷吧!!!
- 我很久沒寫程式碼了,但我是個好架構師架構
- 大學剛畢業的他,選擇智慧數字經營作為他的創業第一站創業
- 畢業剛一年,有的程式設計師月薪不到1萬,有的已經年薪 60 萬!”憑什麼?程式設計師
- 那個學Python 的同齡人,也許已經超越你了!Python
- Java架構師如何學習?Java架構
- Java進階學習之Java架構師的學習路線Java架構
- 那個學Python的同齡人,也許已經拋棄了你Python
- Java,你告訴我 fail-fast 是什麼鬼?JavaAIAST
- 畢業前寫了20萬行程式碼,讓我從成為同學眼裡的麵霸!行程
- 乾貨面經 | 初中級爬蟲工程師面試指北 - 畢業工作一年薪資翻番了爬蟲工程師面試
- 做SaaS的程式設計師們,是時候關注企業架構了程式設計師架構
- Java架構師的培訓要學習什麼?Java架構
- 超硬核的Java工程師分享,什麼是Java?為什麼我要做Java,我是如何學習Java的?Java工程師
- 一張圖告訴你學JAVA還是學Python!JavaPython
- 當年,我的架構師之路差點完蛋,幸虧了它架構