架構師:要成為百科全書式的智者
原創【51CTO獨家特稿】通常來說我們將架構師分為系統架構師、軟件架構師等等。雖然有分工不同,各自所處的層次也有不同,但是究其核心能力,跨領域知識的學習能力,是架構師的強項所在。
#T#
首先,作為一名卓越的程序員,架構師肯定不欠缺開發方面的知識。從架構到方法論,從數據處理到安全監控。可以說IT開發層面上,架構師可以做到爐火純青的地步。但是這僅僅是一名卓越程序員的能力級別,離架構師那還有很大的一段距離。
架構師身為一名技術***,需要通過發散知識的光芒來統御開發團隊的。如果只是對本行業知識做到爛熟于心,那還僅僅是一名熟練工的水平。要想晉升更高的層次,還需要跳出“只緣身在此山中”的困惑。例如在目前國內架構師,至少有網絡領域為依托,物流金融證券等熟知越多越好,這個是應用級別。比如南天的金融平臺研發部門,但是這個成不了底層平臺架構師。再往上走,很多公司的研發人員不是精通計算機,可能是物理極為精通,比如中軟研發聲納軟件部門很多人對數據信號極有研究。
很多程序員對架構師似乎存在偏見
這里就會出現一個常見的問題“架構師是不是一個只會夸夸其談,只會忽悠下面人而對軟件開發了解不多的人?”更尖酸的問題還在于架構師連一段代碼都不會寫。相信這是一定的誤解,就好像銀行的高層管理人員,要更多的從宏觀的角度考慮問題,盡管他們點鈔的能力肯定不及下面的柜臺人員。事必躬親的諸葛亮,***的結局還是國破家亡,過多的干預細節忽視整體,絕對是要打敗仗的。架構師學習更多跨領域知識,也是為了在接受一個項目時,能更快更準確的找到解決問題的“命門”。
有的程序員也會說,如果多學習跨領域、跨學科的東西,會不會成為什么都懂,但什么都不精的人?其實在這里的跨領域,并不是要求大家都成為每個領域的專家。最重要的是有一門敲門磚,學習的引子。如果開發一套金融系統,對于財務結算以及處理方法都不了解,那別說是勝任架構師的任務,連普通程序員的工作也不可能做好。假設大家工作一段時間后,對某領域很了解,但由于工作變動的緣故,到其他公司后,開發的領域完全不會。這里就要用到跨領域知識學習的能力了,需要大家樣樣都要知曉。
談到跨領域學習,知識面廣似乎是***實現的目標,只要博覽群書,加上高中之前各學科扎實的基礎,相信大多數程序員本身就具備一定的跨領域學習的能力。但想成為真正的百科全書式的智者,恐怕不光是簡單覺得眼熟就行。在條件允許的情況下,程序員其實可以去參加一些其他領域的專業考試。比如參加會計資格證的考試,抑或其他專業中較初級的考試。這樣的經歷,主要還是在于“以學促考”,通過一定的壓力讓自己能鉆進去學習。
還有一種跨領域學習的目標,就是多語種的學習。學習除英文之外的語言,既能開拓國際視野,也能在平時的工作中有所建樹。
架構師害怕程序員知道的技能,其實就是他們自己“獨門絕技”。雖然他們自己不說,但是我們自己還是能總結出來,在一定深度之內成為一個“雜家”并沒有什么不好。其關鍵在于所學的跨領域知識,能否成功的運用到工作中去。51CTO在獨家采訪王翔高級架構師時,他曾提到,一個致力于成為架構師的程序員。需要盡可能的參加大的項目開發,盡管積累1000個小項目的經驗也是很好的程序員,但好的架構師必須參與更大的項目,哪怕數量不多。從中我們能解讀到一個信息,大的項目意味著學科跨度的增大,所需要學習的跨領域知識必然也足夠大,也就更有利于程序員向架構師晉級。
本文為《架構師害怕程序員知道的十項技能》中的跨領域學習能力篇。