技術(shù)不同,簡(jiǎn)單的可以理解為:初級(jí)中級(jí)的只關(guān)注代碼,編程。高級(jí)的就要考慮系統(tǒng)的架構(gòu),整體框架。
具體區(qū)別如下:
一、初級(jí)工程師
1、首先要學(xué)習(xí)java的基礎(chǔ)知識(shí)。不要被新技術(shù)迷惑,所謂萬(wàn)變不離其宗,新技術(shù)都是基于java的基礎(chǔ)之上,如果基礎(chǔ)不扎實(shí),對(duì)于這些新技術(shù)的理解也是一知半解,學(xué)不到根源。
2、做一個(gè)java項(xiàng)目在學(xué)習(xí)完java的基礎(chǔ)知識(shí)之后,做一個(gè)java項(xiàng)目來(lái)鞏固一下,在項(xiàng)目中會(huì)發(fā)現(xiàn)很多問(wèn)題,通過(guò)解決問(wèn)題,加深基礎(chǔ)知識(shí)的掌握。
3、學(xué)習(xí)數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)和開(kāi)發(fā)應(yīng)用軟件開(kāi)發(fā)離不了數(shù)據(jù)庫(kù),掌握幾種流行的數(shù)據(jù)庫(kù):Oracle、SQL、server、MySQL等。
4、JEE基礎(chǔ)在這里首先要學(xué)習(xí)網(wǎng)站基礎(chǔ),包括HTML、DHTML、JavaScript;接著要學(xué)習(xí)XML,XML JAXP;然后學(xué)習(xí)JEE基礎(chǔ),包括JEE開(kāi)發(fā)環(huán)境,RMI/IIOP、JNDI;最后學(xué)習(xí)JDBC數(shù)據(jù)庫(kù)的應(yīng)用開(kāi)發(fā)。
5、web開(kāi)發(fā)全面的JEE的web開(kāi)發(fā)知識(shí):Servlet JSP javaBean TagLib,到這里做一個(gè)完整的web應(yīng)用項(xiàng)目開(kāi)發(fā)。
6、EJB開(kāi)發(fā)包含全面的EJB知識(shí):1)EJB入門和無(wú)狀態(tài)會(huì)話Bean;2)有狀態(tài)會(huì)話Bean;3)BMP和CMP是實(shí)體Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的開(kāi)發(fā)和應(yīng)用。
7、開(kāi)源框架的學(xué)習(xí)學(xué)習(xí)幾種現(xiàn)在流行的開(kāi)源框架:Struts、Spring、Hibernian、Webwork等。完整的學(xué)習(xí)這些框架的開(kāi)發(fā)和應(yīng)用。如果有興趣還可以學(xué)習(xí)Ibati框架、AJAX技術(shù)和DWR框架的開(kāi)發(fā)和應(yīng)用。
8、JEE項(xiàng)目綜合應(yīng)用JEE的知識(shí)來(lái)開(kāi)發(fā)一個(gè)完整的應(yīng)用。
9、面向?qū)ο蠓治雠c設(shè)計(jì)java是一種面向?qū)ο蟮恼Z(yǔ)言,所以要深入學(xué)習(xí)面向?qū)ο蟮姆治雠c設(shè)計(jì),另外還要學(xué)習(xí)UML統(tǒng)一建模語(yǔ)言。
10、接下來(lái)就是系統(tǒng)設(shè)計(jì)與架構(gòu)這里要學(xué)習(xí)的是Java設(shè)計(jì)模式、EJB設(shè)計(jì)模式、JEE核心設(shè)計(jì)模式、JEE應(yīng)用程序框架設(shè)計(jì)。
11、軟件工程軟件工程基本理論知識(shí)的學(xué)習(xí),還有Rup和極限編程。
12、技術(shù)研究學(xué)習(xí)搜索引擎技術(shù):如Lucene等、工作流技術(shù):包含Shark、JBPM等、SOA架構(gòu)和應(yīng)用。
13、綜合項(xiàng)目實(shí)戰(zhàn)實(shí)現(xiàn)一個(gè)企業(yè)級(jí)的應(yīng)用。每個(gè)階段在做項(xiàng)目的基礎(chǔ)上牢固的掌握應(yīng)用到的知識(shí),只有在實(shí)際的應(yīng)用中發(fā)現(xiàn)問(wèn)題,加深所學(xué)的知識(shí)。
二、中級(jí)工程師
1、對(duì)于Java基礎(chǔ)技術(shù)體系(包括JVM、類裝載機(jī)制、多線程并發(fā)、IO、網(wǎng)絡(luò))有一定的掌握和應(yīng)用經(jīng)驗(yàn)。
掌握J(rèn)VM內(nèi)存分配、JVM垃圾回收;類裝載機(jī)制; 性能優(yōu)化; 反射機(jī)制;多線程;IO/NIO; 網(wǎng)絡(luò)編程;常用數(shù)據(jù)結(jié)構(gòu)和相關(guān)算法。
2、對(duì)面向?qū)ο蟮能浖_(kāi)發(fā)思想有清晰的認(rèn)識(shí)、熟悉掌握常用的設(shè)計(jì)模式;設(shè)計(jì)模式;單例模式;工廠模式;代理模式;模板方法模式;責(zé)任鏈模式等。
3、熟練掌握目前流行開(kāi)源框架(spring/springmvc/ibatis),并且對(duì)其核心思想、實(shí)現(xiàn)原理有一定認(rèn)知;開(kāi)源框架:spring;hibernate。
4、熟悉Oracle、MySQL等數(shù)據(jù)庫(kù)開(kāi)發(fā)與設(shè)計(jì)以及緩存系統(tǒng)Redis或 Memcached的設(shè)計(jì)和研發(fā);關(guān)系數(shù)據(jù)庫(kù):oracle;PostgreSQL 緩存系統(tǒng):Redis(Nosql)緩存系統(tǒng):Memcached。
5、熟悉底層中間件、分布式技術(shù)(包括緩存、消息系統(tǒng)、熱部署、JMX等)、底層中間件:應(yīng)用服務(wù)器:Jetty(Tomcat)、 消息中間件:ActiveMQ、RabbitMQ、事務(wù)處理中間件:數(shù)據(jù)訪問(wèn)中間件:ODBC、工作流中間件:JBPM,分布式技術(shù):緩存系統(tǒng)、消息系統(tǒng)、Restful、熱部署、JMX。
6、至少一種Java 應(yīng)用服務(wù)器如tomcat、Jetty。
7、精通shell編程,熟練應(yīng)用awk、sed、grep、strace、tcudump、gdb等常用命令。
8、有大型分布式、高并發(fā)、高負(fù)載(大數(shù)據(jù)量)、高可用性系統(tǒng)設(shè)計(jì)開(kāi)發(fā)經(jīng)驗(yàn),分布式:(多節(jié)點(diǎn)部署)、高并發(fā)、高負(fù)載(大數(shù)據(jù)量)、高穩(wěn)定、高可用。
9、對(duì)配置管理和敏捷研發(fā)模式有所了解,配置管理工具:SVN、Github。
10、業(yè)務(wù)能力:系統(tǒng)升級(jí)、雙機(jī)、部署、容災(zāi)、備份恢復(fù)、DFX。
11、加分技術(shù):腳本語(yǔ)言:Python,遠(yuǎn)程調(diào)用,精通Internet基本協(xié)議(如TCP/IP、HTTP等)內(nèi)容及相關(guān)應(yīng)用。有一定安全意識(shí)并了解常見(jiàn)的安全問(wèn)題解決方案。熟悉常見(jiàn)的一些解決方案及其原理:?jiǎn)吸c(diǎn)登錄、分布式緩存、SOA、全文檢索、消息中間件,負(fù)載均衡、連接池、nosql、流計(jì)算等。
三、高級(jí)工程師
1、JAVA。要想成為JAVA(高級(jí))工程師肯定要學(xué)習(xí)JAVA。一般的程序員或許只需知道一些JAVA的語(yǔ)法結(jié)構(gòu)就可以應(yīng)付了。但要成為JAVA(高級(jí))工程師,您要對(duì)JAVA做比較深入的研究。您應(yīng)該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您對(duì)JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發(fā)現(xiàn)其實(shí)您想實(shí)現(xiàn)的很多功能,通過(guò)JAVA的API都可以實(shí)現(xiàn)了,就不必自己費(fèi)太多的腦經(jīng)了。
2、設(shè)計(jì)模式。其實(shí)寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個(gè)“好”字包括代碼可重用性,可維護(hù)性,可擴(kuò)展性等。如何寫出好的代碼往往要借助一些設(shè)計(jì)模式。當(dāng)然長(zhǎng)期的代碼經(jīng)驗(yàn)積累,只要您用心,會(huì)使您形成自己代碼風(fēng)格。相信您的代碼也比較符合代碼的可重用性,可維護(hù)性,可擴(kuò)展性。但既然前人已經(jīng)給我們總結(jié)出了經(jīng)驗(yàn),我們何不踩著前人的肩膀前進(jìn)?3、XML。現(xiàn)在的系統(tǒng)中不使用XML幾乎是不可能的。XML的功能非常強(qiáng)大,它可以做數(shù)據(jù)轉(zhuǎn)換、做系統(tǒng)的配置、甚至可保存您的系統(tǒng)業(yè)務(wù)數(shù)據(jù)。因此您必須了解XML,包括它的語(yǔ)法,結(jié)構(gòu)。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因?yàn)樵谖覀円话愕捻?xiàng)目中,XML往往擔(dān)當(dāng)系統(tǒng)配置信息的作用,您需要用這些API解析這些配置信息,開(kāi)發(fā)完美的項(xiàng)目。4、精通使用一種或兩種框架。“框架都會(huì)有許多可重用的代碼,良好的層次關(guān)系和業(yè)務(wù)控制邏輯,基于框架的開(kāi)發(fā)使你可以省出很多的開(kāi)發(fā)成本”。但我這里希望您能精通,更多的是希望您能通過(guò)框架的使用了解框架的思想。這樣您在開(kāi)發(fā)一個(gè)項(xiàng)目時(shí)思路會(huì)開(kāi)闊一些,比如您會(huì)想到把SQL語(yǔ)句與您的JAVA代碼分開(kāi),再比如您會(huì)考慮把您的業(yè)務(wù)邏輯配置到XML或者數(shù)據(jù)庫(kù)中,這樣整個(gè)項(xiàng)目就很容易擴(kuò)張了。
5、熟悉主流數(shù)據(jù)庫(kù)。其實(shí)真正比較大的項(xiàng)目都是有人專門做數(shù)據(jù)庫(kù)的,但往往很多項(xiàng)目要求作為(高級(jí))工程師的您也參與數(shù)據(jù)庫(kù)的設(shè)計(jì)以及SQL的編寫。所以為了更好的為國(guó)家做貢獻(xiàn),建議您還是多了解一些主流數(shù)據(jù)庫(kù),比如SQLSERVER,ORACLE,多連接SQL和存儲(chǔ)過(guò)程以及觸發(fā)器。如果您不是“科班”出身,您還需要補(bǔ)充一些數(shù)據(jù)庫(kù)原理方面的知識(shí)。
6、精通一種或兩種WEBServer。我還是要強(qiáng)調(diào)您要精通一種或兩種。因?yàn)樽鳛镴AVA工程師,特別時(shí)想成為高級(jí)JAVA工程師的您,您不可避免地要部署您的項(xiàng)目到WebServer上,而且只有當(dāng)您精通一種WebServer,您才可能最大限度地使用它的資源,這往往可以節(jié)省很多時(shí)間和精力。
7、UML。我知道您肯定想成為高級(jí)工程師,因此您有必要了解或熟練或精通UML,這取決于您有多大決心想成為高級(jí)工程師和項(xiàng)目經(jīng)理。在比較正規(guī)的開(kāi)發(fā)團(tuán)隊(duì)中,UML是討論項(xiàng)目的交流工具,您要想做一個(gè)軟件工程師,您至少要能看懂,您要想做高級(jí)工程師,您要能通過(guò)它來(lái)描述您對(duì)項(xiàng)目的理解,盡管這不是必須,但卻很重要。
8、站在高度分析問(wèn)題:這不是一個(gè)知識(shí)點(diǎn),也不是通過(guò)書本就能學(xué)得到的。只所以提到這一點(diǎn),是因?yàn)槲冶饶€著急,我希望您更快的成為一個(gè)高級(jí)的軟件工程師,而不是一個(gè)一般的軟件工程師。希望您在工作中多向您的系統(tǒng)分析員、需求分析員、系統(tǒng)設(shè)計(jì)員學(xué)習(xí),多站在他們角度上去看您在開(kāi)發(fā)的項(xiàng)目。在最好在項(xiàng)目之初先在您的腦海里對(duì)項(xiàng)目有個(gè)大致的分析、設(shè)計(jì),然后和他們進(jìn)行比較,找找差別,想想缺點(diǎn)。
9、工具。您在這個(gè)階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA,但能可能對(duì)ROSE,Together要多了解一些,因?yàn)槟婾ML了。不要再對(duì)Dreamweaver等HTML編輯器情有獨(dú)鐘了,那些JSP頁(yè)面讓初級(jí)程序員去寫吧。
-
JAVA
+關(guān)注
關(guān)注
20文章
2988瀏覽量
108375 -
開(kāi)發(fā)工程師
+關(guān)注
關(guān)注
1文章
91瀏覽量
15107
發(fā)布評(píng)論請(qǐng)先 登錄


硬件工程師看了只會(huì)找個(gè)角落默默哭泣#硬件工程師 #MDD #MDD辰達(dá)半導(dǎo)體 #產(chǎn)品經(jīng)理 #軟件工程師

如何成為一名合格的KaihongOS北向應(yīng)用開(kāi)發(fā)工程師
如何成為一名嵌入式軟件工程師?


嵌入式軟件工程師就業(yè)好不好?

不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過(guò)于真實(shí) #YXC晶振 #揚(yáng)興科技
我國(guó)軟件開(kāi)發(fā)者數(shù)量突破940萬(wàn)
嵌入式工程師常用的開(kāi)發(fā)工具有哪些?

硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
FPGA算法工程師、邏輯工程師、原型驗(yàn)證工程師有什么區(qū)別?
嵌入式軟件開(kāi)發(fā)招聘
華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

評(píng)論