❶ 怎麼樣從程序員成長成架構師
程序員日常工作中所用到的知識技能,是無法順利成長為軟體架構師的。這就好比大樓的建築設計師和壘磚工人的區別,他們的知識體系和思維方式,是截然不同的。
程序員按照上級的要求實現具體的程序功能,很少需要知道為什麼這樣做,他們只需要考慮技術實現就可以了;而架構師的職責是進行系統分析和架構設計,並對整個項目進行把控,對項目組成員進行各類管理工作。
領 宏 教 育就有專門的架構師培訓課程,讓你在短期內,通過集中培養和訓練,來獲取一名軟體架構師所應該掌握的知識技能,開拓眼界,接觸到各種不同領域的項目塌飢唯案例,總結架構設計中可肢旁能出現的各類問題和解決方案,並培養你能夠成為軟體架構師所必須具團培備的各種素質。
❷ 如何從一個程序員成長為一名架構師
成為一個軟體架構師,是每個上進的程序員的理想,可是程序員日常工作中所用到的知識技能,是無法順利成長為軟體架構師的。因為一個設計者和一個建造者,他們的知識體系和思維方式,是截然不同的。
不過有相應的培訓機構,像青鳥、領宏教育等,青鳥的課程比較基礎,領宏的課程比較高端,看個人基礎再做選擇吧
❸ 如何成為一個架構師
1、技術能力
技術能力,不用置疑肯定是最重要的。技術能力弱的架構不是一個好架構。所以,你需要知道所有主流技術的基本原理、應用場景,及快速解決問題的能力。所以,架構師必須要有見識,所需知識面肯定是要不斷拓展的。
你需要清楚在什麼樣的場景用什麼樣的技術比較合適,並知道可能存在什麼樣的風險。來了需求,你腦袋是空的,不知道用什麼技術這是最可怕的。
2、架構能力
這個可以表現為抽象能力、整體規劃能力、及設計能力。你需要照在業務的角度進行系統分解、技術選型、架構搭建,以及規范制定。架構出來了至少可以滿足最近的發展,或者可以很方便對現有架構進行擴容。
3、溝通能力
作為一個優秀的架構師,你需要清楚的知道客戶的需求,需要不斷和需求人員進行溝通,以達到客戶真正的目的。不論是不是架構師,任何一個職場人,提高自己的溝通表達能力無疑是不可或缺的。
系統架構師的主要功能包括:
1、系統架構師是軟體項目的總體設計師,是軟體組織新產品的開發與集成、新技術體系的構建者。
2、系統架構師是在技術上對所有重要事情做出決定的人(系統架構師在整個軟體開發過程中都起著重要作用,並隨著開發進程的推進而其職責或關注點不斷地變化)。
3、需求階段,軟體架構師負責理解和管理非功能性系統需求,比如軟體的可維護性、性能、復用性、可靠性、有效性和可測試性等。
4、設計階段,架構師負責對整個軟體架構、關鍵構件、介面的設計。協助系統分析師完成《系統概要設計說明書》。
5、編碼階段,架構師則成為程序員的顧問,並且經常性地要舉行一些技術研討會、技術培訓班等。
6、測試及實施階段,隨著軟體開始測試、集成和交付,集成和測試支持將成為軟體架構師的工作重點。
❹ 我是一名java程序員,想在幾年內成為一個架構師,我應該怎麼做看什麼書注重些什麼東西,請高手指點一二
小蔡:我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自
小蔡:「我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自己的角色做分析呢?」
銳哥順手在紙上畫了幾個圖,說:「確切地說,你應該問程序員通常的發展路線是怎樣 的?你們可以看看這個圖(如圖3-1所示),當一個初步的職業規劃方案已經成型時,如果制訂者目前已在一個軟體公司工作,那麼,對他來說進一步的提升非常 重要。首先要做的則是進行角色分析,反思一下這個職業環境對個人的要求和期望是什麼,如何使自己在單位中脫穎而出。
圖3-1
「通常,軟體技術人員的職業發展有幾個選擇:專注於技術,成為技術專家;轉型到技術 型銷售、技術支持等;隨著技術成長,從技術性管理到高級管理。這是大家都看得清楚的方向,也都在向這些方向的金字塔尖努力。
「就像烹飪魚一樣,每一個階段目標都需要你進行角色分析,找出這一角色需要的『配 料』,當你注意收集技術、素養等相關『配料』後,就會成功烹飪出你所需要的目標魚。前提是你一定要了解自己的特點和優勢,就好比黃瓜種子是不可能培育成西 瓜一樣。」
銳哥繼續說:「這歸根結底,都是以技術為基礎。在扎實的技術基礎上(高級軟體工程 師),如果有著比較強的抽象設計能力,又打算專注於技術開發,架構師是個好的選擇;如果性格更適合做管理,情商能力突出,技術型管理應該是下一步的方向。 這種發展規劃屬於『瘸腿走路』的類型,各有側重主攻發展的職業方向,也是目前一般程序員普遍採用的發展路線規劃。」
小蔡認真地看著圖說:「程序員職業規劃還有這么多學問!我看到每個角色配合的學歷, 那麼學歷和認證證書真的很重要嗎?還有必要花錢參加社會技術培訓嗎?」
銳哥:「決勝點在於長期的點滴積累,認證證書、成績、豐富的經歷是求職的表面文章, 在目前軟體行業里不是很看中這個,真正的『內功』是需要規劃的。至於培訓,我倒是很建議直接加入軟體公司,你就會學到很多實際的東西。不過,學歷教育雖然 在職業生涯里不是主要的,但是隨著職位的提升卻有很重要的意義,能輔助拓展你的職業發展空間,而不是以此為阻礙從而失去更多的機會。 」
「已經工作兩年以上的程序員可以有幾種基本的職業規劃:技術專家、軟體架構師、實施 顧問或銷售。其中程序員最主要的發展方向是資深技術專家,無論是Java、.NET還是資料庫領域,都要首先成為專家,然後才可能繼續發展為架構師。盡管 架構師的職位可以工作一輩子,待遇也非常好,對於科班出身的程序員最為適合,但這種工作職位非常有限,因為在中國目前的IT行業,架構師需要的條件比較復 雜,而且需求量也比較少,這也是我國軟體行業走向國際並有待成熟的因素之一。」
大熊指著另外一張圖說:「這個是綜合才能型發展路線圖(如圖3-2所示),我聽說目 前國內缺乏的是管理能力和專業知識技能並駕齊驅的IT人才。是不是指著這種復合型人才?」
圖3-2
銳哥說:「是的,特別是懂得運用目標管理技術的項目管理人才,既掌握核心技術又有全局掌控能 力的項目管理人才,非常難找。我建議對於大多數人來說,首先是要專,只有在技術方向上做得比較深入,才能適當做工作調整,把自己轉變為某個領域的專家。
「然後,根據自己的情況,決定自己做軟體架構師還是高級的顧問銷售,另外一部分人可 能就會走向管理,這和個人性格與情商有關。軟體優秀的管理者都必須懂得技術,掌握核心技能的人才向管理崗位轉型有很大的優勢,因而提升管理能力成了轉型的 關鍵。譬如,當唐駿還是微軟一名普通程序員時,就從公司發展的角度考慮,向老闆提議開發了中文版Windows,最終使他從幾萬名工程師中脫穎而出,成為 部門經理。正如他所說,雖然是程序員,但自己不能只把自己當程序員,你可以為老闆和公司著想。
「調查研究後,帶著解決方案去找老闆,就會得到老闆的重視和信任,所以一定要增強工 作主動性和參與性。無論是軟體開發還是項目管理,國內員工大多隻是做好份內事或完成交派任務,很少能主動發現問題。其實,只有擁有更高眼界,才能謀取大發 展。
「總之,程序員要根據本身的基本素質、技術能力選擇開發層次,由低到高,逐步發展。 也是一名程序員本身具備相應素質的循序漸進的發展軌跡,包括很強的技術背景和綜合管理才能等素養,這也就是所謂『兩條腿走路』的職業規劃發展路線。」
小蔡:「原來技術轉型還有這么多學問,受益匪淺。我打個比方,如果只是一名程序員, 但仍需要站在項目經理的層面上看自己的工作,這樣才能更好地合作,融入團隊中,並且鍛煉自己的思想境界,從而提高自己。」
銳哥:「小蔡說得是。另外,在未來發展上首先確定自己的發展方向和研究方向,在學習 技術的同時還要為以後做准備,做好以後的技術轉型。廣度和深度是相對的,先廣還是先深實質上從某種意義來說取決你的工作性質,如果你是從事單一工作的,多 半你會短暫先深,因為這是你立足的根本;而如果你選擇的職業是綜合性的,比如管理、講師等,那麼你必然要先有廣度才可以,但一段時間後,你都要轉入深度, 只有你在某一方面或領域有一定的深度後,你才能繼續尋求廣度,否則,你將什麼都會,但什麼都不精,這樣的人在市場上是最難以立足的。」
大熊:「這張程序員發展路線圖挺有意思,國際人才型(如圖3-3所示),一定要求外 語口語流利吧?」
圖3-3
銳哥:「是的。如果說前面『兩條腿走路』要求的綜合能力成分多,隨著國際化相互聯系 越來越緊密,那麼國際化人才可以說是當前更為便捷的程序員職業規劃發展之路。目前,國際化軟體項目經理是人才市場上炙手可熱的人才,有豐富經驗、外語口語 好的軟體項目經理是搶手的香餑餑,供不應求,薪水自然也是水漲船高。最重要的是,一個優秀的項目經理可以在這個崗位上長久工作下去,並且有向高層進一步提 升的可能。外語好、技術又好的程序員發展路線很廣,是目前國內外軟體企業需要的熱點人才。」
小蔡:「銳哥跟我們說了這么多,感覺對程序員、對軟體行業的整體發展路線清晰了很 多,但是我該用什麼方法進行選擇呢?」
銳哥:「要想正確地選擇,你得必須充分地了解、分析自己,你要學會SWOT職業規劃 自我分析法。」
總結與提升
成功與失敗的區別在於,成功者選擇了正確而失敗者選擇了錯誤。因此,我們常常能夠看 到一些天賦相差無幾的人,由於選擇了不同的方向,人生卻迥然相異。選擇正確的方向尤為重要,希望不同的程序員根據自己不同的優勢和特點能畫出適合自己的程 序員職業規劃圖。
軟體開發也是有層次區別的,比如,按層次從高到低通常可分為:
系統開發:如操作系統、資料庫系統、伺服器系統開發;
專業開發:如網路安全、游戲、人工智慧開發;
應用開發:如MIS、BI、ERP等系統開發;
普通開發:如網站、簡單應用系統開發。
不同的層次,難度系數不一樣,對技術要求、個人素質要求也不一樣。要成為系統開發 者、專業開發者、高級應用開發者,需要有很高的專業知識和很強的邏輯、抽象、空間思維能力,這就要求具有很好的基礎,同時具有較大的提升潛力。而要成為簡 單開發者和初級應用開發者則相對容易些,正是這樣,才使很多人走上了軟體開發的道路。
❺ 程序員如何才能晉升為優秀的高薪架構師
程序員想要進程為優秀的高薪架構師,那麼首先要有吃苦耐勞的精神,而且要有良好的工作業績和豐富的經驗以及履歷,這樣才能夠在競爭中脫穎而出,得到升職加薪的機會。
❻ 程序員怎麼快速成為架構師
1、卓越的程序員有些架構師的設計與實現會出現斷層的問題,如果架構師不去實踐,只是想當然的認為「沒問題,這個想法能實現」,那麼對於項目的落實而言是個很大的隱患。2、抽象思維很多優秀的架構師們都一致的表示,邏輯思維和抽象思維能力是一個架構師最重要的素質。3、技術前瞻性架構師不光要著眼於現在,不僅僅局限於開發細節。而是跳出三界外,考慮面向未來問題和潛在風險的應對之道。4、問題解決大師架構師因為具有多領域知識和經驗的積淀,所以在面對龐大系統之時,仍然能夠敏銳的發現其底層之真實。5、多領域知識架構師身為一名技術領袖,需要通過發散知識的光芒來統御開發團隊。6、溝通能力7、內力很多人理解的內力就是開發技術,包括語言的掌握、對框架的掌握、資料庫管理能力、安全管理能力等等。但是我們看到,架構更多的內力體現在對技術的綜合運用上,光會編程的程序員,最多就能做到高級程序員,也就是技術實現上的高手。8、權衡取捨9、管控能力架構師在管理和控制的能力上,需要有自己獨到的見解,而不是簡單的認為這是項目經理或者財務部門的事情。在這里架構師所需要的管理與控制,其實是從技術的角度,對一些問題的控制,特別是開發過程中的監控,而不是普通意義上的純粹管理。10、藝術氣質一個優美的系統則是可以像有機的生命一樣成長的,這是因為從系統開始架構的那一刻起,架構師就考慮到這個系統以後將會面臨的挑戰,為系統的成長預留好空間。
❼ 程序員怎樣才能晉升高薪架構師
對於工作多年的程序員而言,職業生涯的發展有三條出路:專精技術、轉型管理和晉升架構師。
網路,系統架構師是一個既需要掌控整體又需要洞悉局部瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。
架構師工作職能
軟體架構師在整個軟體開發過程中都起著重要的作用,並隨著開發進程的推進而其職責或關注點不斷地變化,在需求階段,軟體架構師主要負責理解和管理非功能性系統需求,比如軟體的可維護性、性能、復用性、可靠性、有效性和可測試性等等,此外,架構師還要經常審查客戶及市場人員所提出的需求,確認開發團隊所提出的設計;在需求越來越明確後,架構師的關注點開始轉移到組織開發團隊成員和開發過程定義上;在軟體設計階段,架構師負責對整個軟體體系結構、關鍵構件、介面和開發政策的設計;在編碼階段,架構師則成為詳細設計者和代碼編寫者的顧問,並且經常性地要舉行一些技術研討會、技術培訓班等;隨著軟體開始測試此彎、集成和交付,集成和測試支持將成為軟體架構師的工作重點;在軟體維護開始時,軟體架構師就開始為下一版本的產品是否應該增加新的功能模塊進行決策。
成為架構師所需要具備那些技能?
所謂架構師,思考的是全局的東西,是如何組織你的系統,以達到業務要求,性能要求,具備可擴展性(scalability),可拓展性(extendability),前後兼容性等。可能涉及到的東西包括了從硬體到軟體的方方面面,實在是一言難盡。
架構師該如何學習
成為架構師條件根據自己經驗列舉幾點
1.喜歡技術,這個是必備條件
2.技術方面要有一個單點突破點,別會很多技術都是個大森大悶概七,架仿散構師都玩的很精不現實,精力有限。說自己各方面都很牛的偽架構師幾率大
3.學習能力強,交流能力強,大局觀強,三強能讓你不落伍,不至於吃老本,技術更新太快,別安於現狀
以上我的回答希望對你有所幫助