程序員,真有必要了解架構嗎?程序員
在解答這個疑惑以前,咱們先來看一則故事:旅行者路過某個工地,建築工人們都在忙碌。出於好奇,旅行者問第一我的在幹什麼,那人頭也沒擡地回答道:我在搬磚。旅行者問第二我的在幹什麼,這個匆匆擡起頭認真地說:我在砌牆。旅行者問第三我的在幹什麼,那我的臉上充滿了光彩,很自豪地說:我在建造聖索菲亞大教堂,將福音傳播給更多人!面試
有的人只關注眼下的「點」,有的人看到了延伸的「線」,還有人暢想出將來的「面」。就像在叢林中穿越,當你迷路找不到方向時,最好就是登上山頂或者爬上樹冠,讓本身有更寬廣的視野,從而找到通往目的地的最佳路徑。既要腳踏實地、低頭趕路,也要擡頭望天、暢想將來,正確的方向比速度更重要。接下來,咱們來看看架構跟你的「點、線、面」關係。架構
跟壘土坯房不一樣,建造摩天大樓離不開各式各樣的設計圖紙,構建複雜的應用系統也離不開架構設計。相信你所在的團隊也配了架構角色,或由資深開發兼任,或由專職架構負責。無論你從事哪方面工做,包括產品、開發、測試、運維或項目等,你都要跟架構師打交道,例如:產品可研、概要設計、技術選型、詳細設計、測試規劃、部署規劃、問題解決、招聘面試等等。若是對架構缺少了解,那你就不清楚你跟架構師之間的協做界面,不知道架構師能給你提供哪些支持或幫助,不知道如何跟架構師高效地協做。若是隻關心本身眼前的一畝三分地,那你很容易就滯留在「搬磚」層級。框架
中年危機,35 歲定律,這些命題對於你來講都是客觀存在的。隨着 IT 技術的不斷更新換代,普通程序員在市場上競爭力跟年齡成反比,除非你能提早構建出轉型升級所需的新技能樹。若是沿着技術通道發展,可選的晉升方向有兩個:技術專家,紮根於某個垂直的技術領域,往縱深發展;架構專家,構建出更加全面的技術體系,往廣博發展。雖然進化方向不一樣,但異曲同工,最終幫你打敗危機、突破自我,晉升到更高的職位,得到了更好的薪酬。若是我的性格特質更適合往架構方向發展,那你有必要提早了解架構師的主要職責和必備技能。十年磨一劍,五年小成,十年大成,轉型升級所需的專業技能不是一朝一夕就能練就的。若是你如今就主動籌備 35 歲這場戰役,那你很容易從」搬磚」躍遷至「砌牆」。運維
學而優則仕,即便修煉成了技術大神,但我的能量總歸是有限的,管理崗是全部通道的終極進化方向,只有帶領更多人,你才能作更大的事。在互聯網行業,「科技是第一輩子產力」體現的最爲淋漓盡致,無論往產品仍是管理髮展,擁有深厚技術背景都是優點。架構師,從某種角度看,就是全面瞭解各類技術或中間件的優劣,而後讓它們在你所設計的方案中揚長避短、優點互補,發揮出最佳的合做效用。這跟產品維度的業務架構、管理維度的組織架構有殊途同歸之妙,等你從技術架構中學習到知人善任、調兵遣將、排兵佈陣等道理,那你就能夠站上更高的平「面」了,從「砌牆」躍遷至建造宮殿。學習
25 歲入行搬磚,30 歲前擔任技術經理、兼職架構,35 歲前轉型應用架構專家,一路走來老兵哥我積累了大量轉型、架構、培訓和諮詢等實戰經驗。近些年我將這些經驗作了整理輸出,曾面向初中級程序員開設過多門面授架構課程,累計參訓學員超千人,頗受好評。接下來,老兵哥我準備在 CSDN 這個分享平臺,把你們關注度最高的這些架構問題梳理出來,但願你持續關注:測試
暫時先分享到這裏,後續老兵哥會結合我的實踐陸續分享相關經驗,例如:如何經過三步走策略完成轉型、如何藉助段帶式進階構建新技能樹等,期待小夥伴們訂閱交流,謝謝!架構設計