Java – Important frameworks/tools to learn



a frequently used answer to the question "What is so special about Java?" is "The tools and frameworks". I guess this is correct. I am stunned when i see all the tools and frameworks which make your life as a developer much easier.

My Java skills are not perfect, but good average, and i am still working on it. I have begun to learn Ant for example and i don't want to miss it. It's awesome. The same with Hibernate. Now i ask myself what i should learn next. I want to gain experience for myself and especially my CV. Unfortunately there are so many of it. And everybody is talking about it, like Spring, Struts, JavaServer Faces, Maven, …

What is widely used in the real world? What tools besides Ant or Subversion/CVS are important? What framework is necessary to learn to be accepted as a "real Java programmer" and to get the interesting jobs? 😉

Best Solution

If we're talking marketability, then you ideally want to be the kind of developer who can be productive at any layer of a production app. So learn something about each layer.

  • MVC: Struts, Spring MVC.
  • Data Access: Hibernate, iBatis, JPA.
  • IOC: Spring (huuuuge for integrating large systems. If you can, learn the AOP principles that Spring is based on)
  • App Server: Tomcat, JBoss.
  • Testing: JUnit
  • Presentation: JSF, JSP.

Also, don't neglect the non-Java technologies you need to know:

  • SQL - because you will need to talk directly to the database
  • HTML
  • JQuery - never underestimate the importance of neat UI features. For most users, that's the only part of what you do that they understand.

If I had to choose one thing out of this list, I'd go for Spring. If choosing two, I'd take Spring and JQuery.

Related Question