This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I have just passed SCJD and would like to get knowledge on J2EE as well. The question is which technology is "in" nowadays? I'd like to develop my e-shop and would like to use techniology which is not obsolete, at least not yet. There are too out there Struts, Spring, JSP, JSF, EJB, hybernate...
What book(s) would you recommend me to read?
Thanks a lot, Martin
[ December 15, 2008: Message edited by: Martin Zdarsky ] [ December 15, 2008: Message edited by: Martin Zdarsky ]
You probably won't be writing too many direct servlets or JSP pages in a job, but a lot of the J2EE technologies either use servlets directly (Spring MVC does I think) or require an understanding of them. JSP is less used these days, but a lot of the 'Java' exams you will take interviewing for Java positions will contain JSP questions, even though JSP isn't really Java. I just took such an exam Tuesday, and more than 10% of the questions were about JSP even though JSP wasn't on the job specification!
Spring and Hibernate aren't necesarily 'hot' the way they were a year or two; they are simply necessary background for any J2EE programmer who hopes to do it in the long term. Spring has a number of subprojects which are worth digging into.
Web servers you shoul know include Tomcat (absolutely required) and JBoss. Lot's of demand in my area for Websphere. Portal products seem popular, as are the SOA products from IBM (Websphere) and Oracle (formerly BEA Weblogic family).
On the bleeding edge of app server technology is the OSGI spec. Spring has released a couple new containers, most notably Spring dm Server, which seems to be an OSGI-compliant server. This is the bleeding edge in containers now I think.
Apart from that I think it's worthwhile learning a range of technologies outside of Java. One of my goals is to go over to the dark side this year - learn something about C# and some of the slicker .NET stuff (Silverlight, Linq, etc). Can't say I know enough about this stuff to give a useful opinion (perhaps Bear knows more). And I'll probably pick up and do several of the Head First books on C#, Rails, and PHP this year. Java is no longer the beginning and the end, one needs more tools in one's skillbox these days.