According to me if you are seeking to be a really effective JEE Developer, these are the following skills I would recommend.
Technical
Overall, a really good JEE developer should be having a holistic knowledge of the whole application development process. The good old days, when candidates who just knew how to program Hello World in Java, were recruited, are gone.
Non Technical
Technical
- Knowledge of OOPs concepts.
- Basic knowledge of how JVM works and concepts like hashing.
- At least one framework( Struts or Spring).
- JSP and one scripting language(Javascript,/JQue
ry). I would advise you to get a good grip on HTML/XHTML fundamentals too. Clients nowadays are very particular about UI design. - EJB( knowledge of CORBA would be a bonus).
- At least one application server( Weblogic/Websphere/JBoss) you should be having some knowledge about.
- Web Services, considering many organizations are switching to it, as a better alternative to EJB's.
- One ORM tool like Hibernate.
- Knowledge of one configuration management tool like CVS/SVN/Mantis/Accurev.
- Knowledge of any build tool like ANT/Maven.
- Unit testing tools like JUnit.
- Good idea about open source tools available on the Net.
- Knowledge of design patterns.
Overall, a really good JEE developer should be having a holistic knowledge of the whole application development process. The good old days, when candidates who just knew how to program Hello World in Java, were recruited, are gone.
Non Technical
- Communication skills is a must, you will be interacting with clients, your managers, QA team, and effective communication will go a long way, especially in a networked environment.
- Good presentation skills, these would come in handy, when you seek to do a walk through with the client or explain a new tool to the team.