個人總結的一箇中高級Java開發工程師或架構師需要掌握的一些技能

近三年,其實都是在做一個項目,項目是一個大型的多節點部署的項目,做了好幾個版本,中間用到了很多技術和框架,

也用了一些管理工具和敏捷實踐。我這裏不是來說項目的,因爲最近看了一些招聘信息,結合項目中用到的一些知識和

管理措施,作爲一個程序員,需要去實時評估下自己當前的能力是否能跟上時代的步伐,所以,總結了下作爲一箇中高

Java開發人員或架構師,到底需要掌握哪些技能。

 

當然,下述所列都是自己的看法,有興趣的參考下,沒興趣的,就當看笑話了吧。

 

 

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

  JVM內存分配、JVM垃圾回收;

  類裝載機制;

  性能優化:

  反射機制;

  多線程;

  IO/NIO; http://developer.51cto.com/art/201112/307172.htm

  網絡編程;

  常用數據結構和相關算法

  

2、對面向對象的軟件開發思想有清晰的認識、熟悉掌握常用的設計模式;

  設計模式:單例模式;工廠模式;代理模式;模板方法模式;責任鏈模式等

  

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

  開源框架:spring;

  開源框架:hibernate

  

4、熟悉OracleMySQL數據庫開發與設計以及緩存系統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

  

加分技術:

   腳本語言:Python

   遠程調用:

   精通Internet基本協議(如TCP/IP、HTTP等)內容及相關應用

   有一定安全意識並瞭解常見的安全問題解決方案

   熟悉常見的一些解決方案及其原理:單點登錄、分佈式緩存、SOA、全文檢索、消息中間件,負載均衡、連接池、

   nosql、流計算等;


原文地址:http://blog.csdn.net/gokeibi/article/details/40958303

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