BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

過去的金三銀四的招聘季,公司的管理者都在思考:在現在的市場環境下,到底應該為自己的公司注入怎樣的新鮮血液來維持發展。工程師們同樣也在思考如何獲得更多成長和晉升的途徑。

不是人人都能做架構師

Eduards Sizovs 是 DevHub 的創始人,立志於為軟件工程師群體提供專業的職業諮詢服務,同時也是一位歐洲知名的技術佈道師。

今天的文章基於 Eduards Sizovs 的行業經歷,主要介紹了現在程序員市場中稀缺的 “T” 型人才(既擁有豐富的技術背景,同時對業務也有一定的理解能力),以及這類人才在組織中發揮的重要作用,為工程師群體描繪了一條新的職業發展道路,幫助個人和公司得到更長遠的發展。

今天,我的前同事 Alex 給我打了個電話,討論了一下他現在所在的新興互聯網公司的一些境遇。

Me:最近怎麼樣呀?

Alex:還行吧,最近公司在招一個首席架構師。

Me:那挺好的,你沒去爭取一下麼?

Alex:我去了,但是被老闆拒了,聊了一下他覺得我不太合適。

Me:你覺得自己能勝任麼?

Alex:廢話,我有 7 年的大型項目經驗,精通各種架構。能持續產出簡潔高效的代碼並能主動去解決各類歷史遺留問題,流轉到我這裡的工單都能最快速地處理。我應該是全組代碼水平最好,研發效能最高的架構師了,不提我提誰?

Me:那你想過沒有,或許就是這個原因導致你沒有被選上?

隨後我們聊了些其他的事就掛了電話,雖然 Alex 不太高興,但是我感覺還挺好的,因為找到了問題的關鍵。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

於是,我給 Alex 公司的老闆 Andrey 打了個電話。

Me:好久不見,聽說你們最近在招首席架構師,為什麼不直接從現有團隊裡面提拔一個呢?

Andrey:比如 Alex ?

Me:比如 Alex。

Andrey:公司現有的技術團隊的確擁有很多很厲害的架構師,但是我認為他們都不太具備一個首席架構師所必需的素質。

Me:能展開說說麼?

Andrey:這個事情的邏輯是這樣的:一個首席架構師跟一般程序員的主要區別並不在於他是否是團隊中最聰明的那個,而在於他是否有團隊驅動力,是否能持續推動團隊的改善和進步,能幫助團隊中的新人快速地進階。雖然不一定要像精神領袖那麼厲害,但必須具備相應的領導力,這種領導力不僅需要體現在研發團隊中,還要能影響產品、運營、市場等部門的同事,甚至也要能在管理層擁有一定的決策權。所以我認為一個首席架構師需要能在公司內更好更快地組織資源,推動組織整體向前,並帶來正向的企業文化

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

Me:所以你認為首席架構師在幫助程序員的同時也要去了解非技術人員的問題?

Andrey:沒錯,經常聽到程序員們抱怨“業務方面”的同事完全不懂技術,溝通效率也非常低,但光是抱怨解決不了任何問題,必須要有人在中間搭橋,解決這些問題。

首席工程師的定位就相當於公司內部的外交官。他必須有足夠的溝通能力,能跟不同的人打交道;能遊走在不同的部門,打通上下層溝通渠道;要敢於提出那些隱藏在公司內部卻很少有人敢於提及的問題,並具備足夠的領導力來贏得大家的支持。

Me:從你的描述來看,這個人既要有豐富的技術背景也需要有一定的對業務的理解能力

Andrey:這個職位需要的是 “T” 型人才,不僅僅深耕於技術領域,對很多原理型的東西有深厚的積累,同時還要能延展出去,跟運維、品控、安全、產品、人力、市場等領域的人共同協作,幫助公司進步。

Me:感覺是一個一半工程師一半業務人員的感覺。

Andrey:理應如此,現在大部分研發團隊都僅僅把功能上線的數量當作考評的唯一指標,這種方式其實已經過時了。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

對於任何以盈利為目的的公司來說,賺錢都是公司最重要的目標之一。現在很多功能都是為了上線而上線,產品、技術、運營、市場等團隊之間缺乏有效溝通,上線了一堆功能卻沒有辦法給公司帶來任何增長點。

我們需要更多 “業務型” 程序員,他們能從全局出發,理解整個產品從最初的設計到部署再到如何才能打動客戶給公司帶來更多的效益,能夠找到公司現有的不足並承擔起相應的責任來解決問題。

這些工作可能是解決研發流程問題,或者是建立新的跨部門溝通機制,甚至是解決招聘問題。藉助鍵盤來實現商業價值的機會其實遠比工程師們想象的要少,如果你手中只有錘子,那你看所有的問題都覺得像釘子。

對於我的公司來說,越多 ”業務型“程序員越好,而一個好的首席架構師能給其他程序員樹立一個學習的榜樣。所以我覺得找一個首席架構師的意義不亞於一個創業合夥人。

Me:但是按照你的標準,基本上已經篩掉了市面上包括 Alex 在內的 99% 的程序員了。

Andrey:一個首席架構師是一個能給公司內不同組織都帶來影響的人,這樣的人正如你所說的,市面上 99% 的程序員都不能滿足我的需求,但是為了公司的發展,也只能繼續尋找了。

總的來說,我覺得我們這個行業需要:

  • 更多的“僅以上線目的程序員”,業務性程序員。
  • 更多的 ”碼農“,T 型人才。
  • 更多的 “抱怨”,跨組織溝通技巧。

首席架構師核心技術能力

那麼,一名首席架構師該擁有的核心技術能力是什麼?

(1) 要具備紮實的Java基礎

這裡所謂紮實的Java基礎不是我們通常所理解的Java語法、面向對象的概念,而是能深刻理解Java的多線程開發,熟練使用NIO技術優化網絡編程,瞭解JVM的底層機制,具備底層性能調優的能力,這些技能恰恰是Java開發人員往往忽略的基礎。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

(2) 深入學習常用開源框架

很多小夥伴可能會很困惑,為什麼BAT的面試官總是喜歡問源碼?其實我們常用的Spring、MyBaits這樣的框架可以說是JAVA裡面最經典的教科書,從中你能學習到很多寫代碼的經驗技巧,而去悟開源框架中蘊含的優雅架構設計之道這才是最重要的。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

(3) 高性能分佈式系統設計與應用

根據雙十一日誌統計,前端系統有效請求約60w以上的QPS ,而後端cache的集群峰值近2000w/s、單機也近30w/s,互聯網大廠的架構師面對的就是這樣的生產環境,所以分佈式、緩存、消息這樣搭建高性能系統的技術必須掌握。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

(4) 微服務(分佈式服務技術)

微服務架構是一種架構風格,整個應用被劃分並設計為以業務域為模型的鬆散耦合的獨立服務,方便橫向擴展能力、伸縮性強、便於開發和維護等等這些是微服務與生俱來的優勢。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

(5) 溝通合作的能力

程序員的戰鬥,往往不是一個人的戰鬥,我們如何在一個平臺下高效的去重,進行代碼review,對功能進行調整、debug,做到在統一的規劃下步步為營,混亂的堆代碼的過程中找到自己的記錄。這一切都依賴於有效的工具,Git、Maven和jenkins。

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

讀者福利

最後,我整理了一些相關架構資料,技術知識點剖析教程,還有和廣大同仁一起交流學習共同進步,還有一些職業經驗的分享。可以轉發+後臺私信回覆:【java】獲取資料傳送門

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

BAT管理者都在思考:為什麼技術最牛的碼農當不了首席架構師?

轉發+私信回覆:【java】獲取資料傳送門。

相關推薦

推薦中...