阿里P10:Java大牛程式設計師的學習成長經歷

Java高階部落發表於2018-12-21


Java高階部落

共享Java行業資訊,分享公司內部核心乾貨,中高Java開發級技術,關注我一起探索Java程式設計架構之路。

640?wx_fmt=jpeg640?wx_fmt=png

阿里基礎設施負責人畢玄結合自己的經歷跟大家講述了他在各個角色上成長的感受。在他的職業經歷中,在成長方面經歷了技術能力的成長、架構能力的成長,以及現在作為一個在修煉中的技術 Leader 的成長。其中技術能力和架構能力的成長是所有程式設計師都很需要的,值得所有正為職業發展而迷茫的技術同學細細品味。


640?wx_fmt=png技術能力成長640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


640?wx_fmt=png


架構能力成長

說起架構,在我剛工作的第三年負責工作流系統的時候也做過,但直到後來在阿里做 T4、異地多活,我才有了真正更強烈的感受,對架構師也有更深的一些理解。架構呢,我現在的理解基本是一個結構圖,當然有不同視角的結構,但這個圖裡的部分呢是多個團隊來做的,甚至是跨多個專業的團隊。

在做 T4 的時候,由於 T4 涉及到了標準的一個 Java WebConsole,一堆的運維體系,容器技術等,這是一個至少要跨三個團隊的結構,無論是從研發視角還是部署視角都是如此,因此作為 T4 的架構師,怎麼設計好整個的結構,各自的邊界、介面是我當時最大的感受,讓跨專業的多個團隊能更好的協作,在這個階段中最重要的要考慮的是怎麼根據整個專案的優先順序來調整每個部分,以及作為一個不是全懂的架構師怎麼更好的確保結果,我自己的感受是 T4 讓我學會了從一個只做自己專業系統的架構師成長為了能做跨專業的系統的架構師。

在做異地多活的時候,感受就更加強烈,因為這個跨的專業數、整個參與的人數完全是上升到了一個非常大的程度,各個專業、系統的人都需要看整個架構才能知道自己應該做什麼,扮演的角色,在做異地多活整個專案過程中,作為總的架構師,我自己感覺的是最重要的職責是怎麼控制專案的風險,或者說作為架構師,你覺得一個專案中最重要的要掌控住的是,並且從架構上怎麼設計這個部分,這也是後來我在問很多架構師時最喜歡問的問題,一份架構文件不是說按照模板寫就可以(很多的架構設計文件都是千篇一律,通常看到的都是什麼都考慮,但從架構設計上並沒體現這些考慮的地方是怎麼做的),而是要根據實際的專案/產品情況來突出重點,確保最重要的幾個問題是從架構設計上就去掌控的,尤其是跨多個專業團隊的大型專案,這種專案準確的說是大架構師帶著一堆的專業領域的架構師來做的,例如異地多活專案從架構設計上來說除了正常的結構、邊界以外,最重要的是資料正確性的設計,我自己最強的感受就是異地多活才讓我明白了一個大型系統的架構師是怎麼樣的。

所以就我自己的感受而言,架構師對知識的寬要求非常廣,並且要能非常好的進行抽象,來做結構、邊界的設計,分析出當前階段系統的重點,並從架構層面做好設計來確保重點的實現,這個相對技術能力的成長而言我覺得更需要機會,但同樣在機會前需要有足夠的積累(例如寫一個系統的時候,是不是主動的去了解過上下游的系統設計,是不是瞭解過具體的部署結構,對相應的知識點有沒有簡單的瞭解等,我自己在做 T4 前,LVS、機房/網路結構等完全搞不懂是怎麼回事)。


640?wx_fmt=jpeg




技術Leader修煉

技術 Leader 我比較傾向於有前面兩步積累的同學,技術 Leader 非常重要的一點是對技術趨勢的感知和判斷能力,這其實是個非常綜合的能力,一到兩個領域的技術深度,大的架構能力,對技術歷程的理解、技術發展的思考能力,作為技術 Leader 是很需要的,然後是其他的一些作為 Leader 方面的比較綜合的一些能力(例如組織搭建、建設方面的能力等,不過這些能力呢通常對技術的人來說確實會欠缺的更多一些),這個我自己還在修煉和學習中,就不講太多了。

總結

總結來說呢,我認為程式設計師可發展的路線還是很多的,上面寫的這三條其實都是可發展的路線,沒有孰優孰劣,誰高一等之類的,興趣、個人優勢仍然是最重要的。





最近乾貨分享

聽說支付寶有一個“瘋起來連自己都打”的專案

到底什麼是微服務?

今年阿里巴巴重要開源專案全在這裡

最流行6種微服務RPC技術,看完就知道用哪一種了

640?wx_fmt=jpeg




相關文章