Java软件工程师的未来发展方向大致分为两类:
一是成为管理人员,例如产品研发经理,技术经理,项目经理等;
二是继续他的技术
工作之路,成为高级
软件工程师、需求工程师等。
另外一种分类方式:
一. 架构师
1、主流框架要掌握如(ssh),没事可以了解下jsf,shale,seam,richface,jpa 框架。
2、对于各种缓存的分析利弊,能灵活运用 如memcache,Oscache, 内存数据库timesken,嵌入数据库b-db等。
3、向
网络、
通信方面发展,比如说写个类似于mina的框架,写写类似于游戏服务端的东西,自己可以写协议,支持高并发。
4、掌握几种主流数据库,oracle,sql ,my
sql等,可以书写复杂的存储过程,
mysql之类的分布、集群掌握一下。
5、会用轻量级别的SOA框架,如serviceMix,Mule等。。。JMS消息队列需要掌握。
6、深入了解当前业务系统,争取做到这方面的专家。
7、熟悉了Java基础类库之后,还需要写出好的代码,重用+重构,重用是一种思想,需要多
学习设计模式,Java类库中设计模式使用得就非常多,这点需要自己多思考;重构,在不影响原有功能的基础上改善代码的质量,这个需要自己平时多加练习和体会。
8、建议深入JVM的深层机制,如类加载机制等,如果业务的访问量大,尽早会遇到一些性能问题,JAVA常用的性能问题就是OutOfMemory,自己可以尝试去解决这类问题,不过要做好心理准备,解决这类
问题一般需要较长时间,而且会比较痛苦,当然在解决这类问题的过程中,可以学到很多东西,可以明显感觉到自己的提升。
二. DBA
精通Oracle或MS-SQL。
一个Java程序员应该掌握的10项技能
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果这些命令你没有全部使用过,那么你对java实际上还很不了解。
3、工具:必须至少熟练使用一种IDE的开发工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括进行工程管理、
常用选项的设置、插件的安装配置以及进行调试。
4、API:
Java的核心API是非常庞大的,但是有一些内容笔者认为是必须熟悉的,否则不可能熟练的运用Java,包括:
◆java.lang包下的80%以上的类的功能的灵活运用。
◆java.util包下的80%以上的类的灵活运用,特别是集合类体系、规则表达式、zip、以及时间、随机数、属性、资源和Timer.
◆java.io包下的
60%以上的类的使用,理解IO体系的基于管道模型的
设计思路以及常用IO类的特性和使用场合。
◆java.math包下的100%的内容。
◆java.net包下的60%以上的内容,对各个类的功能比较熟悉。
◆java.text包下的60%以上的内容,特别是各种格式化类。
◆熟练运用JDBC. 8)、java.security包下40%以上的内容,如果对于安全没有接触的话根本就不可能掌握java.
◆AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印。
◆Swing的基本内容,和AWT的要求类似。
◆XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
5、测试:必须熟悉使用junit编写测试用例完成代码的自动测试。
6、管理:必须熟悉使用ant完成工程管理的常用任务,例如工程编译、生成javadoc、生成jar、版本控制、自动测试。
7、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
8、思想:必须掌握OOP的主要要求,这样使用Java开发的系统才能是真正的Java
系统。
9、规范:编写的代码必须