❶ 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管理。」
❷ 怎樣成為一名系統架構師成為一名系統架構師要用多長時間請知道同志們和考過系統架構師說一下下,謝謝
你的路還很漫長,你現在的水平可能連程序員的要求都達不到,C++可以不用學,學下C#還可以,還有資料庫,這個很重要,培養寫SQL的能力,當你能當上程序員後大概5-10年(長短看你的本事)的經驗才能當架構師
❸ 從程序員到架構師要經歷哪些階段
架構師是什麼?
架構師這詞其實很有意思,很多人的Title是這個,但其實我們對架構師都干什麼並沒有太統一的認識。往大了說,比爾蓋茨當年好像也稱自己為架構師,往小了說隨便一個小的軟體上做設計的也說自己是架構師。所以如果把這個詞泛化而不局限於特定的場景,估計單是說清楚什麼是架構師就要花費不少口水。下面我們用一個取巧的辦法,在一個具體的場景下來看看,架構師都該干什麼,而不把這個詞泛化,如果在特定場景下這個角色應該干什麼清楚了,那它就可以為其它場景下提供不錯的參考。
我們只考慮從頭開發一款產品的場景,不考慮這款產品可能是個家族,可能需要在公司里與許多東西配合這樣繁瑣的事情。這樣問題就簡化成:當我們要開發一款新產品的時候,架構師都要幹些什麼?為讓事情更具體,我們進一步假設公司想做一個Trello,Worktile這樣的協同辦公工具。
在產品初期除了UI這類東西,還能明確的一些關鍵需求大概是這樣:
簡單、迅速,追求極致的用戶體驗,這時也許能想到看板這樣的功能
打入社交元素(任務分配與溝通時打入信息流的機制)
移動端支持
公司判斷:如果產品能在1年內上線,時機比較好
其他的需求呢就是感覺上肯定有,但暫時說不清楚
基於這樣的簡單提示,長做程序的可能腦子里會立刻冒出來無數東西,比如:
快的確保?
看板里拖動的實現?
SaaS時伸縮性的確保?
資料庫中表的設計?
資料庫類型的選擇?
移動端的支持方式?
人員的現狀?
迭代式開發的支持?
... ...
但顯然不是每個事情都要在架構設計階段搞定,否則等於是被弄蒙了,這時候架構師的一個關鍵職責就是要能區分出哪些東西預先需要搞定,而哪些東西則要在迭代過程中解決。
一般來講重置成本越大,牽涉的人越多的事情越應該由架構師預先搞定,否則就容易做無用功,對開發工作產生致命傷害。具體來講這類事情由三個核心部分組成:
選定Tech Stack
概要設計,確立分工的基礎
協同方式
下面來分別解釋下這三個方面的具體含義。
選定Tech Stack是指要選定包括編程語言,基本框架等一系列東西,比如Trello選完之後大致是下面這個樣子:
http://www.csdn.net/article/2014-07-28/2820883
❹ 多長時間可以成長為一個架構師
一個程序員,多長時間可以成為一個架構師?5年?10年?相信這個也是很多程序員所關心的,包括我自己。很多人都說5年,是程序員的一道坎,邁過去了,前途光明,否則..... 就我個人見解來說,成為一個架構師,必須具備五點:第一必須要有豐富的編程經驗;第二豐富的知識面;第三是否具備對已有復雜系統的快速分析能力;第四面對新的技術是否能夠快速適應並應用;第五是否能夠根據實際資源,拿出可行性的方案? 對於第一條,第二條,相信很多人都很容易滿足,但是第三條,就不是輕易能夠做到的,這裡面是對前面兩條知識面的綜合運用;對於第四點這里提幾個問題,看看自己是否能夠做到?
❺ 如何從程序員到架構師
程序員到架構師的技術成長之路分為幾個典型的階段:工程師 - 高級工程師 - 技術專家 - 初級架構師 - 中級架構師 - 高級架構師,總的成長原則是每個階段都需要「積累經驗、拓寬視野、深度思考」。
❻ 如何從一個程序員成長為一名架構師
成為一個軟體架構師,是每個上進的程序員的理想,可是程序員日常工作中所用到的知識技能,是無法順利成長為軟體架構師的。因為一個設計者和一個建造者,他們的知識體系和思維方式,是截然不同的。
不過有相應的培訓機構,像青鳥、領宏教育等,青鳥的課程比較基礎,領宏的課程比較高端,看個人基礎再做選擇吧
❼ 我是一名java程序員,想在幾年內成為一個架構師,我應該怎麼做看什麼書注重些什麼東西,請高手指點一二
小蔡:我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自
小蔡:「我感悟到的就是因為對軟體行業不了解,所以缺少一根結實的線將自己與夢想有序地串聯起來,因此很難深刻體會到目標在自己掌控下掙扎時的力量。那麼,通 常程序員如何對自己的角色做分析呢?」
銳哥順手在紙上畫了幾個圖,說:「確切地說,你應該問程序員通常的發展路線是怎樣 的?你們可以看看這個圖(如圖3-1所示),當一個初步的職業規劃方案已經成型時,如果制訂者目前已在一個軟體公司工作,那麼,對他來說進一步的提升非常 重要。首先要做的則是進行角色分析,反思一下這個職業環境對個人的要求和期望是什麼,如何使自己在單位中脫穎而出。
圖3-1
「通常,軟體技術人員的職業發展有幾個選擇:專注於技術,成為技術專家;轉型到技術 型銷售、技術支持等;隨著技術成長,從技術性管理到高級管理。這是大家都看得清楚的方向,也都在向這些方向的金字塔尖努力。
「就像烹飪魚一樣,每一個階段目標都需要你進行角色分析,找出這一角色需要的『配 料』,當你注意收集技術、素養等相關『配料』後,就會成功烹飪出你所需要的目標魚。前提是你一定要了解自己的特點和優勢,就好比黃瓜種子是不可能培育成西 瓜一樣。」
銳哥繼續說:「這歸根結底,都是以技術為基礎。在扎實的技術基礎上(高級軟體工程 師),如果有著比較強的抽象設計能力,又打算專注於技術開發,架構師是個好的選擇;如果性格更適合做管理,情商能力突出,技術型管理應該是下一步的方向。 這種發展規劃屬於『瘸腿走路』的類型,各有側重主攻發展的職業方向,也是目前一般程序員普遍採用的發展路線規劃。」
小蔡認真地看著圖說:「程序員職業規劃還有這么多學問!我看到每個角色配合的學歷, 那麼學歷和認證證書真的很重要嗎?還有必要花錢參加社會技術培訓嗎?」
銳哥:「決勝點在於長期的點滴積累,認證證書、成績、豐富的經歷是求職的表面文章, 在目前軟體行業里不是很看中這個,真正的『內功』是需要規劃的。至於培訓,我倒是很建議直接加入軟體公司,你就會學到很多實際的東西。不過,學歷教育雖然 在職業生涯里不是主要的,但是隨著職位的提升卻有很重要的意義,能輔助拓展你的職業發展空間,而不是以此為阻礙從而失去更多的機會。 」
「已經工作兩年以上的程序員可以有幾種基本的職業規劃:技術專家、軟體架構師、實施 顧問或銷售。其中程序員最主要的發展方向是資深技術專家,無論是Java、.NET還是資料庫領域,都要首先成為專家,然後才可能繼續發展為架構師。盡管 架構師的職位可以工作一輩子,待遇也非常好,對於科班出身的程序員最為適合,但這種工作職位非常有限,因為在中國目前的IT行業,架構師需要的條件比較復 雜,而且需求量也比較少,這也是我國軟體行業走向國際並有待成熟的因素之一。」
大熊指著另外一張圖說:「這個是綜合才能型發展路線圖(如圖3-2所示),我聽說目 前國內缺乏的是管理能力和專業知識技能並駕齊驅的IT人才。是不是指著這種復合型人才?」
圖3-2
銳哥說:「是的,特別是懂得運用目標管理技術的項目管理人才,既掌握核心技術又有全局掌控能 力的項目管理人才,非常難找。我建議對於大多數人來說,首先是要專,只有在技術方向上做得比較深入,才能適當做工作調整,把自己轉變為某個領域的專家。
「然後,根據自己的情況,決定自己做軟體架構師還是高級的顧問銷售,另外一部分人可 能就會走向管理,這和個人性格與情商有關。軟體優秀的管理者都必須懂得技術,掌握核心技能的人才向管理崗位轉型有很大的優勢,因而提升管理能力成了轉型的 關鍵。譬如,當唐駿還是微軟一名普通程序員時,就從公司發展的角度考慮,向老闆提議開發了中文版Windows,最終使他從幾萬名工程師中脫穎而出,成為 部門經理。正如他所說,雖然是程序員,但自己不能只把自己當程序員,你可以為老闆和公司著想。
「調查研究後,帶著解決方案去找老闆,就會得到老闆的重視和信任,所以一定要增強工 作主動性和參與性。無論是軟體開發還是項目管理,國內員工大多隻是做好份內事或完成交派任務,很少能主動發現問題。其實,只有擁有更高眼界,才能謀取大發 展。
「總之,程序員要根據本身的基本素質、技術能力選擇開發層次,由低到高,逐步發展。 也是一名程序員本身具備相應素質的循序漸進的發展軌跡,包括很強的技術背景和綜合管理才能等素養,這也就是所謂『兩條腿走路』的職業規劃發展路線。」
小蔡:「原來技術轉型還有這么多學問,受益匪淺。我打個比方,如果只是一名程序員, 但仍需要站在項目經理的層面上看自己的工作,這樣才能更好地合作,融入團隊中,並且鍛煉自己的思想境界,從而提高自己。」
銳哥:「小蔡說得是。另外,在未來發展上首先確定自己的發展方向和研究方向,在學習 技術的同時還要為以後做准備,做好以後的技術轉型。廣度和深度是相對的,先廣還是先深實質上從某種意義來說取決你的工作性質,如果你是從事單一工作的,多 半你會短暫先深,因為這是你立足的根本;而如果你選擇的職業是綜合性的,比如管理、講師等,那麼你必然要先有廣度才可以,但一段時間後,你都要轉入深度, 只有你在某一方面或領域有一定的深度後,你才能繼續尋求廣度,否則,你將什麼都會,但什麼都不精,這樣的人在市場上是最難以立足的。」
大熊:「這張程序員發展路線圖挺有意思,國際人才型(如圖3-3所示),一定要求外 語口語流利吧?」
圖3-3
銳哥:「是的。如果說前面『兩條腿走路』要求的綜合能力成分多,隨著國際化相互聯系 越來越緊密,那麼國際化人才可以說是當前更為便捷的程序員職業規劃發展之路。目前,國際化軟體項目經理是人才市場上炙手可熱的人才,有豐富經驗、外語口語 好的軟體項目經理是搶手的香餑餑,供不應求,薪水自然也是水漲船高。最重要的是,一個優秀的項目經理可以在這個崗位上長久工作下去,並且有向高層進一步提 升的可能。外語好、技術又好的程序員發展路線很廣,是目前國內外軟體企業需要的熱點人才。」
小蔡:「銳哥跟我們說了這么多,感覺對程序員、對軟體行業的整體發展路線清晰了很 多,但是我該用什麼方法進行選擇呢?」
銳哥:「要想正確地選擇,你得必須充分地了解、分析自己,你要學會SWOT職業規劃 自我分析法。」
總結與提升
成功與失敗的區別在於,成功者選擇了正確而失敗者選擇了錯誤。因此,我們常常能夠看 到一些天賦相差無幾的人,由於選擇了不同的方向,人生卻迥然相異。選擇正確的方向尤為重要,希望不同的程序員根據自己不同的優勢和特點能畫出適合自己的程 序員職業規劃圖。
軟體開發也是有層次區別的,比如,按層次從高到低通常可分為:
系統開發:如操作系統、資料庫系統、伺服器系統開發;
專業開發:如網路安全、游戲、人工智慧開發;
應用開發:如MIS、BI、ERP等系統開發;
普通開發:如網站、簡單應用系統開發。
不同的層次,難度系數不一樣,對技術要求、個人素質要求也不一樣。要成為系統開發 者、專業開發者、高級應用開發者,需要有很高的專業知識和很強的邏輯、抽象、空間思維能力,這就要求具有很好的基礎,同時具有較大的提升潛力。而要成為簡 單開發者和初級應用開發者則相對容易些,正是這樣,才使很多人走上了軟體開發的道路。
❽ 成為一名正式工作的程序員需要多長時間左右
當你自己真正的完成一個程序時你就能夠成為一個真正的程序員了。之前是需要你向前輩們認真學習的階段。
如何成為一個優秀的程序員:
同一時間處理多個工作任務,我們對這種情況並不陌生。有時候是迫不得已,但有時候也是個人的習慣造成的。「同一時間處理多個任務」看起來不錯,給人感覺你的工作出色,但實際上,由於要不斷轉換工作內容,它會影響了你的專注力和創造力。
對於程序員來說,專注於某一個開發工作是很重要的。如果要同時處理幾個任務,你不得不為此消耗精力,這樣一來工作效率就會降低了。解決的方法是做好工作安排,把相似的工作放在一起,專心做好一個工作直到它完成了為止,再去做下一個工作。
制定日常的工作程序也可以有助提高工作效率。沒有計劃的工作會打亂你的工作節奏,導致工作質量不一致,增加失誤和犯錯。如果你現在還是一名編程的初學者或者你剛開始從事編程工作,對於制定日常的工作程序還不甚了解,你可以請教身邊那些資深的開發者,或者在社交平台上與其他人互相交流學習。
什麼是程序員:
程序員是從事程序開發、維護的專業人員。一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。
❾ 如何從普通程序員晉升為架構師
程序員晉升架構師的十項必備技能
1、卓越的程序員 Fred George先生說:「不編程的架構師的職業生涯是短暫的」。他說這句話的背景主要是針對有些架構師的設計與實現有斷層的問題而言的,因為如果架構師不去 實踐,只是想當然的認為「沒問題,這個想法能實現」,那麼對於項目的落實而言是個很大的隱患。支付寶架構師馮大輝也表示過,架構師是一個比較「虛」的崗 位,主要的問題都在「落地」的過程中。--ITJOB--
2、抽象思維 很多優秀的架構師們都一致的表示,邏輯思維和抽象思維能力是一個架構師最重要的素質。eBay的 Randy Shoup先生稱擁有條理清晰的邏輯思維能力的人「就像稀有動物那樣難找」。Fred George則表示「駕馭概念的技能,在我看來是每一個人最高的潛力」,並表示自己不太介意這樣一個苗子在其他方面的技能和經驗的匱乏,因為在他看來除了 思維之外的其他因素都是可以培養的。 --ITJOB--
3、技術前瞻性 有人談到技術高手與架構師的區別就在於,架構師不光是著眼於現在,不僅僅局限於開發細節,比如如何調用,如何並發等等。而是跳出三界外,考慮一下面向未來問題和潛在風險的應對之道。--ITJOB--
4、問題解決大師 只是,架構師之所以為架構師,是在於他們在面對龐大系統之時,仍然能夠敏銳的發現其底層之真實。這不僅需要此哲學層面的「內功」,還需要架構師具有多領域知識和經驗的積淀。--ITJOB--
5、多領域知識 架構師身為一名技術領袖,需要通過發散知識的光芒來統御開發團隊的。如果只是對本行業知識做到爛熟於心,那還僅僅是一名熟練工的水平。要想晉升更高的層次,還需要跳出「只緣身在此山中」的困惑。--ITJOB--
6、溝通能力 做到人性化的溝通,需要我們在平時就進行培養。寫出大部頭的架構書,有的時候並沒有用VISIO畫出的簡單架構圖好理解。人對圖形理解遠遠大於對文字的理解,直觀簡單的UML圖可以極大的方便程序員理解架構師的意圖。--ITJOB--
7、內力 很多人理解的內力就是開發技術,包括語言的掌握、對框架的掌握、資料庫管理能力、安全管理能力等等。但是我們看到,架構更多的內力體現在對技術的綜合運用上,光會編程的程序員,最多就能做到高級程序員,也就是技術實現上的高手。 --ITJOB--
8、權衡取捨 Fred George先生提出了「短期濫用」的說法,即在系統能夠承受的范圍內做出一些妥協。在ATAM方法中,分析的思路是基於「情景」的:你需要提出各種可能 的情景,然後來證明在每一個用戶使用場景中,系統的哪一些內容是必要的、不可丟棄的——從而確定哪些部分是暫時可以不予考慮的。--ITJOB--
9、管控能力 架構師在管理和控制的能力上,需要有自己獨到的見解,而不是簡單的認為這是項目經理或者財務部門 的事情。身為技術專家的架構師,隨不需要處理那些煩雜的日常管理。奇虎架構師李釗在一次接受采訪時道出過架構師們的心聲,技術人才轉向管理就是莫大的浪 費。對,如果架構師只是一味的去進行項目管理,那就和其他市場人員沒有任何區別了。在這里架構師所需要的管理與控制,其實是從技術的角度,對一些問題的控 制,特別是開發過程中的監控,而不是普通意義上的純粹管理。--ITJOB--
10、藝術氣質 一個優美的系統則是可以像有機的生命一樣成長的,這是因為從系統開始架構的那一刻起,架構師就考 慮到這個系統以後將會面臨的挑戰,為系統的成長預留好空間。項目經理經常會對這位架構師提出的看似理想化的要求不置可否——項目經理只想著能夠盡快以比較 低的成本實現客戶的需求,然而這些充滿藝術美感的想法其實是打造健康——因而優美——的系統的根本因素。--ITJOB--