一個阿里架構師十年的從業總結:比起掉髮,我更怕掉隊(文末福利分享)
驀然回首,從畢業到現在做後臺開發已經十年了,這十年中我獲得了很多,技術能力、培訓、出國、大公司的經歷,還有很多志同道合的朋友。但再仔細一想,這十年碼農路上我至少浪費了五年時間,這五年可以足夠讓自己成長為一個優秀的程式設計師,可惜我錯過了,我用這五年時間和很多程式設計師一樣在困惑和迷茫中找不到出路!
“路上本沒有坑,走的人多了,路就爛了。”
在大公司做事情有一個特徵,你只需要在工作時間做好公司給你安排的那份工作,你就會做的很好,這也就是說每個人都是一顆螺絲釘。所以,我在一進入大公司後,由於自己經歷不夠,再加上剛畢業就作為大學班上進入大公司的佼佼者,所以有點飄,不能沉下心來研究技術,所以浪費了一段時間。
後來在和在貝爾實驗室(上海)工作的研究生同學的一次交流中,讓我嚴重的意識到,做為程式設計師除了做好公司安排的工作只是為了自己“活著”,而程式設計師的“生活”應該是體現在自己對技術的追求和對原始碼的執著之上。
雖然自己經常和周圍的朋友進行程式生涯的交流,唯獨這次交流才真正影響了我的程式人生。回想起來,影響程式設計師明天困局的往往就是一直掛著我們嘴邊的小事,那些原始碼啊,框架啊,實戰,造輪子,開源這一切都需要我們實實在在親力親為的一行行程式碼去解決。
我一直擔驚受怕,過去,可能是因為我年輕,但現在,我已經不是那麼年輕了,我仍然發現有很多事情讓我害怕。
當年紀越來越大後,我開始變得不能加班。我開始用更多的時間和家人在一起,而不是坐在計算機前(儘管這樣,她們仍是抱怨)。我在本地教育委員會社群裡提供一些幫助,還組織開源興趣小組參加活動。
我在思考,為什麼以前會把如此多的時間全部用在程式設計上。大量的程式設計。那是我渴望深入研究一個類庫,一個框架或一門技術。
現在的技術的學習曲線的增加,讓我的忍耐性越來越低。各種新技術,因為新奇讓人興奮,但最終變成一場場爭論。我越來越無法忍受這些充滿市場宣傳氣息的喧囂。我對技術看重的是穩定,清晰。
據不完全統計,截至目前(2017.07)為止,中國Java程式設計師的數量已經超過了100萬。而且,隨著IT培訓業的持續發展和大量的應屆畢業生進入社會,Java程式設計師面臨的競爭壓力越來越大。那麼,作為一名Java程式設計師,怎樣努力才能快速成長為一名高階的程式設計師或者架構師,或者說一名優秀的高階工程師或架構師應該有怎樣的技術知識體系,這不僅是一個剛剛踏入職場的初級程式設計師,也是工作三五年之後開始迷茫的老程式設計師,都必須要面對和想明白的問題。針對這些問題我總結出一個Java程式設計師的工作2-5年成長路線圖。
閱讀原始碼
程式設計師每天都和程式碼打交道。經過數年的基礎教育和職業培訓,大部分程式設計師都會「寫」程式碼,或者至少會抄程式碼和改程式碼。但是,會讀程式碼的並不在多數,會讀程式碼又真正讀懂一些大專案的原始碼的,少之又少。這也造成了很多錯誤看原始碼的方式。
那要如何正確的分析原始碼呢?
我們的目標應該放在最常用的框架上面,下面就介紹這幾個:
分散式架構
隨著我們的業務量越來越大和越重要,單體的架構模式已經無法對應大規模的應用場景,而且系統中決不能存在單點故障導致整體不可用,所以只有垂直或是水平拆分業務系統,使其形成一個分散式的架構,利用分散式架構來冗餘系統消除單點的故障,從而提高整個系統的可用性。同時分散式系統的模組重用度更高,速度更快,擴充套件性更高是大型的專案必不可少的環節。
微服務
關於微服務架構的取捨
在合適的專案,合適的團隊,採用微服務架構收益會大於成本。
微服務架構有很多吸引人的地方,但在擁抱微服務之前,也需要認清它所帶來的挑戰。
需要避免為了“微服務”而“微服務”。
微服務架構引入策略 – 對傳統企業而言,開始時可以考慮引入部分合適的微服務架構原則對已有系統進行改造或新建微服務應用,逐步探索及積累微服務架構經驗,而非全盤實施微服務架構。
效能調優
我們不僅僅對專案要運籌帷幄,還要能解決一切效能問題。只有深入學習JVM底層原理,Mysql底層優化以及Tomcat調優,才能達到知其然,知其所以然的效果。除了效能優化之外,也能提供通用的常見思路以及方案選型的考慮點,幫助大家培養在方案選型時的意識、思維以及做各種權衡的能力。
開發工具工程化
通過一小段描述資訊來管理專案的構建,報告和文件的軟體專案管理工具。程式設計師的戰鬥,往往不是一個人的戰鬥,我們如何在一個平臺下高效的去重,進行程式碼review,對功能進行調整,debug,做到在統一的規劃下步步為營,混亂的堆程式碼的過程中找到自己的記錄。這一切都依賴於有效的工具。
專案實戰
要想立足於網際網路公司,且能在網際網路浪潮中不被淹沒,對於專案的開發實戰演練是不必可少的技能,也是對自身能力的一個衡量,有多少的量對等於獲得多少的回報。看似簡單的一個專案需求圖譜,其中的底層原理,實現原理又能知道多少?你搭建一個完整的B2C專案平臺到底需要多少知識?這一切都是需要我們考量的。
併發程式設計
主要培養程式設計者深入瞭解最底層的運作原理,加強程式設計者邏輯思維,這樣才能寫出高效、安全、可靠的多執行緒併發程式。
以上這些如何學習,有沒有免費資料?我的回答是有的!!
歡迎大家加入Java架構交流群:838498680
本群提供免費的學習指導、架構資料、以及免費的解答
不懂得問題都可以在本群提出來 還會有職業生涯規劃以及面試指導
另外再分享一個專注於Java架構交流的公眾號
掃碼關注不迷路
相關文章
- 阿里P7架構師分享從業心得,成為架構師的路上少走彎路阿里架構
- 阿里工作十年的Android架構師,總結出2020最新阿里、騰訊、位元組、京東等一線大廠高頻面試真題合集,以及從業心得分享阿里Android架構面試
- Toolbar設定掉坑總結
- 西遊記團隊中如果需要裁掉一個人,會先裁掉誰?
- 阿里十年架構師用一張圖告訴你什麼是系統架構師阿里架構
- 我的創業故事:辭掉你的工作,去開發一個應用創業
- 工作5年的阿里Java程式設計師分享從業心得總結與面試筆記分享阿里Java程式設計師面試筆記
- 阿里9年,我總結的前端架構演進3大階段及團隊管理心法阿里前端架構
- 阿里巴巴十年Java架構師分享,會了這個知識點的人都去BAT了阿里Java架構BAT
- 少寫一個`var`是如何毀掉我們網站的網站
- 如何黑掉一個網站網站
- ORACLE中殺掉一個程式Oracle
- Apache 架構師總結的 30 條架構原則Apache架構
- 分享我這8年(目前在阿里就職),是如何一步一步走向架構師的阿里架構
- 沒辦法,我必須幹掉他們團隊的 Leader
- 《MySQL——從刪庫到跑路》阿里架構師分享刪庫跑路救命策略MySql阿里架構
- 年底了!你還在為年度總結掉頭髮嗎?那還不趕緊學起來~
- 阿里架構師耗時一個月整理的《java架構師學習路線》太全了阿里架構Java
- 【新炬網路名師大講堂】把“庫”字脫掉,從資料庫管理員到資料架構師資料庫架構
- 如何殺掉一個使用者下的所有程式並drop掉這個使用者
- 一次推送,毀掉一個公司
- 頭髮都快掉沒了,才熬出來的優秀程式設計師的生存指北!程式設計師
- “大話架構”阿里架構師分享的Java程式設計師需要突破的技術要點架構阿里Java程式設計師
- 阿里支付寶架構師:談談我眼中的高併發架構【好文】阿里架構
- 一位阿里架構師給每個程式設計師的小建議阿里架構程式設計師
- 分享我這8年,是如何一步一步走向架構師的架構
- 看年薪50W的架構師如何手寫一個SpringMVC框架(文末附視訊)架構SpringMVC框架
- 架構師之路:一個架構師需要掌握的知識技能架構
- 阿里分散式服務框架Dubbo的架構總結阿里分散式框架架構
- 華為十年技術專家總結:進階成為架構師需要掌握哪些技能?從0到1架構
- 阿里P6架構師的成長之路,我只用了5個月.....阿里架構
- 一次盤陣down掉導致的oracle rac失敗總結(原)Oracle
- 百度掉隊BAT 5年後阿里與騰訊的勝負已揭曉BAT阿里
- 聽豆瓣架構變遷分享會總結架構
- 阿里一位 70 後程式設計師、架構師的 26 個職場感悟阿里程式設計師架構
- Docker 從入門到掉坑Docker
- js 從目標陣列中過濾掉 一個陣列元素,JS陣列
- 排隊與掉線,線上遊戲的「人口災難」遊戲