Java軟件開發工程師級別

java 初級、中級、高級工程師有什麼區別?

Miranda熱果

2017-12-08最佳答案

技術不同,簡單的可以理解爲:初級中級的只關注代碼,編程。高級的就要考慮系統的架構,整體框架。

具體區別如下:

一、初級工程師

1、首先要學習java的基礎知識。不要被新技術迷惑,所謂萬變不離其宗,新技術都是基於java的基礎之上,如果基礎不紮實,對於這些新技術的理解也是一知半解,學不到根源。

2、做一個java項目在學習完java的基礎知識之後,做一個java項目來鞏固一下,在項目中會發現很多問題,通過解決問題,加深基礎知識的掌握。

3、學習數據庫的基礎知識和開發應用軟件開發離不了數據庫,掌握幾種流行的數據庫:Oracle、SQL、server、MySQL等。

4、JEE基礎在這裏首先要學習網站基礎,包括HTML、DHTML、JavaScript;接着要學習XML,XML JAXP;然後學習JEE基礎,包括JEE開發環境,RMI/IIOP、JNDI;最後學習JDBC數據庫的應用開發。

5、web開發全面的JEE的web開發知識:Servlet JSP javaBean TagLib,到這裏做一個完整的web應用項目開發。

6、EJB開發包含全面的EJB知識:1)EJB入門和無狀態會話Bean;2)有狀態會話Bean;3)BMP和CMP是實體Bean;4)jms和MessageDrivenBean;5)事物和安全(JTA、JTS和JAAS);6)WebService的開發和應用。

7、開源框架的學習學習幾種現在流行的開源框架:Struts、Spring、Hibernian、Webwork等。完整的學習這些框架的開發和應用。如果有興趣還可以學習Ibati框架、AJAX技術和DWR框架的開發和應用。

8、JEE項目綜合應用JEE的知識來開發一個完整的應用。

9、面向對象分析與設計java是一種面向對象的語言,所以要深入學習面向對象的分析與設計,另外還要學習UML統一建模語言。

10、接下來就是系統設計與架構這裏要學習的是Java設計模式、EJB設計模式、JEE核心設計模式、JEE應用程序框架設計。

11、軟件工程軟件工程基本理論知識的學習,還有Rup和極限編程。

12、技術研究學習搜索引擎技術:如Lucene等、工作流技術:包含Shark、JBPM等、SOA架構和應用。

13、綜合項目實戰實現一個企業級的應用。每個階段在做項目的基礎上牢固的掌握應用到的知識,只有在實際的應用中發現問題,加深所學的知識。

二、中級工程師

1、對於Java基礎技術體系(包括JVM、類裝載機制、多線程併發、IO、網絡)有一定的掌握和應用經驗。

掌握JVM內存分配、JVM垃圾回收;類裝載機制; 性能優化; 反射機制;多線程;IO/NIO; 網絡編程;常用數據結構和相關算法。

2、對面向對象的軟件開發思想有清晰的認識、熟悉掌握常用的設計模式;設計模式;單例模式;工廠模式;代理模式;模板方法模式;責任鏈模式等。

3、熟練掌握目前流行開源框架(spring/springmvc/ibatis),並且對其核心思想、實現原理有一定認知;開源框架:spring;hibernate。

4、熟悉Oracle、MySQL等數據庫開發與設計以及緩存系統Redis或 Memcached的設計和研發;關係數據庫:oracle;PostgreSQL  緩存系統:Redis(Nosql)緩存系統:Memcached。

5、熟悉底層中間件、分佈式技術(包括緩存、消息系統、熱部署、JMX等)、底層中間件:應用服務器:Jetty(Tomcat)、 消息中間件:ActiveMQ、RabbitMQ、事務處理中間件:數據訪問中間件:ODBC、工作流中間件:JBPM,分佈式技術:緩存系統、消息系統、Restful、熱部署、JMX。

6、至少一種Java 應用服務器如tomcat、Jetty。

7、精通shell編程,熟練應用awk、sed、grep、strace、tcudump、gdb等常用命令。

8、有大型分佈式、高併發、高負載(大數據量)、高可用性系統設計開發經驗,分佈式:(多節點部署)、高併發、高負載(大數據量)、高穩定、高可用。

9、對配置管理和敏捷研發模式有所瞭解,配置管理工具:SVN、Github。

10、業務能力:系統升級、雙機、部署、容災、備份恢復、DFX。

11、加分技術:腳本語言:Python,遠程調用,精通Internet基本協議(如TCP/IP、HTTP等)內容及相關應用。有一定安全意識並瞭解常見的安全問題解決方案。熟悉常見的一些解決方案及其原理:單點登錄、分佈式緩存、SOA、全文檢索、消息中間件,負載均衡、連接池、nosql、流計算等。

三、高級工程師

1、JAVA。要想成爲JAVA(高級)工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成爲JAVA(高級)工程師,您要對JAVA做比較深入的研究。您應該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、線程。如果可能,希望您對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發現其實您想實現的很多功能,通過JAVA的API都可以實現了,就不必自己費太多的腦經了。

2、設計模式。其實寫代碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括代碼可重用性,可維護性,可擴展性等。如何寫出好的代碼往往要藉助一些設計模式。當然長期的代碼經驗積累,只要您用心,會使您形成自己代碼風格。相信您的代碼也比較符合代碼的可重用性,可維護性,可擴展性。但既然前人已經給我們總結出了經驗,我們何不踩着前人的肩膀前進?3、XML。現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做數據轉換、做系統的配置、甚至可保存您的系統業務數據。因此您必須瞭解XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因爲在我們一般的項目中,XML往往擔當系統配置信息的作用,您需要用這些API解析這些配置信息,開發完美的項目。4、精通使用一種或兩種框架。“框架都會有許多可重用的代碼,良好的層次關係和業務控制邏輯,基於框架的開發使你可以省出很多的開發成本”。但我這裏希望您能精通,更多的是希望您能通過框架的使用瞭解框架的思想。這樣您在開發一個項目時思路會開闊一些,比如您會想到把SQL語句與您的JAVA代碼分開,再比如您會考慮把您的業務邏輯配置到XML或者數據庫中,這樣整個項目就很容易擴張了。

5、熟悉主流數據庫。其實真正比較大的項目都是有人專門做數據庫的,但往往很多項目要求作爲(高級)工程師的您也參與數據庫的設計以及SQL的編寫。所以爲了更好的爲國家做貢獻,建議您還是多瞭解一些主流數據庫,比如SQLSERVER,ORACLE,多連接SQL和存儲過程以及觸發器。如果您不是“科班”出身,您還需要補充一些數據庫原理方面的知識。

6、精通一種或兩種WEBServer。我還是要強調您要精通一種或兩種。因爲作爲JAVA工程師,特別時想成爲高級JAVA工程師的您,您不可避免地要部署您的項目到WebServer上,而且只有當您精通一種WebServer,您纔可能最大限度地使用它的資源,這往往可以節省很多時間和精力。

7、UML。我知道您肯定想成爲高級工程師,因此您有必要了解或熟練或精通UML,這取決於您有多大決心想成爲高級工程師和項目經理。在比較正規的開發團隊中,UML是討論項目的交流工具,您要想做一個軟件工程師,您至少要能看懂,您要想做高級工程師,您要能通過它來描述您對項目的理解,儘管這不是必須,但卻很重要。

8、站在高度分析問題:這不是一個知識點,也不是通過書本就能學得到的。只所以提到這一點,是因爲我比您還着急,我希望您更快的成爲一個高級的軟件工程師,而不是一個一般的軟件工程師。希望您在工作中多向您的系統分析員、需求分析員、系統設計員學習,多站在他們角度上去看您在開發的項目。在最好在項目之初先在您的腦海裏對項目有個大致的分析、設計,然後和他們進行比較,找找差別,想想缺點。

9、工具。您在這個階段可能接觸到不同的工具了,儘管您還需要使用JB或者IDEA,但能可能對ROSE,Together要多瞭解一些,因爲您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鍾了,那些JSP頁面讓初級程序員去寫吧。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章