程序員進階:怎么成為一個軟件架構師?

序:的確沒想到隨手寫的東西有那么多的回復熔恢,不管怎樣還是挺高興的脐湾。在這里謝謝大家的關注了。其實做了這么多年的技術腦子里總會跳出很多的想法叙淌,但很少有時間靜下來仔細地思考思考秤掌,寫寫博客也算是一種自我歸納和總結吧。

?“軟件架構師”這個名詞也不知是什么時候進入我的腦中的鹰霍,不過一直就很疑惑闻鉴,總覺得和軟件的Team Leader之間有些糾纏不清。不過以我的觀點來看茂洒,軟件架構師除了沒有行政上的職責以外孟岛,與Team Leader也并無二致了,也就是一個軟件團隊的核心設計者和決策人督勺。

我可以把一個軟件研發(fā)工作者的從業(yè)經歷大致劃分為3個階段

第一階段是新手期

這個階段的典型特征是容易被新技術的華麗外表所迷惑渠羞。當在網上看到一種新技術的介紹或者心得,立即產生了大量腎上腺素的分泌智哀,干什么都想用一用次询,如果這時有人跟他說你的這項工作用這個不合適的話,要是性子急的人估計就直接開始罵娘了盏触,性子緩些的也會想盡理由說服你使用這個新東西渗蟹,實在沒辦法的話块饺,吃不下東西睡不著覺也想另找個地方用一下。

新手時期的程序員對需求和應用環(huán)境的掌控能力還不強雌芽,但卻往往信心爆棚地認為自己寫的代碼有多么優(yōu)雅高效授艰。當問題出現時,大多數人的反應就是:“怎么可能世落!在我的機器上運行的好好的淮腾!”。不管看了多少書屉佳,學習了多么高效的算法谷朝,實際的工作中需求和環(huán)境始終是變化萬端的。其實我也很不明白為什么那么多的技術類書籍往往都帶有或多或少的炒作成份武花,往往夸大某方面的優(yōu)勢圆凰,而對缺點卻往往一帶而過,同時体箕,相對思想算法講解专钉、技術介紹類的書籍,針對具體項目研發(fā)實例進行技術選型講解的書真的少之又少累铅,或許這也從側面反應了寫書人很多跃须,真正做研究的卻很少吧。

新手期程序員的不成熟還體現在團隊表現上娃兽,當一個問題提交給新手菇民,當跟蹤別人的代碼段時,經常會丟手不管投储,還理直氣壯地說“我這塊沒問題”第练,殊不知問題都沒有查清楚,你又怎知不是你的問題呢轻要?在團隊研發(fā)中复旬,我一向堅持入口點解決問題的原則,只要問題的入口點在你這里冲泥,就必須全程跟蹤查到底驹碍,問題查出來了,再通知相關人員進行程序修正凡恍。團隊的程序員雖然分工不同志秃,但每個人必須對他人的程序和算法有清楚的認識和了解,因為大家是在同一個環(huán)境下工作嚼酝,雖然代碼有分工浮还,可是操縱的卻是相同的設備和資源。獨善其身在團隊開發(fā)中是最要不得的想法闽巩。

第二階段是中級程序員階段

這個階段的程序員對技術钧舌、和工具的選擇已經審慎了很多担汤,可以根據具體的需求來選擇需要采用的技術,可以寫出詳細的需求調研報告并提出設計方案洼冻,優(yōu)點崭歧、缺點分析得清晰明了。在應用層面也有較強的全局理解力撞牢,在團隊中也具有相當的協作能力率碾,因此具備較強的解決問題的能力。

中期的程序員雖然在應用層面上已經相當嚴謹屋彪,但在系統層面的掌控力卻并不強所宰。應用系統也并非獨善其身,她和網絡環(huán)境畜挥、使用方法仔粥、硬件環(huán)境、操作系統砰嘁、地點件炉、時間等等諸多因素有著千絲萬縷的聯系勘究。在少量用戶的中底端研發(fā)中矮湘,如越來越多的呈幾何級數增長的信息管理系統中,系統掌控力并非必須的能力口糕。但在一個高端高并發(fā)量缅阳,被大量應用于不同環(huán)境的軟件產品,系統掌控力就是不可或缺的能力景描。這種能力我認為大部分取決于知識面十办,工作越多,經驗越豐富超棺,就越能對不同的應用環(huán)境有著敏銳地感覺和判斷向族。

大多數中階段程序員限于行業(yè),對語言的依賴還是很強棠绘,比如搞信息系統的和搞單片機的件相、搞網絡、路由器交換機的氧苍,由于系統層面不同夜矗,專精和對語言的理解都不甚相同。

第三階段是高級程序員/分析師/架構師階段

進入這個階段的前提是多年的工作經驗让虐,廣闊的知識面和對系統底層到高層的全面認識紊撕,已經使其進入了無語言無工具的層次。也就是能任何清楚地感知每種編程語言的優(yōu)劣赡突、使用范圍对扶、編碼禁忌区赵,對一個大型工程能有最全面的了解,在選擇語言和確定技術方案的時候不會被自己對語言或技術工具的偏好(或者根本已經無所偏好)所影響浪南,真正明白了其實別管是神馬語言惧笛、神馬技術,歸根到底咱們的對象還不是CPU逞泄、內存患整、硬盤和網絡,該做的事情一件都不能少喷众,所謂的技術框架是對初級程序員用的各谚,真正高級了不研究個清楚透徹都不敢讓你進來。即使對同一種語言到千,在不同的操作系統中昌渤,如Visual C++和Unix C、AIX?XLC憔四、GNU G++等等的區(qū)別膀息,以及不同版本之間的區(qū)別也了如指掌。

這個階段很難達到是由于對操作系統層面的清晰了解了赵,相信一個初級程序員一路走來潜支,大部分工作都是在Team Leader的規(guī)范和引導下完成的,每人都必須做好自己的工作柿汛,雖然在應用層面必須顧全大局冗酿,但系統層面的問題相對就難以接觸了。如果不是對技術有著強烈的渴求和一定的綜合能力络断,系統層面的工作經驗將很難與你有緣裁替。這就好比一個當外科醫(yī)生的,其實做手術并不像很多人想象中那樣難貌笨,一般看個幾次弱判,基本上也就差不多了,如果得到機會實際操作一下锥惋,不單是可以積累大量的經驗昌腰,自信心方面的收獲也是無法估量的。但是净刮,動手術責任重大剥哑,機會不是人人都有的。技術工作者其實還是很幸福的淹父,畢竟工作經驗的取得相對于當醫(yī)生還是容易的多株婴。

高級階段一定需要有團隊的開發(fā)和管理經驗,一個軟件團隊好比一個樂隊,每個人對曲目的理解都不同困介,雖然司職不同的樂器大审,沒有指揮家也會弄得一團糟。軟件團隊的每個人對語言座哩、業(yè)務徒扶、能力的理解都不一樣,交流方式也有別根穷,同時他們操作著相同的系統和資源姜骡,如果Team Leader不做好規(guī)劃,后果肯定可想而知屿良。豐富的經驗和敏銳的觸覺神經足以判斷出團隊成員的編碼風格和技術選擇偏好圈澈,能以足夠的經驗和理由說服其拋棄自己的感情偏好,從而很好地完成自己的工作尘惧。

這種能力有點類似于行政的管理康栈,但實際上卻是有明顯的不同的,這種管理基于的是實際的豐富經驗和充足的理由喷橙,絕對不可以將行政管理中的排隊觀念帶入啥么,如果2個人意見相左,就必須爭論贰逾,爭不下去了回家想清楚理由再爭悬荣,甚至直到時間來證明一切,不能說這次你聽我的似踱,下次我聽你的隅熙,技術工作是絕對的,最好的核芽、最適合需求的方案永遠只有一個,如果你覺得“都可以”酵熙,只能說對行業(yè)和需求還沒有吃透轧简。

高級程序員是經常會對需求說“No”的人,對行業(yè)的深入認識和對系統及應用全局的把握能力使他具有真正指導用戶的能力匾二,規(guī)范用戶的工作哮独、思想并用計算機這個工具真正對行業(yè)產生引領作用。高級架構師能深入認識管理和技術的關系察藐,管理上出現的問題一定要在管理上解決皮璧,工作經驗不多的用戶或者程序員往往會把管理上產生的問題拋給軟件系統,導致系統越來越復雜分飞,維護成本迅速增長悴务,而管理上的問題卻依然存在。

但有一個現狀是,往往用戶提需求都直接提給負責程序的程序員讯檐,小公司估計直接就和程序員聯系了羡疗,大點的也由一個其實并不怎么懂技術的所謂“客戶經理”協調轉發(fā),而并非經過設計師和架構師的同意别洪,因為他們可能現在已經在研發(fā)別的項目了叨恨。那么用戶的需求是否合理,是否符合當初設計的初衷挖垛,往往初級的程序員并不知曉或有不同理解和偏好痒钝。雖然這也是實際情況所限,很難做的更好痢毒,但這也造成了很多系統的持續(xù)發(fā)展力很低午乓,而許多用戶也處于信息不對等的弱勢地位,也只好將就算了闸准。

總結

最后益愈,技術和社會是緊密聯系在一起的。社會的進步發(fā)展決定了需求和技術的發(fā)展夷家,一個對技術發(fā)展有著敏銳感覺的架構師必須對社會有著深刻的認識蒸其。一個良好的團隊必須有新老交替才能不斷進步,老人要舍得帶新人库快∶“要讓一部分人先富起來,然后先富的帶動后富的义屏,最終達到共同富裕靠汁。”這是我們上學時學到的話吧闽铐,不過要是先富的盡想著向前看蝶怔,根本沒把后富的放在眼里,那這個團隊也好兄墅、社會也好踢星,也就沒多大的持續(xù)發(fā)展力了。

其實我倒是認為現在真正的大富豪還是有不少知民間疾苦的隙咸,頂層的和基層的都還能了解屁民們的生活沐悦,不了解的是中間層,他們整天生活在富庶小康的溫床五督,經常會提及一些好高騖遠藏否、不切實際的想法,而對那些為底層人民謀福利的事情嗤之以鼻充包,甚至諷刺為“用先進的技術做愚蠢的事情”副签,目的僅僅是為了嘩眾取寵和彰顯自己的遠見卓識。

先寫到這里了,其實我自己也在為成為一個真正的架構師而奮斗继薛,一家之言修壕,難免有所偏差,不過還是那句話遏考,“我們一直在努力”慈鸠。

版權申明:內容來源網絡,版權歸原創(chuàng)者所有灌具。除非無法確認青团,我們都會標明作者及出處,如有侵權煩請告知咖楣,我們會立即刪除并表示歉意督笆。謝謝。


需要更多關于ios開發(fā)資料的可以加我的iOS交流群714042473:诱贿,不管你是小白還是大牛歡迎入駐面試經驗娃肿,討論技術, 大家一起交流學習成長珠十!希望幫助開發(fā)者少走彎路料扰,微信如下


?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市焙蹭,隨后出現的幾起案子晒杈,更是在濱河造成了極大的恐慌,老刑警劉巖孔厉,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拯钻,死亡現場離奇詭異,居然都是意外死亡撰豺,警方通過查閱死者的電腦和手機粪般,發(fā)現死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來郑趁,“玉大人刊驴,你說我怎么就攤上這事」讶螅” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵舅柜,是天一觀的道長梭纹。 經常有香客問我,道長致份,這世上最難降的妖魔是什么变抽? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上绍载,老公的妹妹穿的比我還像新娘诡宗。我一直安慰自己,他們只是感情好击儡,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布塔沃。 她就那樣靜靜地躺著,像睡著了一般阳谍。 火紅的嫁衣襯著肌膚如雪蛀柴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天矫夯,我揣著相機與錄音鸽疾,去河邊找鬼。 笑死训貌,一個胖子當著我的面吹牛制肮,可吹牛的內容都是我干的。 我是一名探鬼主播递沪,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼豺鼻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了区拳?” 一聲冷哼從身側響起拘领,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎樱调,沒想到半個月后约素,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡笆凌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年圣猎,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乞而。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡送悔,死狀恐怖,靈堂內的尸體忽然破棺而出爪模,到底是詐尸還是另有隱情欠啤,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布屋灌,位于F島的核電站洁段,受9級特大地震影響,放射性物質發(fā)生泄漏共郭。R本人自食惡果不足惜祠丝,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一疾呻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧写半,春花似錦岸蜗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蟆肆,卻和暖如春矾睦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炎功。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工枚冗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛇损。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓赁温,卻偏偏與公主長得像,于是被迫代替她去往敵國和親淤齐。 傳聞我的和親對象是個殘疾皇子股囊,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容