【51CTO獨家特稿】一聽到架構師,首先便想到的是在一間寬敞的房間中間坐著一位衣著得體的中年男人,望著落地窗外的風景凝思,萬千思緒在腦海里翻騰,頗有運籌帷幄千里外的氣勢。程序員究竟是做架構師還是項目經(jīng)理,最近看到微軟潘正磊女士的一篇博文,給出了一些啟示。
51CTO開發(fā)頻道年終巨獻:架構師最怕程序員知道的十件事
“當時我們團隊來了一位剛被提拔的開發(fā)經(jīng)理,每次當我陳述完一個問題,他都會迫不及待地提出他的解決方案。在這之后很長的一段時間,他還是一直習慣性地建議我如何如何處理問題。通過平日的觀察,我也發(fā)現(xiàn)他更喜歡花時間對技術和產(chǎn)品進行深度探討,而非團隊管理。于是幾個月后,我找了一個機會跟他說,“我覺得你做軟件架構師說不定會更有意思。”而他自己也覺得這個建議不錯。幾個星期后,他真的轉去做架構師的工作,我們團隊也迎來了一個新的開發(fā)經(jīng)理。”
這個例子中體現(xiàn)出來的正是架構師深厚的技術底蘊,或許很多程序員更向往項目經(jīng)理的職位。從上面我們可以看出,程序員在平時的培養(yǎng)過程中還是過于看重技術處理細節(jié),而不喜歡管理。這樣看來,成為架構師還是更多程序員的最終歸屬,盡管項目經(jīng)理的頭銜看起來是更吸引人,但是架構師作為一個純技術性崗位,更適合廣大的程序員。
修煉內(nèi)功不等于死鉆開發(fā)技術
講到內(nèi)功深厚,大家心想“那我就往死里鉆研技術,不就完了?”。確實,很多人理解的內(nèi)力就是開發(fā)技術,包括語言的掌握、對框架的掌握、數(shù)據(jù)庫管理能力、安全管理能力等等。但是我們看到,架構更多的內(nèi)力體現(xiàn)在對技術的綜合運用上,光會編程的程序員,最多就能做到高級程序員,也就是技術實現(xiàn)上的高手。
51CTO編輯在對高級架構師王翔先生的采訪中,曾提到這樣一個問題“假設有三名優(yōu)秀的程序員,A尤其擅長溝通與團隊管理;B的編程功底深厚,且對新技術能快速掌握;C在邏輯思維和抽象能力方面表現(xiàn)優(yōu)秀。您會重點培養(yǎng)哪位程序員成為架構師?”
王翔的回答是這樣的“C,后面依次遞減是B、A。A更適合做項目經(jīng)理、產(chǎn)品經(jīng)理。而且根據(jù)個人的經(jīng)驗,雖然女性程序員開發(fā)階段顯得不如男性那么快深入和入手(Programmer),但能堅持到Developer、S. Developer、 Designer、S. Desinger階段她們的思維能力優(yōu)勢就顯示出來。如果B是女性Desinger級別的人員,我寧愿選擇培養(yǎng)她,因為架構師在創(chuàng)造性、知識匯總方面根據(jù)個人經(jīng)驗似乎女性更適合。”這里我們看到,內(nèi)力更多的是一種思考能力,結合技術的思考能力。光有程序開發(fā)的能力,不會思考,那只能做個代碼狂人。只思考而沒有腳踏實地的技術開發(fā)能力,那就是忽悠人的表現(xiàn),更不招人喜歡。
內(nèi)功的修煉第一層,自然是開發(fā)技術的培養(yǎng)。從寫第一行代碼開始,就多想為什么,有沒有什么其他的路徑能實現(xiàn)同樣的功能。當我們寫了很長時間代碼了,是不是就該考慮更多的問題,比如優(yōu)化、預期未來。其次是對架構的熟悉,下面是大家比較熟悉的Struts 2架構圖。要做一名優(yōu)秀的架構師,就得對各種架構做到了熟于心。
更高層次的修煉,就在于不同技術的學習。要懂得數(shù)據(jù)庫知識,懂得安全監(jiān)控方面的知識,還要懂得網(wǎng)絡構建方面的知識。這是比較高層次的內(nèi)功修煉,很有可能與程序員目前所處的開發(fā)環(huán)境關系不大,對程序員來說并不是什么有用的東西。但一個優(yōu)秀的架構師必須懂得這些,才能更好地抽象軟件的使用環(huán)境,選擇符合需要的架構以及開發(fā)模式。
本文為《架構師害怕程序員知道的十項技能》中的內(nèi)力篇
聯(lián)系客服