首頁>Club>
java高階工程師應該具備哪些技能
38
回覆列表
  • 1 # 高科技發燒控

    精通java基礎,java高階程式設計,及常用java設計模式

    宏觀方面

    一、 JAVA。

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

    二、 設計模式。

    其實寫程式碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括程式碼可重用性,可維護性,可擴充套件性等。如何寫出好的代 碼往往要藉助一些設計模式。當然長期的程式碼經驗積累,只要您用心,會使您形成自己程式碼風格。相信您的程式碼也比較符合程式碼的可重用性,可維護性,可擴充套件性。 但既然前人已經給我們總結出了經驗,我們何不踩著前人的肩膀前進?

    三、 XML。

    現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做資料轉換、做系統的配置、甚至可儲存您的系統業務資料。因此您必須瞭解 XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的專案中,XML往往擔當系統配置 資訊的作用,您需要用這些API解析這些配置資訊,開發完美的專案。

    四、 精通使用一種或兩種框架。

    “框架都會有許多可重用的程式碼,良好的層次關係和業務控制邏輯,基於框架的開 發使你可以省出很多的開發成本”。這裡希望您能精通,更多的是希望您能透過框架的使用瞭解框架的思想。這樣您在開發一個專案時思路會開闊一些,比如您 會想到把SQL語句與您的JAVA程式碼分開,再比如您會考慮把您的業務邏輯配置到XML或者資料庫中,這樣整個專案就很容易擴張了。

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

    六、 精通一種或兩種WEBServer。

    因為作為JAVA工程師,特別時 想成為高階JAVA工程師的您,您不可避免地要部署您的專案到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它 的資源,這往往可以節省很多時間和精力。

    七、 UML。

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

    八、 站在高度分析問題:

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

    九、 工具。

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

    微觀方面

    1.Core Java部分

    這是最基礎的,對於一個java高階開發/設計人員,你需要對這一部分達到精通的水平,重點內容如下:

    a.面向物件程式設計思想(封裝繼承多型介面)

    b.字串處理

    c.java.lang包,java.util包等常用包

    d.java異常處理

    2.Java高階部分

    a.Java I/O流

    b.Java多執行緒技術

    c.Java網路程式設計

    d.Java Swing

    後兩項可以瞭解即可,如果專案需要可以深入研究

    3.前端基本技能

    * HTML + CSS網頁開發

    * JavaScript

    * Jquery

    * 瀏覽器相容性 CSS hack(瞭解)

    4.熟練使用JSP + Servlet進行開發

    5.MVC設計模式,原理,以及相關框架,如Struts

    6.SSH框架

    7.快取技術 session & cookie

    8.熟練使用一種以上Java開發工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

    9.熟練使用XML

    JDOM w3c.dom SAX

    10.Java設計模式

    工廠模式,單例模式 ==

    11.Java反射機制

    反射的各種用法

    12.瞭解或熟悉 C, C++, .NET

    13.熟悉JDK的配置,環境變數

    14.資料庫oracle必學,其他最好了解一種以上(mysql,sql server,access==)

    oracle:檢視,索引,儲存過程,觸發器,遊標,包,常用函式 ==

    15.資料庫原理

    事務的原理,鎖機制,表連線,複雜查詢語句(工作經驗),效能調優,鎖表以及解決方案==

    16.JDBC,連線池

    17.Ajax,反向Ajax

    18.HTTP協議,request 和 response的原理,HTTP status(瞭解常用的),Https原理

    19.熟悉Linux基本命令,使用過Linux/Unix系統,可以編寫shell指令碼,可以在Linux上部署專案

    20.瞭解windows系統批處理指令碼bat

    21.瞭解HTML5,最好學習過

    22.熟悉一種JS框架,如Prototype

    23.J2EE原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==

    24.熟悉ant或maven

    25.熟悉一門指令碼語言,如python ,ruby

    26.瞭解php/ asp

    27.瞭解ftp協議及原理

    28.熟練使用Junit測試,熟悉Mockito等測試工具

    29,熟悉javac,javadoc,native,native2ascii等常用命令

    30.熟悉常用的排序演算法,如氣泡排序,快速排序等,最好自己研究過一些的演算法。

    31.瞭解Flex(不學也沒關係)

    32.瞭解敏捷開發模式

    33.工作流workflow至少用過一種,如OSworkflow,瞭解原理

    34.使用過VPN瞭解其原理

    35.熟悉jstl表示式和el表示式

    36.熟悉webservice,WSDL,SOAP

    37.圖片處理,如圖片上傳,預覽,限制大小等

    38.版本控制工具,CVS VSS SVN

    39,JSON技術,JSON+AJAX

    40.分頁技術,最好自己實現過不僅僅是用過要知道原理

    41.Java Mail

    42.Java讀寫txt,excel,JXL技術

    43.JVM原理,JVM記憶體管理,GC,Java堆疊池

    44.熟練使用下面的工具:

    office辦公軟體,word,excel,ppt等

    plsql,sqldevelop 資料庫開發工具

    outlook大公司都用

    ue編輯器

    瀏覽器控制檯,除錯

    SHH/PUTTY 遠端

    45.UML建模工具Rational Rose等

    46. 使用log4j

    47.使用過開放Api如百度,騰訊街景,新浪微博等

    48.頁面靜態化技術(偽靜態頁面)

    49.報表技術,使用過報表製作工具,如水晶易表。

    50.定時任務,如Spring batch ,學會自定義batch任務(不適用第三方工具)

    51.瞭解uuid

    52.b/s 和 c/s架構

    53.正則表示式

    54.瞭解jndi jms

    55.ERP

    56.UNICODE編碼,亂碼解決

    57.開源網路編輯器,如ckEditor

    58.二進位制原理

    59.使用過,瞭解過開源論壇框架,如discuzz

    60.GWT,Closure框架

    61.瞭解大資料,雲計算

    62.搜尋引擎搜尋技術

    63.軟體工程,專案管理

  • 2 # 小雨在進步

    我覺得java高階工程師無非是如下兩個兩大方面,一個是硬性技能,二是軟性技能。

    硬性技能當然是技術方向了:

    1.技術廣度方面

    現在流行什麼分散式,微服務,所以什麼dubbo,springcloud你必須會,還有什麼快取,訊息佇列呀,資料庫最佳化,jvm調優呀,大資料呀,甚至運維知識也要會一些,如docker,自動化部署之類。

    2.技術深度方面

    一方面是程式設計思想,這玩意要看自己的感悟,只有多寫,多想才有。

    另一方面是看原始碼,不談看過多少原始碼,至少有看懂原始碼的能力。

    3.架構經驗方面

    有過分散式系統的架構和開發經驗。對於跨系統的結構最佳化,資料儲存的效能指標等有豐富經驗。什麼快取啊、資料庫的垂直切分什麼的,業務的抽象和水平拆分啊,這些應該都輕車熟路吧。

    下面是軟性技能

    1.專案經驗方面

    從頭到尾跟過幾個大專案,頭是指需求階段,包括需求調研。

    尾是指上線交付之後,包括維護階段。

    2.行業領域方面

    最起碼得精通一到兩門業務吧,所謂精通,就是比如做金融證券業務的,至少等當半個經融分析師。做電力業務的,至少等當半個電力工程師。

    當然還有什麼交際能力,為人處事能力等等。

    總之,我覺得硬性技能決定你的起點,軟性技能決定你的高度。

  • 3 # Juntech

     1、熟練的使用Java語言進行面向物件程式設計,有良好的程式設計習慣,熟悉常用的JavaAPI,包括I/O(NIO)、Socket、JDBC、XML、集合框架、多執行緒(併發程式設計)、反射等。

      2、熟悉基於JSP和Servlet的JavaWeb開發,熟練的使用JSTL和EL編寫無指令碼動態頁面,對Servlet和JSP的工作原理和生命週期有深入瞭解,有使用監聽器、過濾器等Web元件以及MVC架構模式進行JavaWeb專案開發經驗。

      3、對Spring的IoC容器和AOP原理有深入瞭解,熟練的使用Spring進行事務、日誌、安全性等的管理,熟練的運用Spring框架管理各種Web元件及其依賴關係,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支援進行Web專案開發的經驗,熟悉Spring對其他框架的整合。

      4、熟悉Hibernate和MyBatis的核心API,熟練的使用Hibernate、MyBatis等ORM框架,對Hibernate的關聯對映、繼承對映、元件對映、快取機制、事務管理以及效能調優等有深入的理解。

      5、熟練的使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行專案開發的經驗,對Ajax技術在Web專案中的應用有深入理解。

      6、熟練的使用SQL和PL/SQL進行資料庫程式設計,熟悉常用的關係型資料庫產品(MySQL、Oracle)。

      7、熟悉面向物件的設計原則,熟練的使用UML進行面向物件的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗,對GoF設計模式和企業應用架構模式有深入的瞭解和實際開發的相關經驗。

      8、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、叢集和負載均衡的配置。

    9.各種訊息中介軟體的使用及懂其中的執行原理,知道原始碼,看過原始碼

      10、熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和EnterpriseArchitect,熟練的使用Java開發環境Eclipse和IntelliJ,熟練的使用前端開發環境WebStorm,熟練的使用軟體版本控制工具SVN和Git,熟練的使用專案構建和管理工具Maven和Gradle。說明:上面羅列的這些東西並不是每一項你都要爛熟於心,根據企業招聘的具體要求可以做相應的有針對性的準備。但是前6項應該是最低要求,是作為一個Java高階軟體工程師必須要具備的專業技能。

  • 4 # 境鄧窩目5kE3

    應該要具備獨立開發的能力,我是在動力節點培訓出來的,

    現在都可以獨立完成一整個專案,老闆很主管都比較看好我,

    已經給我加了好幾次工資

  • 5 # 黎明瀟瀟歌聲落

    宏觀方面

    一、 JAVA。

    要想成為JAVA(高階)工程師肯定要學習JAVA。一般的程式設計師或許只需知道一些JAVA的語法結構就可以應付了。但要成為JAVA(高階)

    工程師,您要對JAVA做比較深入的研究。您應該多研究一下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、執行緒。如果可能,希望您

    對JAVA的所有包都瀏覽一下,知道大概的API,這樣您就發現其實您想實現的很多功能,透過JAVA的API都可以實現了,就不必自己費太多的腦經 了。

    二、 設計模式。

    其實寫程式碼是很容易的事情,我相信您也有同感。但如何寫得好就比較難了。這個“好”字包括程式碼可重用性,可維護性,可擴充套件性等。如何寫出好的代

    碼往往要藉助一些設計模式。當然長期的程式碼經驗積累,只要您用心,會使您形成自己程式碼風格。相信您的程式碼也比較符合程式碼的可重用性,可維護性,可擴充套件性。

    但既然前人已經給我們總結出了經驗,我們何不踩著前人的肩膀前進?

    三、 XML。

    現在的系統中不使用XML幾乎是不可能的。XML的功能非常強大,它可以做資料轉換、做系統的配置、甚至可儲存您的系統業務資料。因此您必須瞭解

    XML,包括它的語法,結構。您還需要比較熟練的使用解析XML的一些API,比如JDOM,SAX等,因為在我們一般的專案中,XML往往擔當系統配置

    資訊的作用,您需要用這些API解析這些配置資訊,開發完美的專案。

    四、 精通使用一種或兩種框架。

    “框架都會有許多可重用的程式碼,良好的層次關係和業務控制邏輯,基於框架的開

    發使你可以省出很多的開發成本”。這裡希望您能精通,更多的是希望您能透過框架的使用瞭解框架的思想。這樣您在開發一個專案時思路會開闊一些,比如您

    會想到把SQL語句與您的JAVA程式碼分開,再比如您會考慮把您的業務邏輯配置到XML或者資料庫中,這樣整個專案就很容易擴張了。

    五、 熟悉主流資料庫。其實真正比較大的專案都是有人專門做資料庫的,但往往很多專案要求作為(高階)工程師的您也參與資料庫的設計以及SQL的編寫。所以為了

    更好的為國家做貢獻,建議您還是多瞭解一些主流資料庫,比如SQLSERVER,ORACLE,多連線SQL和儲存過程以及觸發器。如果您不是“科班”出

    身,您還需要補充一些資料庫原理方面的知識。

    六、 精通一種或兩種WEBServer。

    因為作為JAVA工程師,特別時

    想成為高階JAVA工程師的您,您不可避免地要部署您的專案到WebServer上,而且只有當您精通一種WebServer,您才可能最大限度地使用它

    的資源,這往往可以節省很多時間和精力。

    七、 UML。

    您肯定想成為高階工程師,因此您有必要了解或熟練或精通UML,這取決於您有多大決心想成為高階工程師和專案經理。在比較正規的開發團隊

    卻很重要。

    八、 站在高度分析問題:

    這不是一個知識點,也不是透過書本就能學得到的。只所以提到這一點,是因為我比您還著急,我希望您更快的成為一個高階的軟體工程師,而

    不是一個一般的軟體工程師。希望您在工作中多向您的系統分析員、需求分析員、系統設計員學習,多站在他們角度上去看您在開發的專案。在最好在專案之初先在

    您的腦海裡對專案有個大致的分析、設計,然後和他們進行比較,找找差別,想想缺點。

    九、 工具。

    您在這個階段可能接觸到不同的工具了,儘管您還需要使用JB或者IDEA,但能可能對

    ROSE,Together要多瞭解一些,因為您要畫UML了。不要再對Dreamweaver等HTML編輯器情有獨鍾了,那些JSP頁面讓初級程式設計師去寫吧

    微觀方面

    1.Core Java部分

    這是最基礎的,對於一個java高階開發/設計人員,你需要對這一部分達到精通的水平,重點內容如下:

    a.面向物件程式設計思想(封裝繼承多型介面)

    b.字串處理

    c.java.lang包,java.util包等常用包

    d.java異常處理

    2.Java高階部分

    a.Java I/O流

    b.Java多執行緒技術

    c.Java網路程式設計

    d.Java Swing

    後兩項可以瞭解即可,如果專案需要可以深入研究

    3.前端基本技能

    * HTML + CSS網頁開發

    * JavaScript

    * Jquery

    * 瀏覽器相容性 CSS hack(瞭解)

    4.熟練使用JSP + Servlet進行開發

    5.MVC設計模式,原理,以及相關框架,如Struts

    6.SSH框架

    7.快取技術 session & cookie

    8.熟練使用一種以上Java開發工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

    9.熟練使用XML

    JDOM w3c.dom SAX

    10.Java設計模式

    工廠模式,單例模式 ==

    11.Java反射機制

    反射的各種用法

    12.瞭解或熟悉 C, C++, .NET

    13.熟悉JDK的配置,環境變數

    14.資料庫oracle必學,其他最好了解一種以上(mysql,sql server,access==)

    oracle:檢視,索引,儲存過程,觸發器,遊標,包,常用函式 ==

    15.資料庫原理

    事務的原理,鎖機制,表連線,複雜查詢語句(工作經驗),效能調優,鎖表以及解決方案==

    16.JDBC,連線池

    17.Ajax,反向Ajax

    18.HTTP協議,request 和 response的原理,HTTP status(瞭解常用的),Https原理

    19.熟悉Linux基本命令,使用過Linux/Unix系統,可以編寫shell指令碼,可以在Linux上部署專案

    20.瞭解windows系統批處理指令碼bat

    21.瞭解HTML5,最好學習過

    22.熟悉一種JS框架,如Prototype

    23.J2EE原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==

    24.熟悉ant或maven

    25.熟悉一門指令碼語言,如python ,ruby

    26.瞭解php/ asp

    27.瞭解ftp協議及原理

    28.熟練使用Junit測試,熟悉Mockito等測試工具

    29,熟悉javac,javadoc,native,native2ascii等常用命令

    30.熟悉常用的排序演算法,如氣泡排序,快速排序等,最好自己研究過一些的演算法。

    31.瞭解Flex(不學也沒關係)

    32.瞭解敏捷開發模式

    33.工作流workflow至少用過一種,如OSworkflow,瞭解原理

    34.使用過VPN瞭解其原理

    35.熟悉jstl表示式和el表示式

    36.熟悉webservice,WSDL,SOAP

    37.圖片處理,如圖片上傳,預覽,限制大小等

    38.版本控制工具,CVS VSS SVN

    39,JSON技術,JSON+AJAX

    40.分頁技術,最好自己實現過不僅僅是用過要知道原理

    41.Java Mail

    42.Java讀寫txt,excel,JXL技術

    43.JVM原理,JVM記憶體管理,GC,Java堆疊池

    44.熟練使用下面的工具:

    office辦公軟體,word,excel,ppt等

    plsql,sqldevelop 資料庫開發工具

    outlook大公司都用

    ue編輯器

    瀏覽器控制檯,除錯

    SHH/PUTTY 遠端

    45.UML建模工具Rational Rose等

    46. 使用log4j

    47.使用過開放Api如百度,騰訊街景,新浪微博等

    48.頁面靜態化技術(偽靜態頁面)

    49.報表技術,使用過報表製作工具,如水晶易表。

    50.定時任務,如Spring batch ,學會自定義batch任務(不適用第三方工具)

    51.瞭解uuid

    52.b/s 和 c/s架構

    53.正則表示式

    54.瞭解jndi jms

    55.ERP

    56.UNICODE編碼,亂碼解決

    57.開源網路編輯器,如ckEditor

    58.二進位制原理

    59.使用過,瞭解過開源論壇框架,如discuzz

    60.GWT,Closure框架

    61.瞭解大資料,雲計算

    62.搜尋引擎搜尋技術

    63.軟體工程,專案管理

    職業要求

    教育培訓

    計算機相關專業,大專及以上學歷。相關專業證書有:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD) 認證。

    工作經驗

    有一定的軟體分析設計能力;熟悉Java、Servlet、JSP、EJB等開發技術;熟練使用Eclipse或jbuilder等java開發工具;熟悉JAVA+STRUTS體系結構和開發工具;熟悉至少一種資料庫的開發和設計;具有良好的學習能力,具有強烈的工作責任心、有良好的溝通能力和團隊合作精神。

    薪酬參考

    據智聯招聘上對上海java工程師的薪資據說顯示,截止到2012年6月13日,java工程師的平均水平已達6435。根據現在移動網際網路中安卓市場的份額,相信這一職業的工資水平會一直上升。

    就業前景

    Java是目前世界上最流行的計算機程式語言,是一種可以編寫跨平臺應用軟體的面向物件的程式設計語言。這可以概括JAVA有著自己獨特的優勢:語言簡單、是一個面向物件、分散式應用並且安全、體系結構中立並且可移植,最重要,它是一個動態語言。

    權威統計機構統計——在所有軟體開發類人才的需求中,對 JAVA工程師的需求達到全部需求量的60%~70%。JAVA工程師的薪水相對較高,通常來說,具有3~5年開發經驗的工程師,擁有年薪 10萬元是很正常的一個薪酬水平。

    JAVA發展方向

    一是成為管理人員,例如產品研發經理,技術經理,專案經理等繼續;二是他的技術工作之路,成為高階軟體工程師、需求工程師等。

    還是看看IDC Java工程師的薪水相對較高。 Java軟體工程師一般月薪範圍在4000-10000元,遠遠超過了應屆畢業生月薪2500元的平均水平。通常來說,有一年工作經驗的Java高階軟體工程師的薪酬大致在年薪10—13萬左右。

    JAVA就業方向:可以從事JSP網站開發、Java程式設計、Java遊戲開發、Java桌面程式設計,以及其他與Java語言程式設計相關的工作。可進入電信、銀行、保險專業軟體開發公司等從事軟體設計和開發工作。

  • 中秋節和大豐收的關聯?
  • 學習挺好的,考差了怎麼面對老師?