1. 程式人生 > >十年阿裏資深架構師教你如何做到年薪 50 萬的程序員

十年阿裏資深架構師教你如何做到年薪 50 萬的程序員

帶來 邏輯 切入點 遊戲 實現 def 人生 比較 -s

寫在開篇

不管是開發、測試、運維,每個技術人員心裏都有一個成為技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提升自己。

然而“夢想是美好的,現實卻是殘酷的”,很多同學在實際工作後就會發現,夢想是成為大牛,但做的事情看起來跟大牛都不沾邊,例如,程序員說“天天寫業務代碼還加班,如何才能成為技術大牛”,測試說“每天都有執行不完的測試用例”,運維說“扛機器接網線敲shell命令,這不是我想要的運維人生”

提升技術的誤區:

有人認為想成為技術大牛最簡單直接、快速有效的方式是“拜團隊技術大牛為師”,讓他們平時給你開小竈,給你分配一些有難度的任務。

有這種想法是錯誤的,主要有這幾個原因:

1、首先,大牛是很忙的,一個團隊裏面,如果大牛平時經常給你開小竈,難免會引起其他團隊成員的疑惑,我個人認為如果團隊裏的大牛如果真正有心的話,多給團隊培訓是最好的。然而做過培訓的都知道,準備一場培訓是很耗費時間的,課件和材料至少2個小時(還不能是碎片時間),講解1個小時,大牛們一個月做一次培訓已經是很高頻了。

2、大牛不多,不太可能每個團隊都有技術大牛,只能說團隊裏面會有比你水平高的人,即使他每天給你開小竈,最終你也只能提升到他的水平;而如果是跨團隊的技術大牛,由於工作安排和分配的原因,直接請教和輔導的機會是比較少的,單憑參加幾次大牛的培訓,是不太可能就成為技術大牛的。

學習方式

很多人以為要學習就要像學校上課一樣,給你一整天時間來上課才算學習,而我們平時加班又比較多,周末累的只想睡懶覺,或者只想去看看電影打打遊戲來放松,所以就沒有時間學習了。

實際上的做法正好相反:首先我們應該在工作中學習和提升,因為學以致用或者有實例參考,學習的效果是最好的;其次工作後學習不需要大段時間,而是要擠出時間,利用時間碎片來學習

如何想辦法真正的提升自己:more and more

做的更多,做的比你主管安排給你的任務更多。熟悉更多業務,不管是不是你負責的;熟悉更多代碼,不管是不是你寫的

這樣做有很多好處,舉幾個簡單的例子:

需求分析的時候更加準確,能夠在需求階段就識別風險、影響、難點

問題處理的時候更加快速,因為相關的業務和代碼都熟悉,能夠快速的判斷問題可能的原因並進行排查處理

方案設計的時候考慮更加周全,由於有對全局業務的理解,能夠設計出更好的方案

找到正確的學習路線

一、構成架構師的技能體系

技術分享圖片

二、閱讀源碼,分析源碼知識點總匯

技術分享圖片

這張圖詳細介紹了源碼中所用到的經典設計思想及常用設計模式,先打好內功基礎,了解大牛是如何寫代碼的,從而吸收大牛的代碼功力。

結合Spring5和MyBatis源碼,帶你理解作者框架思維,幫助大家尋找分析源碼的切入點,在思想上來一次巨大的升華。

三、分布式架構

技術分享圖片

有了大牛的代碼功底之後,接下來可以更好地學習分布式架構技術。

透徹理解分布式架構的好處和優點

必然性,適應市場需求,能夠去找一些更大的平臺發展,提升自己的綜合技術能力和薪資。

了解從傳統架構到分布式架構演變過程所帶來的技術變革,將理論和實戰相結合,透徹理解分布式架構及其解決方案。

從分布式架構原理,到分布式架構策略,再到分布式架構中間件,最後在加上分布式架構實戰,讓程序員可以在技術深度和技術廣度上得到飛躍的提升,成為互聯網行業所需要的T型人才。

四、微服務架構技能總匯

技術分享圖片

隨著業務的發展,代碼量的膨脹和團隊成員的增加,傳統單體式架構的弊端越來越凸顯,嚴重制約了業務的快速創新和敏捷交付。為了解決傳統單體架構面臨的挑戰,先後演進出了SOA服務化架構、RPC框架、分布式服務框架,最後就是當今非常流行的微服務架構。微服務化架構並非銀彈,它的實施本身就會面臨很多陷阱和挑戰,涉及到設計、開發、測試、部署、運行和運維等各個方面,一旦使用不當,則會導致整個微服務架構改造的效果大打折扣,甚至失敗。

五、並發編程

從Java基礎接觸多線程,到分布式架構環境下的高並發訪問,並發編程充分利用好各個服務器處理器,以最高的效率處理各個任務協同有序工作。透徹理解鎖的應用

技術分享圖片

六、性能優化

大家都知道,性能一直是讓程序員比較頭疼的問題。當系統架構變得復雜而龐大之後,性能方面就會下降,如果想成為一名優秀的架構師,性能優化就是你必須思考的問題。

所以性能優化專題從JVM底層原理到內存優化再到各個中間件的性能調優,比如Tomcat調優,MySQL調優等,讓你洞悉性能本質,全面認識性能優化,不再只是旁觀者。

技術分享圖片

七、Java開發必知工具

技術分享圖片

一名優秀的架構師必須有適合自己的兵器,也就是工欲善其事必先利其器,不管是小白,還是資深開發,都需要先選擇好的工具。工程化專題的學習能幫助你和團隊提升開發效率,讓自己有更多時間來思考。

Git:可以更好地管理你和你團隊的代碼。

Maven:可以更好地管理jar包和項目的構建等。

Jenkins:可以更好地持續編譯,集成,發布你的項目。

Sonar:一個開源的代碼質量分析平臺,便於管理代碼的質量,可檢查出項目代碼的漏洞和潛在的邏輯問題(提升代碼的質量,更加高效地提升開發效率)。

八、實踐一個雙十一電商項目

電商項目目的是把所學的分布式,微服務,性能調優等知識運用起來,只有在項目中你才能鞏固知識,提升自己。實踐電商項目會利用雲服務器搭建真實的開發和部署環境,讓你從零到項目實戰,體驗真實的企業級項目開發過程,讓你具備獨立開發和搭建分布架構系統的能力。

技術分享圖片

總結

要想有機會,首先你得從人群中冒出來,要想冒出來,你就必須做到與眾不同,要做到與眾不同,你就要做得更多! 成為技術大牛夢想雖然很美好,但是要付出很多,不管是Do more還是Do better還是Do exercise,都需要花費時間和精力,這個過程中可能很苦逼,也可能很枯燥,這裏我想特別強調一下:前面我講的都是一些方法論的東西,但真正起決定作用的,其實還是我們對技術的熱情和興趣!

文章中涉及到的技術點我都分享在群: 697579751 裏,錄制成視頻供大家免費下載,希望可以幫助在這個行業發展的朋友和童鞋們,在論壇博客等地方少花些時間找資料,把有限的時間,真正花在學習上,所以我把這些資料,分享出來。相信對於已經工作和遇到技術瓶頸或者寫博客碼友,在這份資料中一定都有你需要的內容。

年薪50W看似不多,可自己不努力一把怎麽知道自己的極限在哪呢?工作年限,年齡,公司大小仿佛這些東西限制了你的發展。可自己都不主動往上爬,你又憑什麽比別人優秀?

十年阿裏資深架構師教你如何做到年薪 50 萬的程序員