A. 從入門到前端架構師,一般需要多少年
您好,就技術上來說,如果你是一個所從事領域的開發工程師,並且很稱職,基本就夠了。
現實中所謂前端架構師,其實就是高級開發的代名詞。因為架構是一個整體,沒有孤立的前端與後端。如果一定要這么分,就說明你的工作在這個單位的任務傾向和內容就是那麼點玩意兒,而這又有多少呢?頁面開發以及相關的那麼點玩意兒。這點東西對技術的要求與對一個真正架構師的要求相比,太局部了,太趨近於開發。所以這種程度的所謂架構師,任何一個稱職的高級程序員都可以擔任。
具體幾年要看老師的水平和您自己的努力了,我覺得3-5年是可以達到目標的。
B. java架構師培訓多久能學會
要成為Java架構師,應該具備多方面的知識技能,特別重要的是,一定要有多個實際項目經驗。需配清飢要的工作年數和個人能力有關,一般來說3到5年吧。
拿Web服務開發為例,為了滿足實際需求,項目功能和架構都日趨復雜:多層架構,數據中台,動靜分離,集群化部署,自動化運維,等等。
不同於一個Demo演示,用於商業、有價值的一個Web服務是功能全面的。比如常見的電商系統、信息管理系統、企業應用開發等方面,搭配Spring Boot開發框架,需要掌握如下這些重點:
1)資料庫,免費開源的MySQL,收費的Oracle,其他主流資料庫
2)緩存系統,Redis,MongoDB以及其它的NoSQL資料庫
3)消息隊列,常用的ActiveMQ,RocketMQ,RabbitMQ
4)鑒權認證,Apache Shiro或者定製開發的框架
5)非同步任務調度,復雜應用使用Quartz,簡單應用可使用Spring Schele
6)日誌系統,常用ELK日誌處理,分析報警
7)服務監控,Actuator,ZooKeeper,Dubbo等微服務架構
8)具體的行業和業務場景還有不同的功能組件,比如大數據、物聯網、區塊鏈等
雲服務已經成為IT技術的核心基礎設施,架構師應該具備提供雲服務解決方案的能力。對新開發的系統,要符合雲原生理念,充分利用雲服務提供的彈性和分布式優勢,賦能運營、維護和監控。
有運營價值的系統,運維工作非常重要。基於雲服務的DevOps將開發和運維結合起來,架構師作為項目核心參與者,具備DevOps技能,將有效提升團隊和個培返人工作效率。
以Docker容器技術為例,從代碼提交、鏡像構建、部署發布,架構師要負責設計實現整個流程,做到自動化、一鍵部署、災備回滾等關鍵節點的。架構師水平越高,其負責的系統運維自動化程度越高。
#企業架正旅構師的日常#
C. 往架構師的路還需要多久
我覺得首先如果你沒有設計的思想,那麼很顯然你就不能成為一名架構師。我們要知道架構師是一個能寫得了一手好代碼,要能畫得了一手漂亮的UML/原型,要能寫得了一手技術文檔,也要能能解決好關鍵技術的綜合性人才。
結構師=多面手
只要熟練地掌握了以上的知識點,你離成為一個架構師的路就不遠了。
D. 昆明Java培訓:Java架構師培訓多久能學會
Java架構師培訓多久能學會?首先,對於很多Java應用級程序員來說,架構師是未來一個重要的崗位升級方向,從當前Java語言的應用情況以及未來的發展趨勢來看,Java架構師未來的需求量依然比較大。 E. 從程序員到架構師要經歷哪些階段
架構師是什麼? F. 程序員怎麼快速成為架構師
1、卓越的程序員有些架構師的設計與實現會出現斷層的問題,如果架構師不去實踐,只是想當然的認為「沒問題,這個想法能實現」,那麼對於項目的落實而言是個很大的隱患。2、抽象思維很多優秀的架構師們都一致的表示,邏輯思維和抽象思維能力是一個架構師最重要的素質。3、技術前瞻性架構師不光要著眼於現在,不僅僅局限於開發細節。而是跳出三界外,考慮面向未來問題和潛在風險的應對之道。4、問題解決大師架構師因為具有多領域知識和經驗的積淀,所以在面對龐大系統之時,仍然能夠敏銳的發現其底層之真實。5、多領域知識架構師身為一名技術領袖,需要通過發散知識的光芒來統御開發團隊。6、溝通能力7、內力很多人理解的內力就是開發技術,包括語言的掌握、對框架的掌握、資料庫管理能力、安全管理能力等等。但是我們看到,架構更多的內力體現在對技術的綜合運用上,光會編程的程序員,最多就能做到高級程序員,也就是技術實現上的高手。8、權衡取捨9、管控能力架構師在管理和控制的能力上,需要有自己獨到的見解,而不是簡單的認為這是項目經理或者財務部門的事情。在這里架構師所需要的管理與控制,其實是從技術的角度,對一些問題的控制,特別是開發過程中的監控,而不是普通意義上的純粹管理。10、藝術氣質一個優美的系統則是可以像有機的生命一樣成長的,這是因為從系統開始架構的那一刻起,架構師就考慮到這個系統以後將會面臨的挑戰,為系統的成長預留好空間。
G. 我是一名java程序員,想在幾年內成為一個架構師,我應該怎麼做看什麼書注重些什麼東西,請高手指點一二
小蔡:我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自 H. 如何從程序員到架構師
程序員到架構師的技術成長之路分為幾個典型的階段:工程師 - 高級工程師 - 技術專家 - 初級架構師 - 中級架構師 - 高級架構師,總的成長原則是每個階段都需要「積累經驗、拓寬視野、深度思考」。
I. 成為Java高級架構師要學多久,有推薦的學校嗎
java架構師需要你多各種設計模式非常熟悉,對公司的代碼結構所需要的業務邏輯非陸差常熟悉,演算法還是其次,關鍵要有很廣闊早悄皮的知識面運答
J. java架構師培訓多久能學會 Java發展到一定程度,尤其是三五年這個時間節點都會遇到一個瓶頸,從這里道路分成兩個方向,要麼成為管理者,要麼朝著技術方向繼續開拓,兩者的終極分別對應著CTO和架構師! 最後說一下CTO和架構師 1.CTO 「CTO(首席技術官)英文Chief Technology Officer,即企業內負責技術的最高負責人。這個名稱在1980年代從美國開始時興。起於做很多研究的大公司,如General Electric,AT&T,ALCOA,主要責任是將科學研究成果成為盈利產品。1990年代,因計算機和軟體公司熱門,很多公司把CTO的名稱給予管理計算機系統和軟體的負責人。有時CTO和CIO(Chief Information Officer信息管理最高負責人)是同一個人(尤其在軟體公司),有時CTO歸於比較精通科學技術的CIO手下。在不同領域的公司,CTO工作性質不同;即使在同一領域,工作性質也可能大不相同。一般CTO會有以下責任:長期技術方向(戰略性)、短期技術方向(戰術性)、管理研究對公司經營活動和營利的影響、公司中使用的軟體等等。 在國內,CTO一般在IT企業中才有,是分管技術的副總,非IT企業大都設置總工程師、技術副總這樣的職位,例如在IT企業中,負責軟體開發的副總也叫CTO,而技術總監則不是CTO,總監只是部門的負責人,副總是企業的負責人。而CIO是分管IT的副總,例如分管企業IT管理的副總,或者分管信息化的副總。 在國內CTO通常是由軟體工程師(程序員)一步步成長起來的,而CIO通常是由IT工程師(網管)成長起來的,一個傾向於程序開發、一個傾向於IT管理。」
要想成為一名Java架構師,既需要在開發崗位上進行技術經驗的積累,同時也需要有一個自主學習計劃,從當前的技術發展趨勢來看,Java架構師需要具備以幾個方面的知識和能力:
當前在業務領域的Java開發通常要基於技術平台來展開,這些技術平台涉及到雲計算(大數據)平台、物聯網平台和人工智慧平台等,所以對於Java架構師來說,要想完成項目的架構設計,首先需要從掌握平台知識開始。
未來在產業互聯網時代,對於技術平台(尤其是雲計算)的理解能力能夠在很大程度上決定Java架構師的設計能力。
第二:Java架構師培訓多久能學會?介面設計能力。
介面設計是Java架構師的主要工作內容之一,由於Java語言的抽象程度比較高,所以對於介面設計的要求往往比較基轎高,而且基於技睜薯術平台的介面設計與傳統的介面設計也存在加大的差異,所以這部分內容也需要重點提升。
傳統的Java介面設計會分成三個大的部分(層次),涉及到業務層、服務層和數據層,而基於平台的介面設計,還需要考慮如何藉助於平台來實現功能擴展,需要在原有的介面設計上進一步抽象。
第三:Java架構師培訓多久能學會?模塊規劃能力。
Java語言雖然有諸多優點,但是Java語言自身的模塊化能力是比較弱的,早期的Java架構師會通過OSGI來解決這一問題,直到Java9的時候,Java語言本身才提供了模塊化的功能。
對於Java架構師來說,Java模塊的規劃對於後期的項目擴展具有非常直接的影響,這部分設計既悉鋒者需要考慮到程序本身的復用,還需要考慮如何在技術平台下工作,這比較考驗架構師的設計能力。
最後,當前對於Java程序員來說,要想成為Java架構師,需要首先從雲計算平台開始了解,然後進一步通過雲計算平台來向大數據部分進行擴展,這個過程中也會掌握一系列技術體系(包括框架和工具),由於內容相對比較多,而且往往需要通過場景來進行鍛煉,所以通常需要學習較長一段時間(一年以上)。
架構師這詞其實很有意思,很多人的Title是這個,但其實我們對架構師都干什麼並沒有太統一的認識。往大了說,比爾蓋茨當年好像也稱自己為架構師,往小了說隨便一個小的軟體上做設計的也說自己是架構師。所以如果把這個詞泛化而不局限於特定的場景,估計單是說清楚什麼是架構師就要花費不少口水。下面我們用一個取巧的辦法,在一個具體的場景下來看看,架構師都該干什麼,而不把這個詞泛化,如果在特定場景下這個角色應該干什麼清楚了,那它就可以為其它場景下提供不錯的參考。
我們只考慮從頭開發一款產品的場景,不考慮這款產品可能是個家族,可能需要在公司里與許多東西配合這樣繁瑣的事情。這樣問題就簡化成:當我們要開發一款新產品的時候,架構師都要幹些什麼?為讓事情更具體,我們進一步假設公司想做一個Trello,Worktile這樣的協同辦公工具。
在產品初期除了UI這類東西,還能明確的一些關鍵需求大概是這樣:
簡單、迅速,追求極致的用戶體驗,這時也許能想到看板這樣的功能
打入社交元素(任務分配與溝通時打入信息流的機制)
移動端支持
公司判斷:如果產品能在1年內上線,時機比較好
其他的需求呢就是感覺上肯定有,但暫時說不清楚
基於這樣的簡單提示,長做程序的可能腦子里會立刻冒出來無數東西,比如:
快的確保?
看板里拖動的實現?
SaaS時伸縮性的確保?
資料庫中表的設計?
資料庫類型的選擇?
移動端的支持方式?
人員的現狀?
迭代式開發的支持?
... ...
但顯然不是每個事情都要在架構設計階段搞定,否則等於是被弄蒙了,這時候架構師的一個關鍵職責就是要能區分出哪些東西預先需要搞定,而哪些東西則要在迭代過程中解決。
一般來講重置成本越大,牽涉的人越多的事情越應該由架構師預先搞定,否則就容易做無用功,對開發工作產生致命傷害。具體來講這類事情由三個核心部分組成:
選定Tech Stack
概要設計,確立分工的基礎
協同方式
下面來分別解釋下這三個方面的具體含義。
選定Tech Stack是指要選定包括編程語言,基本框架等一系列東西,比如Trello選完之後大致是下面這個樣子:
http://www.csdn.net/article/2014-07-28/2820883
小蔡:「我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自己的角色做分析呢?」
銳哥順手在紙上畫了幾個圖,說:「確切地說,你應該問程序員通常的發展路線是怎樣 的?你們可以看看這個圖(如圖3-1所示),當一個初步的職業規劃方案已經成型時,如果制訂者目前已在一個軟體公司工作,那麼,對他來說進一步的提升非常 重要。首先要做的則是進行角色分析,反思一下這個職業環境對個人的要求和期望是什麼,如何使自己在單位中脫穎而出。
圖3-1
「通常,軟體技術人員的職業發展有幾個選擇:專注於技術,成為技術專家;轉型到技術 型銷售、技術支持等;隨著技術成長,從技術性管理到高級管理。這是大家都看得清楚的方向,也都在向這些方向的金字塔尖努力。
「就像烹飪魚一樣,每一個階段目標都需要你進行角色分析,找出這一角色需要的『配 料』,當你注意收集技術、素養等相關『配料』後,就會成功烹飪出你所需要的目標魚。前提是你一定要了解自己的特點和優勢,就好比黃瓜種子是不可能培育成西 瓜一樣。」
銳哥繼續說:「這歸根結底,都是以技術為基礎。在扎實的技術基礎上(高級軟體工程 師),如果有著比較強的抽象設計能力,又打算專注於技術開發,架構師是個好的選擇;如果性格更適合做管理,情商能力突出,技術型管理應該是下一步的方向。 這種發展規劃屬於『瘸腿走路』的類型,各有側重主攻發展的職業方向,也是目前一般程序員普遍採用的發展路線規劃。」
小蔡認真地看著圖說:「程序員職業規劃還有這么多學問!我看到每個角色配合的學歷, 那麼學歷和認證證書真的很重要嗎?還有必要花錢參加社會技術培訓嗎?」
銳哥:「決勝點在於長期的點滴積累,認證證書、成績、豐富的經歷是求職的表面文章, 在目前軟體行業里不是很看中這個,真正的『內功』是需要規劃的。至於培訓,我倒是很建議直接加入軟體公司,你就會學到很多實際的東西。不過,學歷教育雖然 在職業生涯里不是主要的,但是隨著職位的提升卻有很重要的意義,能輔助拓展你的職業發展空間,而不是以此為阻礙從而失去更多的機會。 」
「已經工作兩年以上的程序員可以有幾種基本的職業規劃:技術專家、軟體架構師、實施 顧問或銷售。其中程序員最主要的發展方向是資深技術專家,無論是Java、.NET還是資料庫領域,都要首先成為專家,然後才可能繼續發展為架構師。盡管 架構師的職位可以工作一輩子,待遇也非常好,對於科班出身的程序員最為適合,但這種工作職位非常有限,因為在中國目前的IT行業,架構師需要的條件比較復 雜,而且需求量也比較少,這也是我國軟體行業走向國際並有待成熟的因素之一。」
大熊指著另外一張圖說:「這個是綜合才能型發展路線圖(如圖3-2所示),我聽說目 前國內缺乏的是管理能力和專業知識技能並駕齊驅的IT人才。是不是指著這種復合型人才?」
圖3-2
銳哥說:「是的,特別是懂得運用目標管理技術的項目管理人才,既掌握核心技術又有全局掌控能 力的項目管理人才,非常難找。我建議對於大多數人來說,首先是要專,只有在技術方向上做得比較深入,才能適當做工作調整,把自己轉變為某個領域的專家。
「然後,根據自己的情況,決定自己做軟體架構師還是高級的顧問銷售,另外一部分人可 能就會走向管理,這和個人性格與情商有關。軟體優秀的管理者都必須懂得技術,掌握核心技能的人才向管理崗位轉型有很大的優勢,因而提升管理能力成了轉型的 關鍵。譬如,當唐駿還是微軟一名普通程序員時,就從公司發展的角度考慮,向老闆提議開發了中文版Windows,最終使他從幾萬名工程師中脫穎而出,成為 部門經理。正如他所說,雖然是程序員,但自己不能只把自己當程序員,你可以為老闆和公司著想。
「調查研究後,帶著解決方案去找老闆,就會得到老闆的重視和信任,所以一定要增強工 作主動性和參與性。無論是軟體開發還是項目管理,國內員工大多隻是做好份內事或完成交派任務,很少能主動發現問題。其實,只有擁有更高眼界,才能謀取大發 展。
「總之,程序員要根據本身的基本素質、技術能力選擇開發層次,由低到高,逐步發展。 也是一名程序員本身具備相應素質的循序漸進的發展軌跡,包括很強的技術背景和綜合管理才能等素養,這也就是所謂『兩條腿走路』的職業規劃發展路線。」
小蔡:「原來技術轉型還有這么多學問,受益匪淺。我打個比方,如果只是一名程序員, 但仍需要站在項目經理的層面上看自己的工作,這樣才能更好地合作,融入團隊中,並且鍛煉自己的思想境界,從而提高自己。」
銳哥:「小蔡說得是。另外,在未來發展上首先確定自己的發展方向和研究方向,在學習 技術的同時還要為以後做准備,做好以後的技術轉型。廣度和深度是相對的,先廣還是先深實質上從某種意義來說取決你的工作性質,如果你是從事單一工作的,多 半你會短暫先深,因為這是你立足的根本;而如果你選擇的職業是綜合性的,比如管理、講師等,那麼你必然要先有廣度才可以,但一段時間後,你都要轉入深度, 只有你在某一方面或領域有一定的深度後,你才能繼續尋求廣度,否則,你將什麼都會,但什麼都不精,這樣的人在市場上是最難以立足的。」
大熊:「這張程序員發展路線圖挺有意思,國際人才型(如圖3-3所示),一定要求外 語口語流利吧?」
圖3-3
銳哥:「是的。如果說前面『兩條腿走路』要求的綜合能力成分多,隨著國際化相互聯系 越來越緊密,那麼國際化人才可以說是當前更為便捷的程序員職業規劃發展之路。目前,國際化軟體項目經理是人才市場上炙手可熱的人才,有豐富經驗、外語口語 好的軟體項目經理是搶手的香餑餑,供不應求,薪水自然也是水漲船高。最重要的是,一個優秀的項目經理可以在這個崗位上長久工作下去,並且有向高層進一步提 升的可能。外語好、技術又好的程序員發展路線很廣,是目前國內外軟體企業需要的熱點人才。」
小蔡:「銳哥跟我們說了這么多,感覺對程序員、對軟體行業的整體發展路線清晰了很 多,但是我該用什麼方法進行選擇呢?」
銳哥:「要想正確地選擇,你得必須充分地了解、分析自己,你要學會SWOT職業規劃 自我分析法。」
總結與提升
成功與失敗的區別在於,成功者選擇了正確而失敗者選擇了錯誤。因此,我們常常能夠看 到一些天賦相差無幾的人,由於選擇了不同的方向,人生卻迥然相異。選擇正確的方向尤為重要,希望不同的程序員根據自己不同的優勢和特點能畫出適合自己的程 序員職業規劃圖。
軟體開發也是有層次區別的,比如,按層次從高到低通常可分為:
系統開發:如操作系統、資料庫系統、伺服器系統開發;
專業開發:如網路安全、游戲、人工智慧開發;
應用開發:如MIS、BI、ERP等系統開發;
普通開發:如網站、簡單應用系統開發。
不同的層次,難度系數不一樣,對技術要求、個人素質要求也不一樣。要成為系統開發 者、專業開發者、高級應用開發者,需要有很高的專業知識和很強的邏輯、抽象、空間思維能力,這就要求具有很好的基礎,同時具有較大的提升潛力。而要成為簡 單開發者和初級應用開發者則相對容易些,正是這樣,才使很多人走上了軟體開發的道路。