天天看點

普通程式員通向架構師的最佳路徑?

網際網路的蓬勃發展,讓無數的「屌絲」程式員在一夜之間,仿佛都變成了「香饽饽」。但是,沒有幾個做開發的同學真的想做一輩子「碼農」,很多同學都希望當上cto,最終迎娶「白富美」,從此過上幸福美滿的生活。

誠然,cto 的路不是那麼好走的,而其中最重要的先決條件就是你要先成為一名優秀的架構師,那麼普通程式員如何才能成為架構師呢?讓我們聽聽移動開發精英群裡,這些國内頂級的大牛怎麼說!本文系 oneapm 市場部王鵬整理。

普通程式員通向架構師的最佳路徑?

三生社群副總裁,thinkphp核心開發者羅飛總結:

程式員可能的發展路線是什麼?

先說說這張圖,它幾乎表示出了一個程式員可能走的所有職業路線。 當我們剛開始還是個初級開發的時候隻能把自己變成進階,開發者才能有更多的選擇。你可以選擇管理線、專家線或者小老闆線。(圖有四個象限,x軸代表金錢, y軸代表時間。)

我們學習知識的路線是: 技術->技術+管理->技術+管理+商業。但是随着階段不一樣,我們學習的知識也有不同,剛開始我們隻做開發,隻需要學習技術知識就行了,後面我們做到了管理職位,不僅要懂技術還要學習管理知識,然後我們想要成為ctoceo或小老闆,必須得學習一些商業知識才行。

想成為架構師,你需要經曆3個階段的磨練!

從技術上來講,要成為進階工程師或架構師,我認為可能需要經曆3個階段: 實作->借鑒->優化。

第一個階段: 實作

在這階段我們隻在乎功能的實作,不會考慮性能優化,我們會覺得一些功能不會做,一些功能自己沒做,我們隻要實作了功能,就覺得很有成就感。在這個階段中,我們要多去做事,沒做過的就去做。要注意培養自己的全面能力,前端、後端、伺服器等要去接觸。其實,這個階段就好比人類的居住環境,原始人的時候隻考慮實作遮風避雨就行了,不考慮住得舒不舒服,是以找個山洞住就可以了。

第二個階段:借鑒

當我們覺得基本所有功能自己都能實作的時候,我們會遇到自己的第一個瓶頸,這時候不要自滿,要發現那隻是自己的第一個瓶頸而已。其實,我們每個人自己的提升空間還很大,這時候建議大家多借鑒别人的東西,看一些開源程式的代碼,其實讀别人的程式能學到很多東西。或許有人認為别人能實作的自己也能實作,不屑于看别人的東西,但這顯然阻礙了自己進步的空間!

美國一位大師matt zandstra說過這樣一句話:“我們正在努力開發的功能,或許已經被其他程式員實作過無數次,我們怎麼不借鑒他們的,而是把重心放在自己特有的業務邏輯上呢?”這個階段我還是拿人類居住環境來做比喻:人類在一定階段後, 好像能借鑒鳥搭鳥窩的形式,自己能“搭建”茅草屋了。

第三個階段:優化

當我們功能都能實作了,也借鑒了許多别人的東西時候,借鑒階段也是有瓶頸的,當我們看了一兩年開源代碼後, 再看新的程式,已經看不出新的程式設計思想了,感覺程式設計思想都是以前看過的。這個時候,我們的重心會想着怎麼優化我們的代碼:

我們會考慮代碼的可讀性、安全性、可擴充性。這時候建議大家可以看一些設計模式、程式設計思想、安全方面的書。 我說的這三個階段可能屬于從初級程式員到進階程式員的階段,離真正的架構師可能還有點距離,因為真正很牛的架構師還會了解公司業務需求,能知道什麼階段用什麼技術!這是非常重要的。

經典語錄分享:

唐巧:我的觀點是,程式員能夠成長為架構師,不僅要靠自己的努力,很大程度上也依賴于機遇。淘寶的系統經曆過10次重寫,每次都面臨新的挑戰,這些參與其中的每個人都得到了親自的鍛煉和成長,這也是他們趕上了好時候:電子商務和淘寶的快速發展。

在這波人過了之後,現在的新人如果想在電商系統上有所深入的成長,再想成為架構師就很難了,因為他們無法深入了解這些設計原理,為什麼這樣設計能夠避免各種“坑”?

當然,移動開發領域正經曆快速變革和發展的時期,這幾年做移動開發的人,可以看到這個系統的演進過程,他們很可能成為移動開發專家。他們也有機會去設計一些非常基礎的、有挑戰的系統,來解決現在移動開發中遇到的問題。總的來說,就是找準趨勢,順勢而為,才可能在技術上接觸到挑戰和機會,單純的努力可能不一定有效果。

馮軍:我覺得架構師不在于掌握多少前沿的技術語言和牛逼的技術,而是在于對業務和技術發展的了解,能站在公司的角度,明确在不同的階段用不同的技術架構,能夠快速支援業務的發展,保障平台的穩健。

而且,架構師的技術棧會多元化,因為架構師不僅僅要做好技術(技術不僅僅是包含于開發層面,還有前端建構,運維,測試等領域),還要了解業務,不懂業務的架構師不是一名好架構師。當然,架構也不是設計出來的,而是伴随着項目的發展一步步不斷演進出來的。**

薛偉:程式員在基于本位子產品開發上,應該多想想支撐業務及整體需求,多考慮支撐業務問題的實際解決,以及突破所轄子產品及端的協作兄弟的換位技術思考。隻要多實踐,多務實解決切實問題,就能自然發展成為架構師,所有技術架構思維其實都是相通的。

sama:這個世界上最重要的是人,我們索要學習的也都是人創造的。是以跟随大師和領會大師的意圖也非常重要,試想一下你有關注過大師的社交号或者社群嗎?大師的作品有沒有詳細研究過?有沒有每天堅持用谷歌檢視現在世界上任何與架構有關的文章?有沒有遇到問題去學習背後的原理?如果你做到了,就說明你已經在架構師的路上了!

還有一點就是工具集,架構師的工具集都是精心對比研究過的,因為在架構師眼裡效率是至上的。正如「王牌特工」裡師傅帶給徒弟的特工「武器庫」一樣!

富麗餅幹:沒有完美的架構,隻有最适合需求的架構!架構師更要了解需求,了解産品方向和産品經理的思維,一味追求技術上完美的架構,最後很容易做成空中樓閣,百度騰訊都很強調架構師對産品的了解和産品經理的溝通能力。

陳馳遠:在技術方面,我覺得架構師首先得了解自己做的業務,業務上有規劃,能找到現階段最适合解決業務上問題的方案,并且對之後的發展有概念和對策。同時,保持對業界技術的關注,知道如何使用新技術解放生産力。永遠隻有最合适業務的架構!

此外,借力也很關鍵,架構師得有一定的人脈,遇到自己不擅長的問題,能找到擅長問題的牛人,向他們學習,可以少走很多彎路!

伍星:架構師的成長離不開平台的發展。小平台很難造就優秀架構師,架構師都是在瓶頸和崩潰中成長的!

李帥:基礎紮實,多思考,多實踐!而且每個人的情況都不太一樣,需要因人而異,但最根本的就是對程式設計的熱愛以及對美的思考!(貌似已經提升到哲學的範疇了!)

牛逼的人都是自學成才的,别指望有人能把你教成大牛!(送給所有閱讀本文的程式員同學)

普通程式員通向架構師的最佳路徑?

繼續閱讀