爲什麼大部分的程序員成不了架構師?爲什麼很多程序員沒有升級到架構師?

爲什麼大部分的程序員成不了架構師?爲什麼很多程序員沒有升級到架構師?

對我們程序員來說,發展的途徑要麼是走管理崗,從開發升級到項目經理甚至是部門經理;要麼走技術升級路線。不過在技術路線方面,無法升級到架構師的程序員不在少數。一方面,在不少公司的高級開發崗位上,無法讓程序員實踐甚至接觸到架構師的技能,另一方面,有不少程序員甚至不清楚架構師所需要掌握的技能和升級途徑。所以從結果上來看,至少有5成的程序員止步於“高級開發”的程度,這是非常令人可惜的。

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

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

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

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

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

4:會鑽研的碼農又分爲喜歡廣度瞭解新技術蜻蜓點水的,以及深入鑽研用到知識的。瞭解廣度的碼農又有少部分願意深入某些技術,喜歡深入研究的又往往缺乏廣度知識。

5:極少深度廣度都關注的碼農又分爲爲技術而技術和爲業務而技術的。純爲技術而技術的碼農在國內的軟件行業需求太少,且需求的往往不是應用軟件領域了。

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

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

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

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

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

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

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

金字塔結構

自古以來,金字塔結構(人羣分個三六九等、高中低三檔)在人類社會的各行各業中普遍存在,這是客觀規律。恐怕再過千萬年,也是如此。

人類社會爲什麼普遍、長期存在金字塔現象?其他動物,比如螞蟻、大雁社會,有嗎?這個問題就很深了,刨根問底有難度,也許應該問上帝。

金字塔結構/現象從根本上決定了大多數人做不了軟件架構師。不光軟件工程行業如此,能做技術領導的始終必然只是位於中上層的少數人。

英文水平差

據說中國有 700 萬碼農,英文不好似乎是一個比較普遍的現象。英語,尤其讀寫不好,把合格的架構師候選人選砍掉一大半。

小富即安的心理

很多碼農每月拿到萬把塊錢,就心安理得了,不再有更高的追求。求穩求安定,這符合大多數人的心理。不滿於現狀,堅持不斷學習,努力提高自己的開發技術和管理水平,擁有強烈進取心,想一朝一日做編程高手、軟件架構師的人畢竟是少數。

二三流企業的壓制

架構師不是隨便什麼人可以做的。在一個企業團隊裏,架構師作爲研發和管理骨幹,具有特殊的地位和權利。

知識結構的缺陷

架構師,程序員, 產品經理的區別,大概就是建築行業裏建築師,建築工人,甲方業主的區別。產品經理說我要建這麼這麼一棟樓,架構師說好吧,我來幫你看看是做成磚木結構還是 框架結構,房型怎麼設計,水電氣怎麼佈局,預算多少,然後程序員上陣,按照圖紙把樓建起來。運營是大樓的物業管理,負責營運大樓。

軟件開發越來越成爲傳統行業(即便在互聯網企 業),一個成熟的軟件團隊內部自然會分化出這些角色,各展所長。但非常不同的是,建築工人很少能自發成長爲建築師,後者都是科班出身,因爲建築學科已經高 度發達,需要掌握結構力學,美學等技術,現在軟件行業還沒有這麼高的成熟度,程序員和架構師接受的都是一樣的計算機教育,所以程序員可以自學升級到架構 師,走一條不同的升級打怪路線。

爲什麼大部分的程序員成不了架構師?爲什麼很多程序員沒有升級到架構師?

那麼,架構師是什麼人呢?

按所工作的不同軟件層分,有網絡架構,系統架構,數據架構,業務架構,應用架構,平臺架構。

按所解決的問題領域分,有電商架構,支付架構,搜索架構,安全架構,性能架構,遊細架構,多媒體架構,等等等。

按其工作的深度來分,有集成架構,業務架構,模塊架構,框架架構,中間件架構,軟件架構,引擎架構,服務器架構,甚至編程語言架構。

是不是太亂了?好比在設計師的世界觀裏一切東西都需要設計。軟件也需要精心設計,在優秀的程序員眼裏,每一行代碼都需要架構!都體現了架構。

爲了解決問題,程序員自然需要架構,他們中的佼佼者被冠以架構師的名號,獲得了一定的話語權,逐步成爲一個職業分工,我想,這就是架構師的本來面目。

成爲架構師,需要經驗和眼界

老碼農分爲兩種:游擊隊和板凳王

坐穿板凳有利於積累經驗,而不利於開拓眼界

遊遍四海有利於開拓眼界,而不利於積累經驗

碼農的生活是高壓的,唯有熱情可以驅使你一邊吃着蘋果,一邊又去摘梨

然而,又有多少熱情沒有隨時間而冷卻呢?

如果你想要做到架構師這個級別,我自身是一名安卓程序猿,所以在這裏放上這樣的一份關於Android的架構進階路線圖譜,裏面的內容基本概況了目前互聯網的主流技術:

Android進階路線分析

Java語言進階

  • 泛型與註解在Retrofit中的應用
  • 多線程與Java File IO操作應用實戰
  • Rxjava原理分析
  • JVM與內存泄漏原理解析
  • ClassLioader與反射在Hook中應用
  • 動態代理機制在源碼中的應用

高級UI與FrameWork

  • UI繪製原理
  • 動畫原理
  • 事件響應機制
  • 屏幕適配
  • FrameWork源碼解析
  • 相機適配

360°性能優化

  • 從事件
  • 從內存
  • 卡頓調優
  • APP保活
  • 內存優化
  • 高性能編程實戰
  • OOM原理解析

NDK開發專題

  • C/C++基礎
  • JINI編程基礎
  • 圖像處理與熱修復應用
  • 音視頻開發
  • OpenCV人工智能
  • OpenCL 圖像繪製

前沿技術專題

  • 熱修復/熱更新
  • 組件化/插件化
  • RxJava深入研究
  • 圖片與網絡架構
  • Google I/O大會技術
  • Kotlin項目實操

微信小程序

  • 小程序架構介紹
  • UI界面開發
  • 高級API實操
  • 微信對接實戰
  • 任務清單項目
  • 電影榜單項目

Flutter Hybrid開發

  • Dart語法
  • Flutter線程運行模型
  • Flutter與Native通信架構
  • Flutter內存調優
  • Flutter項目實戰

想要成長爲一個移動互聯網架構師,這些技能是必不可少的,除了上面的知識體系,小編自己在還一些平臺收集到了許多學習資料和個人總結的一些經驗,一線互聯網公司得面試經歷面試題在這裏分享給大家,包括不限於高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術;希望能幫助到大家,也節省大家在網上搜索資料的時間來學習,也可以分享動態給身邊好友一起學習!

好啦,文章寫到這裏就結束了,如果你覺得文章寫得不錯就給個讚唄?如果你覺得那裏值得改進的,請給我留言。一定會認真查詢,修正不足。謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章