當前位置:招聘信息大全網 - 人才招聘 - 為什麽有人說大部分碼農做不了軟件架構師?

為什麽有人說大部分碼農做不了軟件架構師?

從事軟件開發多年,在編程行業真正的架構師比例少的可憐,就目前國內軟件開發環境而言,真正意義的架構師還不是很多,因為大部分的代碼框架幾乎從開源代碼社區裏面拿出來,然後定制成自己公司產品需要的,其中研究框架的時間比較長的,並且能夠深度定制的程序員就算是高手了,因為很多開源的代碼更新速度非常快速,能跟上開源社區的代碼更新速度的企業已經是實力非常強的公司了,國內企業現在真正意義上的從頭開始設計壹個框架然後推向市場相對比較少。

經過十幾年的發展,國內編程人才的平均水平已經上來了,雖然在頂級程序員由於在編程底蘊以及生態系統這塊有差距,但基層的程序員水平已經上來了,國內很多互聯網公司做的產品有些已經不弱於歐美等企業,這些都是國內程序員水平提升的結果,而且現在由於培訓行業在國內普及,入門級別的程序員在國內數量巨大,所以很多人喊著國內程序員行業已經飽和了,已經不適合再去從事程序員的工作了。

事實上國內軟件行業內需依然足夠多,特別是現在的三四線城市都陸續出現了軟件公司,而且規模和數量都在提升,國內企業對中高級程序員的需求量還是非常巨大,五六年大小公司對於這類的人才招聘壹直沒有停止過,而且薪資水平還維持在非常高的水準,了解這個行業現狀對於規劃自己的職業生涯還是有著非常大的好處。

架構師這種職位可遇不可求,基本上國內架構師都是自己本公司內的優秀的軟件工程師,成為了優秀的程序員並且在公司內部深得公司的信任願意給這種突破的機會,抓住了後邊的就會給與架構師的待遇,不是每個程序員天生就是做架構師的料,關鍵還在於平時的積累,有了機會抓住了,要成為架構師先要自己成為壹個優秀的程序員,優秀的程序員需要具備什麽樣子的因素,現在就根據自己技術生涯的壹些經歷分享給大家。

基本功紮實。 很多程序員在入門之前由於在學校裏面比較重視基礎,還能看看基礎,在成為了程序員之後就開始放松了對這方面的要求,所以導致很多程序員見到有筆試的公司,直接就選擇了放棄走人,不能講這類的程序員水平不行,但起碼不是優秀程序員的範疇, 優秀的程序員是經得住基本功考驗的,是不怕這些所謂的筆試題目的。

算法紮實。 很多程序員做了很長時間還不覺得算法挺重要,算法貫穿整個技術生涯,如果沒有意識到這點說明意識層面還沒理解到,證明需要彌補的東西還是非常多,有些程序員可能是學習了壹門編程語言就匆匆去找工作了,運氣還不錯還找到工作了,沒有很好的規劃技術生涯路線,壹個標準的程序員需要的壹門基礎的編程語言,熟悉數據結構,並且穿插著學習算法,這三樣也是優秀程序員的標配,學習技術不是由著自己性子去做事,需要有規劃,這其中不能少了算法的因子。

錘煉編程思想。 很多程序員覺得能夠寫代碼,時間長了經驗到位了慢慢就能熬成資深技術專家了,程序員不是靠著熬日子過的,需要不斷的提煉編程思想,舉個簡單的例子,做網絡編程如果懂得了壹門編程語言的編程經驗,相信切換到別的語言只需要很短時間內就能搞定,而且積累總結類似的場景以後遇到這種場景都能靈活應對,還能同步遷移到類似的場景,不能只是為了做而作,僅僅就是為了完成任務,那麽提升的空間有限,不能因為工作承擔的東西就這麽點,而不去補充其余的東西,善於總結也是優秀程序員需要具備的壹種意識。

成為架構師沒有所謂的模板,而且有些人壹輩子也沒有這種機會,但想要達到這種境界就需要先讓自己成為壹個優秀的程序員,這樣子遇到有理想的企業抓住機會就上去了,壹旦進入這個級別後面的編程生涯就會有根本的變化了,關鍵在於平時壹點壹滴的積累,讓自己長期處於壹種高效的學習狀態,有太多的程序員經歷了幾年的適應期就提前讓自己進入了舒適期,結果隨著年齡的增長技能沒有相應的跟上導致年齡大了競爭力下降,出現了老了被企業淘汰的悲劇,什麽樣子的態度決定什麽樣子的人生,也就決定了什麽樣子的結局,希望能幫到妳。

作為壹名IT行業的從業者,同時也是壹名計算機專業的研究生導師,我來回答壹下這個問題。

首先,目前IT行業內大量的程序員確實無法成長為架構師,主要原因集中在三點,其壹是自身的知識結構不足以支撐向架構師方向發展;其二是崗位工作任務受限;其三是行業叠代速度太快,學習壓力較大。

早期的架構師主要集中在後端領域,針對於不同的開發領域,對於架構師的要求也不盡相同。總的來說,架構師的任務主要集中在三個方面,其壹是整體技術框架設計;其二是技術選型;其三是解決難點問題。所以對於程序員來說,如果想成長為架構師,需要做好以下幾個方面的知識儲備:

第壹:豐富的開發經驗。 開發經驗通常是軟件架構師的基本要求,通常軟件架構師都是從初級程序員、主力程序員、研發級程序員等崗位壹步壹步成長起來的,每壹個階段都會積累壹定的開發經驗,這些經驗對於架構師的方案設計會起到重要的作用。對於大量的程序員來說,從主力程序員向研發級程序員發展會存在較大的困難,主要原因就是基礎知識結構的問題,不少程序員通過讀研的方式完成這壹步升級。

第二:豐富的知識結構。 架構師的知識結構不僅僅局限在技術層面,還需要掌握大量的行業知識,不同行業領域往往有不同的特點,要能夠根據這些特點來完成具體的方案設計。

第三:緊跟技術發展趨勢。 架構師壹定要緊跟技術發展趨勢,同時能夠對於未來的發展方向有較強的認知能力,這對於架構師的方案設計會起到重要的作用。對於技術趨勢的認知能力,是判斷壹名架構師能力的重要因素。

架構師並不是壹個很好玩的升級路線。

相對於架構師的開發工作。研發工作更有趣,更容易得到 社會 的承認,不論是圖形學,還是人工智能,區塊鏈,甚至黑客(網絡安全),憑借妳的智慧和努力,可以在短時間內取得成就,並達到壹個很漂亮的高度。研發方面是拼年輕,智商和體力的工作,有眾多的天才少年取得漂亮的成果,每年有大量新的技術突破和文獻等著大家研究。妳做的每壹件事情,都能表現出漂亮的成果,全局光照,計算機視覺。或者很容易賺到很多的錢,自動駕駛或者區塊鏈ico,就算做 遊戲 外掛,其收入也大得超乎妳的想象。

而架構師不是,架構師拼的只有經驗,正確的方法和項目數量。《C++程序設計新思維》裏面有壹句話:“只有天才的程序員沒有天才的構架師。” 在構架師的世界裏不存在天才,只存在重構。壹定要有正確的方法(敏捷開發),然後就是無數個項目和時間的鋪墊。然而對壹個架構師應該明確,我們的職責是內部質量而不是外部質量,我們要把軟件做的強壯且易易擴展。但妳會發現,對於外行麻瓜來說,這根本不吸引人,麻瓜老板經常說壹句話:妳功能做不出來我們公司就破產了,別他媽的再花時間重構了。

至於為什麽架構師很少

內部原因是: 架構師太無趣了,相對於圖形學光照算法,妳卻強調測試驅動重構持續集成。研發工程師會得到大量的外部激勵,所有人都去贊揚他們的成果。而構架師需要從自身產生激勵的能量,比如對代碼的潔癖,重構在不改變功能的情況下不斷優化代碼質量,壹個分層,壹個正確的依賴關系,甚至壹個精簡美麗的命名,都需要由衷地感到興奮和刺激。否則很難熬下來。

外部原因是: 浮躁的 社會 容不下壹個架構師成長的時間和空間。壹個框架師需要大量的項目經驗,超級長的編碼時間。堅持正確的方法和壹個融洽配合的團隊。國外的架構師都是大胡子,而國內程序員到30歲,老婆就催著要去做管理崗位了。和研發工作拼智商不同,架構師就拼的是經驗,沒大胡子沒五六十歲很難成為xx之父這個級別。

行業原因是: 架構師容不下架構師。架構是藝術不是科學,沒有壹個統壹的標準,每個成型的架構師心裏都有壹套屬於自己的程序結構和原則,妳可以看到十個圖形學程序員基於壹個算法合作,但妳很難看到兩個架構師做壹個項目不打架的。架構師需要有自己的團隊來驗證自己的觀點和***同進步,但就如同食肉動物永遠是食草動物的十分之壹,行業也沒那麽多團隊給架構師來糟蹋。

經歷過很多項目洗禮,並有自己的想法和能力的架構師,必然是稀有動物。

但看起來無聊的架構師有什麽用呢?

他是輔助英雄,給整個團隊加各種屬性光環:降低代碼中的混亂(熵),讓團隊中初級的程序員做出高級的代碼,提高單位時間效率避免加班,讓團隊更容易進入未知領域,大幅度降低企業成本。

我現在做的混合現實領域,這是壹個新的領域,有壹個優秀的架構師可以在沒有前人經驗的情況下開疆辟土,並且可以帶起來整個團隊的開發質量,降低成本給客戶更多的獲利空間。

這個問題不知道提出來的緣由是啥,其實問題不是很合適,不過還是壹分為二的來回答壹下,如下:

架構師不是誰都能做到的,我想說如下幾點:首先,應具備的素質應該是快速的學習能力,需要從平常的任何工作活動中,快速學習,包括從自己的本質工作完成,以及與他人的交流中,而後者又尤其重要,從別人那兒學來,而快速形成自己的理解並超越對方,而這,從自然規律角度上來講,這只有少數人能做到;

其次,需要具有全局的視野,能平衡整系統各子系統之間的解耦與耦合,這個需要積累,需要在各子系統內有實際項目的、比較成功的設計編碼的問題處理能力,而尤其是問題處理能力又尤為重要,這也不是段時間能達到。

第三,在這個行當內,能靜下心來踏踏實實,保持饑渴的學習,保持積極正向的心態,不斷的越挫越勇,始終往設計架構方面努力,在當下整個行業浮躁的環境下,很對都想通過不斷的跳槽來達到漲薪的目的,這又會淘汰壹大部分人。

最後,即便具備了素質,妳能否當上架構師,取決於客觀因素了。因為壹個架構師,決定了他所在領域的發展規劃,以及當前的問題現狀的改進,這個位置至關重要,不是那個人,上壹層組織關系是不會讓妳做這個位置的,上層組織還會考察妳除了技術能力以外的,諸如與人溝通,管理妳的上下級,包括妳的上級的上壹級到連三級的關系,關系到妳的直接老板的,這些其實就很難說了。

呵呵,當然了,還有其他很多了,靠這個問題是說不清道不全的。

真正的軟件架構師對各方面的職業素養都要求比較高。架構師的工作,不是平時工作的簡單堆疊,除了專業技能要過硬外,還要思維活,想東西細致全面,需要自己去主動去接納工作以外的大量知識。此外,在性格方面也有壹定要求,壹個軟件架構師往往還需要具備善於溝通的品質。

總而言之就是要技術好、思維活、會交際。大多數程序員做不到架構師的位置主要是因為自身能力達不到,其次是壹個公司裏面架構師占比本來就想小。

壹般程序員在公司負責的工作主要是維護日常的需求,在原有的架構上進行修改,所以很少會接觸到架構層面的東西。長期缺少接觸相關的知識及業務的機會,久而久之離架構師的標準也會越來越遠。

年輕的程序員在知識儲備上無法達到成為架構師的標準。

現代的高可用架構壹般為:RDS、Cache、MQ、後端服務、監控服務。而隨便拿其中壹個點,都有著非常多的技術點知識點需要掌握。

比如在多系統交互中,如何保證MQ中的消息能被對方系統消費,如何設計高可用的服務負載均衡,這些都是需要很多經驗才可以解決,但是壹般的程序員又不容易接觸到架構設計。

而年紀大點的程序員要麽是後期缺少折騰的的動力,要麽在職業發展途徑走到不同的分岔路口,最終走上架構師這個樹枝上的寥寥無幾。

小富即安的心理。很多程序員滿足於現狀,缺少堅持不斷學習不斷提高的動力,每個月拿著萬把塊錢的工資,心安理得,懶得去折騰。

壹個公司架構師在廣大碼農裏面占比還不到10%,能成為架構師的壹般都在公司裏擔任研發和管理的角色,想象壹下公司團隊的人員金字塔妳就知道競爭力有多大了。

平常,開發的團隊壹般都是10多人組成。幾個團隊間壹般會存在壹個技術面最廣、技術經驗較充足的人,叫做架構師或者說是TL。而架構師的存在,壹般在眾多的碼農中占的比例少之又少,可能連碼農總人數的10% 都達不到。軟件架構師也存在初中高級。

碼農都會寫代碼,對計算機編程語言都有自身的理解。但是很多時候,程序員或者說是碼農只是機械的完成自身的編碼工作。為了完成任務,成長有限。

看到這裏,很多人都會說:編碼時間長了,經驗積累的足夠,自身也就逐漸成為了資深技術專家。想法其實不能說是不正確,在壹個人見多識廣後,自然自身的內涵也就足夠的豐富。從碼農的角度出發。除了架構師,很少有35歲以上的人士會在互聯網做程序開發。而壹個人想要通過機械性質的編碼積累經驗。需要多少年成長才能見多識廣呢?是否會有碼農堅持到那壹時刻呢?壹個值得商榷的問題?

碼農是壹份年輕人為主的職業。平均從業者的年齡都是20多歲。慢慢熬、慢慢積累在碼農中也不能說錯。但是很多人在軟件開發領域積累壹定的經驗後就會轉型不做開發。

所以說,長久時間的碼農很少。而在短暫的碼農開發軟件的工作中,脫穎而出,成長起來的人更少。

些許拙見,供您參考。

從事互聯網開發多年,歡迎大家騷擾

 小團隊壹般 10 人左右,其中常常是技術最牛的人做架構師(或TL)。所以,架構師在廣大碼農中的占比大概平均不到 10%。而架構師也可以分為初級、中級、高級三檔,江湖上真正高水平的軟件架構師就更少了。

 所以,大部分(超過九成的)碼農幹上許多年,還是做不了架構師,這是什麽原因造成的呢?

 1:碼農分為真的能寫代碼的,以及自認為能寫代碼的。

 2:真的能寫代碼的碼農又分為自認為寫的不錯的,以及真的還不錯的。

 3:真的能寫不錯代碼的碼農又分為會鉆研會不斷優化的,以及安於現狀的。

 4:會鉆研的碼農又分為喜歡廣度了解新技術蜻蜓點水的,以及深入鉆研用到知識的。

 了解廣度的碼農又有少部分願意深入某些技術,喜歡深入研究的又往往缺乏廣度知識。

 6:為業務而技術的深度廣度都了解的碼農,又需要有良好的溝通能力。

 7:而溝通好的,又有壹部分當PM去了。

 8:然後剩下的,又有壹部分慢慢脫離實際開發(不再做任何實現)或者開始依靠拿各種中間件搭積木來作為“架構”手段。

 9:除去這些,剩下對業務有壹定了解,對技術廣度上有多種涉獵,深度上對部分技術研究徹底,還有很重要的壹點,考慮問題足夠細致全面。

 10:細致全面善於溝通,技術上深度廣度都沒問題, 又喜歡這個工作,還會不時做底層實現,從業務和開發兩個角度出發,搭出“架構”來是為了開發效率,為了運行效率,為了開發質量,為了業務靈活和運行穩定,為了維護方便等等這樣的人,個人認為可以稱為“架構師”。

 而真能滿足這種需求的,別說題主的10%的比例,1%能不能達到我也持懷疑態度。其實現在的“架構師”大多數都停留在8這個層次,甚至很多在5這個層次就當上title上的架構師了。

 總之,成為架構師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對於非技術能力上也有壹定的要求,不僅如此連思維方式都很重要,外加職業發展中又有很多岔路,最後走到架構師這根樹枝上的就寥寥可數了。

 如果妳想要往架構師的方向發展的話,那或許妳可以看壹下我分享給妳的這份進階路線圖,主要針對2到5年及以上工作經驗的Java開發人員,裏面的技術包涵了Java高並發、分布式、微服務、源碼分析、高性能等技術,這些也是目前互聯網企業比較常用的技術,那麽來詳細看看。(圖片可以保存)

  壹:常見模式與工具

 學習Java技術體系,設計模式,流行的框架與組件

  常見的設計模式,編碼必備

  Spring5,做應用必不可少的最新框架

  MyBatis,玩數據庫必不可少的組件

 

  二:工程化與工具

 工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的:

  Maven,項目管理

  Jenkins,持續集成

  Sonar,代碼質量管理

  Git,版本管理

 

  三:分布式架構

 高並發,高可用,海量數據,沒有分布式的架構知識肯定是玩不轉的:

  分布式架構原理

  分布式架構策略

  分布式中間件

  分布式架構實戰

 

  四:微服務架構

 業務越來越復雜,服務分層,微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪些呢?

  微服務框架

  Spring Cloud

  Docker與虛擬化

  微服務架構

 

  五:性能優化

 任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決壹線性能問題,Java技術體系,需要了解:

  性能指標體系

  JVM調優

  Web調優

  DB調優

 

  如何壹起學習,有沒有免費資料? 有需要的滴滴滴哦

 

軟件架構師?似乎是個明確的職位或者崗位了。然而,他在軟件產品開發過程中,充當什麽角色?起什麽作用?確眾說紛紜,缺乏***識。成為壹名架構師,碼農根本沒有明確的努力目標。這是問題的關鍵,架構師,是上級領導、老板對某些軟件開發人員的“認同”,是某種管理理念的體現,不是軟件產品生產活動中某個具體的崗位、角色。