1. 程式人生 > >從普通JAVA程式設計師到阿里架構師,他用了六年 JAVA架構演變之路

從普通JAVA程式設計師到阿里架構師,他用了六年 JAVA架構演變之路

工作年限:8 年服務公司:4 家(含四大門戶中的兩家)最近職業:Java 架構師職場關鍵詞:社交平臺、高併發系統架構設計、技術團隊管理、多款從零到一的產品城市!

六年間,這位職人呆過四大門戶中的兩家,完成了工程師到架構師的蛻變。經手多款從零到一產品的開發和增長,也經歷國內最大社交平臺億級流量和使用者的架構設計及優化工作。工作上思路清晰、認真負責,是同事們心目中優秀 Problem Solver。

問:介紹一下你自己?

:我 2008 年碩士畢業後,前 2 年在一家傳統 IT 公司,最近 6 年在網際網路公司,歷任 Java 開發工程師、高階工程師、架構師等職位。工作內容上,經歷過多款產品從零到一的誕生開發過程,也經手過國內使用者、內容和流量最大的社交/社群產品的架構改造優化工作,有豐富的社交產品的研發經驗,目前在一家創業公司擔任技術合夥人。

問:你擅長的技術領域是什麼?

:擅長的程式語言是 Java、Golang、Scala,熟悉程度依次遞減。專注於高效能、高併發系統架構設計和實現。

問:平時怎麼向家人解釋你的工作是做什麼的?

:一般不詳細解釋,即使解釋了也是徒勞。所以他們會按照自己的理解來描述我的工作,比如修電腦的,比如賣手機的。

問:你覺得程式設計師可以當一輩子嗎?有沒有想象過自己 40 歲時在做什麼?

:應該還是會從事開發方面的工作吧,外企中有很多上了年歲的程式設計師啊。

問:合作過程中,你覺得優秀產品經理最重要的三個特質是什麼?

:邏輯思維能力;對資料敏感;不錯的語言和文字表達能力;當然如果能寫點兒程式碼就跟好了。。。

問:你最欣賞的軟體工程師是誰?

:Linus Torvalds 和 Doug Lea

問:在你心目中,具備哪些素質才能稱之為全棧工程師?

:我覺得要成為一個全棧工程師首先要有好的學習能力,對新的技術能夠摒棄偏見,快速瞭解它解決的問題以及如何解決的;其次要對技術保有好奇心;最後是有極強的動手能力,不拖延,說幹就幹。

問:你覺得一個優秀 CTO 最寶貴的品質是什麼?

  • 廣闊的技術視野,讓先進的技術解決實際的問題;

  • 熟悉所在的業務領域,根據所在領域的實際情況確定系統架構和系統容量;

  • 團隊管理能力,構建團隊人才梯隊,打造一個技術型團隊。

問:你覺得世界上存在最好的程式語言嗎?如果有,是什麼語言?

:沒有最好的,只有最合適的。任何語言都是為了解決某一方面的問題而出現,所以無謂好壞。

問:工作中最喜歡或討論的設計師分別是什麼樣的?

:有產品思維,能夠和產品經理一起確認互動細節甚至產品方向的設計師。

如果JAVA的軟體工程師 3 條建議,你會寫什麼?

  • 重視基礎知識(演算法、作業系統、網路等等)

  • 拓寬技術視野。多去參加技術沙龍,看看別人的牛逼是怎麼吹的;多關注感興趣的開源專案

  • 保護好頸椎和腰椎(⊙o⊙)…

做了 8 年軟體工程師,現在對自己的定位是怎樣的,對下一份工作有什麼樣的期待?

  • 目前我對自己的定位是一個架構師或者是團隊 Leader;

  • 對於下一份工作,要麼是在一個有著濃烈技術氛圍和高併發平臺的大型公司中做一個螺絲釘;要麼是在有發展前景的創業公司做一個領頭人;

  • 公司階段最好在 B 輪或者以後;

  • 行業方面除了遊戲,其他都 OK。

:你當時是怎麼學習的?

答:架構師是一個充滿挑戰的職業,知識面的寬窄往往決定著一個架構師的架構能力,所以在這一點上我比較贊成你的學習方式,就是要閱讀大量的技術書籍,但我希望你不要僅限於軟體相關的書籍,經常泡技術論壇,一方面可以結交朋友,一方面可以增加自己的知識面,還可以加入一下技術部落格,還可以加一個架構群交流。

PS:推薦一個JAVA架構交流群:190713474

你覺得Java架構師瞭解的東西有哪些?

答:

初級Java程式設計師的重心在編寫程式碼、運用框架->中級Java程式設計師重心在編寫程式碼和框架->高階Java程式設計師技術攻關、效能調優->架構師 解決業務和技術問題

中級後端程式設計師提升薪資的重要點在於:

1.專案經驗:支付,通知,IM,簡訊等公用模組快迅實現。

2.程式碼質量:抽象封裝,日誌規範,釋出流程,快速定位。

3.效能優化:伺服器的記憶體,硬碟,資料增長量,頻寬,系統中最消耗效能的地方,一個請求需要呼叫哪些服務,每次訪問DB的時間是多久。

4.架構能力:分散式,負載均衡,讀寫分離。

5.選型能力:JMS,SOA/SCA/微服務,MongoDB/Redis/Memcache,Java/Go/NodeJS等。

6.管理能力:團隊技術分享組織,專案風險控制,任務和工作的分配

7.需求評審能力:很快給出反饋建議,多長時間能夠完成,技術風險點在哪,有沒有花費時間長,又不重要的需求。

8.Geek能力:對某一個技術點研究的特別深入,比如說Nginx的配置,設計,構架。ElasticSearch的設計,優勢。

你以前是如何學習的?有沒有Java高階學習路線?

答:我規劃了幾張體系圖,可以瞭解一下。

從普通JAVA程式設計師到阿里架構師,他用了六年

分散式架構專題

從普通JAVA程式設計師到阿里架構師,他用了六年

團隊協作效率

從普通JAVA程式設計師到阿里架構師,他用了六年

微服務架構專題

從普通JAVA程式設計師到阿里架構師,他用了六年

效能優化

從普通JAVA程式設計師到阿里架構師,他用了六年

原始碼分析

PS:獲取高清圖片加架構群:190713474