大學畢業,三年彈指一揮間,回頭看看才知道時間過得快。
進入軟體開發這一行,就意味着永無之境的學習。
我不得不承認,自己這三年,有些失敗(失策)。
不是技術不好,也不是不夠敬業,隻是,低頭拉車的時間太多,擡頭看路的時間太少,
當“一個人戰鬥”的工作習慣成為一種束縛,下一個突破點在哪裡?下一步的政策是什麼?
有過兩年工作經驗的人想必都有體會,軟體開發行業壓力大,
經常是時間短,任務重,需求還總在變。
整天的加班,沖向一個又一個的裡程碑和deadline。
雖然我現在做反思和調整,也不算太晚,但如果早一點醒悟,能夠靜下心來想想,現在一定更輕松。
是以結合自身的情況我總結了以下幾點讓我在技術和薪資達到了一個質的突破。
1、可以執着于技術,但不要把技術當作全部,有一個清晰的鑽研路線;
2、工作2年後,要有未來3-5年的“動态”系統學習規劃;
3、定期總結計劃執行情況,及時修改“動态”規劃;
這個時代不缺資訊、不缺好的資源,甚至隻要你稍微用點心都可以接觸到任何領域優質的内容。但同樣一份技術教程,有的人看完就可以熟練掌握,而有的人卻一點收獲都沒有。有的人越學技術越厲害,而有的人越學越覺得程式設計非常痛苦,學了好久還是寫不出程式。
我最開始學習程式設計的時候也是如此,摸索了非常久的時間,才慢慢找到适合自己的系統的高效學習線路。
一、JAVA架構基礎
掌握 JAVA架構基礎相關的知識是為了後續的學習打下堅實的基礎。這一部分是針對小白或者對 JAVA 還不太了解的朋友,當然入門了的朋友也可以鞏固一下。
二、閱讀源碼
程式員每天都和代碼打交道。經過數年的基礎教育和職業教育訓練,大部分程式員都會「寫」代碼,或者至少會抄代碼和改代碼。但是,會讀代碼的并不在多數,會讀代碼又真正讀懂一些大項目的源碼的,少之又少。這也造成了很多錯誤看源碼的方式。
那要如何正确的分析源碼呢?
三、分布式架構
随着我們的業務量越來越大和越重要,單體的架構模式已經無法對應大規模的應用場景,而且系統中決不能存在單點故障導緻整體不可用,是以隻有垂直或是水準拆分業務系統,使其形成一個分布式的架構,利用分布式架構來備援系統消除單點的故障,進而提高整個系統的可用性。同時分布式系統的子產品重用度更高,速度更快,擴充性更高是大型的項目必不可少的環節。
四、微服務
關于微服務架構的取舍
1、在合适的項目,合适的團隊,采用微服務架構收益會大于成本。
2、微服務架構有很多吸引人的地方,但在擁抱微服務之前,也需要認清它所帶來的挑戰。
3、需要避免為了“微服務”而“微服務”。
4、微服務架構引入政策 – 對傳統企業而言,開始時可以考慮引入部分合适的微服務架構原則對已有系統進行改造或建立微服務應用,逐漸探索及積累微服務架構經驗,而非全盤實施微服務架構。
五、性能優化
我們不僅僅對項目要運籌帷幄,還要能解決一切性能問題。隻有深入學習JVM底層原理,Mysql底層優化以及Tomcat調優,才能達到知其然,知其是以然的效果。除了性能優化之外,也能提供通用的常見思路以及方案選型的考慮點,幫助大家培養在方案選型時的意識、思維以及做各種權衡的能力。
六、并發程式設計
主要培養程式設計者深入了解最底層的運作原理,加強程式設計者邏輯思維,這樣才能寫出高效、安全、可靠的多線程并發程式。
擷取往期阿裡架構師精講資料、精講視訊、Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分布式、高并發等架構技術,可加入Java進階之路:
878249276。