阿里P8架構師十年的開發經驗以及職業生涯規劃
初級程式員:做一些靜態的介面; 程式設計師:做一些增刪改查的小模組; 中級程式設計師:做邏輯較複雜的模組; 高階程式設計師:做核心模組; 專案經理:系統的整體架構; 部門經理:多專案的管理; 總裁:多部門以及企業的發展規劃。 那麼你想成為這些程式設計師中的哪一類呢?你的技術又能達到哪一類呢? 我認為,隨著你工作年限的增長、對生活對生命認識的深入,應當不斷思考幾個問題: 我到底適不適合當一名程式設計師? 我到底應不應該一輩子以程式設計師為職業? 我對程式設計到底持有的是一種什麼樣的態度,是夠用就好呢還是不斷研究? 想清楚這幾個問題最少不會讓你每一年都在原地踏步。 程式設計師的工資: 說到程式設計師那麼肯定首先會想到的就是BAT網際網路三大巨頭,下面我們就用阿里的一份級別評定及工資等級來看看程式設計師的工資。 阿里薪資結構:一般是12+1+3=16薪•年底的獎金為0-6個月薪資,90%人可拿到3個月  在來看看阿里巴巴的對應薪資年薪。 也就是說做到P7或者P8這個級別就差不多達到年薪40W的範圍了。 大家看到這裡會說了阿里並沒有那麼好進,那麼首先我們來看看阿里的招聘廣告:  其實BAT並不是那麼的難進,難的在於你自己的一個心理。畢竟是網際網路的巨頭你不要想著進去之後自己的技術不行但是最少你能夠跟一群優秀的人待在一起那麼你也會變的優秀,正如近朱者赤近墨者黑這句千年老古話。 很多朋友相信也去面試過這類的公司,但是很可惜因為面試技巧的問題或者是技術並沒有達到要求而沒有拿到offer,下面我要給大家分享一個超級系統的學習計劃。裡面的內容不管去哪家公司我想應該都是能夠用的上並且是實用的。 我也希望可以幫助到想在這個行業發展的朋友們,少花些時間在網上等地方找資料(啃書本),希望大家把有限的時間,真正的花在學習上。 以下是我分享的一個系統學習的技術知識點,一共是這幾個專題: 一、設計模式的分類 總體來說設計模式分為三大類: 建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。 其實還有兩類:併發型模式和執行緒池模式。用一個圖片來整體描述一下:  二、微服務架構 微服務架構是一項在雲中部署應用和服務的新技術 微服務不需要像普通服務那樣成為一種獨立的功能或者獨立的資源 微服務作為一項在雲中部署應用和服務的新技術已成為當下最新的熱門話題 微服務的基本思想在於考慮圍繞著業務領域元件來建立應用,這些應用可獨立地進行開發、管理和加速。在分散的元件中使用微服務雲架構和平臺,使部署、管理和服務功能交付變得更加簡單。 使用微服務構建現代化應用程式是很有意義的,因為它讓你既利用了擴充套件橫向擴充套件架構,也利用縱向擴充套件架構;還額外得到API的組合,且在整個業務中可重複利用。可能,每一分鐘構都在交付新服務,這樣你就必須擁有一個敏捷的且響應的應用程式平臺,這一平臺一直在不斷改進中。 如果你想學習這些技術要點,可以加群:795632998,群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!  三、Jvm效能調優 Jvm垃圾回收與效能調優 Jvm調優的幾種策略 Jvm引數  四、原始碼分析 程式設計師每天都和程式碼打交道。經過數年的基礎教育和職業培訓,大部分程式設計師都會「寫」程式碼,或者至少會抄程式碼和改程式碼。但是,會讀程式碼的並不在多數,會讀程式碼又真正讀懂一些大專案的原始碼的,少之又少。這也造成了很多錯誤看原始碼的方式。 那要如何正確的分析原始碼呢? 我們的目標應該放在最常用的框架上面,下面就介紹兩個:一個是Spring,另一個是大家用來覺得一直不怎麼出問題的Mybatis。 △spring原始碼  △mybatis原始碼  五、分散式架構 隨著我們的業務量越來越大和越重要,單體的架構模式已經無法對應大規模的應用場景,而且系統中決不能存在單點故障導致整體不可用,所以只有垂直或是水平拆分業務系統,使其形成一個分散式的架構,利用分散式架構來冗餘系統消除單點的故障,從而提高整個系統的可用性。同時分散式系統的模組重用度更高,速度更快,擴充套件性更高是大型的專案必不可少的環節。  六、併發程式設計 主要培養程式設計者深入瞭解最底層的運作原理,加強程式設計者邏輯思維,這樣才能寫出高效、安全、可靠的多執行緒併發程式。  七、B2C專案實戰 要想立足於網際網路公司,且能在網際網路浪潮中不被淹沒,對於專案的開發實戰演練是不必可少的技能,也是對自身能力的一個衡量,有多少的量對等於獲得多少的回報。看似簡單的一個專案需求圖譜,其中的底層原理,實現原理又能知道多少?你搭建一個完整的B2C專案平臺到底需要多少知識?這一切都是需要我們考量的。  如果你想學習以上技術要點,可以加群:795632998,群內提供免費的Java架構學習資料(裡面有高可用、高併發、高效能及分散式、Jvm效能調優、Spring原始碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!