怎樣學(xué)習(xí)才能從一個Java菜鳥成長為一名合格的Java架構(gòu)師呢,或者說一名合格的架構(gòu)師應(yīng)該有怎樣的技術(shù)知識體系,這是不僅一個剛剛踏入職場的初級程序員也是工作三五年之后開始迷茫的老程序員經(jīng)常會問到的問題。
一、Java。要想成為Java(高級)專家肯定要學(xué)習(xí)Java。一般的程序員或許只需知道一些Java的語法結(jié)構(gòu)就可以應(yīng)付了。但要成為Java(高級)專家,您要對Java做比較深入的研究。您應(yīng)該多研究一下JDBC、IO包、源碼分析、高并發(fā)、JMS、Spring、RMI、線程。如果可能,希望您對Java的所有包都瀏覽一下,知道大概的API,這樣您就發(fā)現(xiàn)其實您想實現(xiàn)的很多功能,通過Java的API都可以實現(xiàn)了,就不必自己費太多的腦經(jīng)了。
二、設(shè)計模式。其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代碼往往要借助一些設(shè)計模式。當(dāng)然長期的代碼經(jīng)驗積累,只要您用心,會使您形成自己代碼風(fēng)格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。但既然前人已經(jīng)給我們總結(jié)出了經(jīng)驗,我們何不踩著前人的肩膀前進?
三、XML?,F(xiàn)在的系統(tǒng)中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數(shù)據(jù)轉(zhuǎn)換、做系統(tǒng)的配置、甚至可保存您的系統(tǒng)業(yè)務(wù)數(shù)據(jù)。因此您必須了解XML,包括它的語法,結(jié)構(gòu)。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的項目中,XML往往擔(dān)當(dāng)系統(tǒng)配置信息的作用,您需要用這些API解析這些配置信息,開發(fā)完美的項目。
四、精通使用一種或兩種框架。像在《如何成為高薪架構(gòu)師》中提到的那樣,“框架都會有許多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于Java框架的開發(fā)使你可以省出很多的開發(fā)成本”。但我這里希望您能精通,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發(fā)一個項目時思路會開闊一些,比如您會想到把SQL語句與您的Java代碼分開,再比如您會考慮把您的業(yè)務(wù)邏輯配置到XML或者數(shù)據(jù)庫中,這樣整個項目就很容易擴張了。
五、熟悉主流數(shù)據(jù)庫。其實真正比較大的項目都是有人專門做數(shù)據(jù)庫的,但往往很多項目要求作為(高級)工程師的您也參與數(shù)據(jù)庫的設(shè)計以及SQL的編寫。所以為了更好的為國家做貢獻,建議您還是多了解一些主流數(shù)據(jù)庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發(fā)器。如果您不是“科班”出身,您還需要補充一些數(shù)據(jù)庫原理方面的知識。
六、UML。我知道您肯定想成為高級工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級工程師和項目經(jīng)理。在比較正規(guī)的開發(fā)團隊中,UML是討論項目的交流工具,您要想做一個軟件工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,盡管這不是必須,但卻很重要。
七、站在高度分析問題:這不是一個知識點,也不是通過書本就能學(xué)得到的。之所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高級的軟件工程師,而不是一個一般的軟件工程師。希望您在工作中多向您的系統(tǒng)分析員、需求分析員、系統(tǒng)設(shè)計員學(xué)習(xí),多站在他們角度上去看您在開發(fā)的項目。在最好在項目之初先在您的腦海里對項目有個大致的分析、設(shè)計,然后和他們進行比較,找找差別,想想缺點。
八、工具。與在《Java程序員的未來發(fā)展之路,你是否感到迷茫?》里提到的不同,您在這個階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對ROSE,Together要多了解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鐘了,那些JSP頁面讓初級程序員去寫吧
Java進階技術(shù)方面
中國Java程序員的數(shù)量已經(jīng)超過了1000萬。而且,隨著IT培訓(xùn)業(yè)的持續(xù)發(fā)展和大量的應(yīng)屆畢業(yè)生進入社會,Java程序員面臨的競爭壓力越來越大。那么,作為一名Java程序員,怎樣努力才能快速成長為一名高級的程序員或者架構(gòu)師,或者說一名優(yōu)秀的高級工程師或架構(gòu)師應(yīng)該有怎樣的技術(shù)知識體系,這不僅是一個剛剛踏入職場的初級程序員,也是工作三五年之后開始迷茫的老程序員,都必須要面對和想明白的問題。為了幫助大家少走彎路,我們總結(jié)出一個Java程序員的工作2-5年成長路線圖