File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes Beyond Core Java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Beyond Core Java" Watch "Beyond Core Java" New topic

Beyond Core Java

Clint Smith

Joined: Sep 20, 2009
Posts: 2
Hi folks,

Whenever management hears that you know a little Java they automatically think you can build a complete web application. As you know, this is not really the case.

My question is, once I've mastered the basics of the Java language, what technologies should I focus on next to supplement this knowledge for building web apps?

JSP, JavaScript, CSS, Struts, JSF, Hybernate?...the list could go on forever.

I'd be interested to know what everyone's top 5 would be.

Thanks very much for your input.

Jose Campana
Ranch Hand

Joined: May 28, 2007
Posts: 339
Hey Clint !

it all depends in what kind of application the company you work for wishes to build,

But what I usually have found useful would be:

1. Servlet (most MVC framworks are based on this) and all JEE tech was built on top of this.
2. EJB 2.0, EJB 3.0
3. JPA or Entity Beans
4. JavaScript and Ajax
5. JSP (this I put at the end of the list, because is a Design concern mostly, so is CSS)

However, this is just my humble opinion.

David Newton

Joined: Sep 29, 2008
Posts: 12617

It also depends on which aspects of app development you'll be involved in, the technologies you'll be using, etc.

If you're doing a lot of client-side/UI work, JavaScript and CSS are critical--not enough people understand JavaScript properly. Then I'd pick a JavaScript library to focus on--I'd shoot for JQuery or Prototype/Scriptaculous, but if you're feeling ambitious you could take on a full stack like YUI.

On the server side it's important to understand the underlying mechanisms, so I'd echo the servlets suggestion. Picking a framework is kind of a crap shoot; if you're learning for the sake of learning I'd say mess around with one action-oriented framework (Spring MVC, Struts 2, Stripes, etc.) and a component-oriented one *maybe* like Wicket (I'd avoid JSF, but that's just me-IMO using it well requires Seam). If you're learning for the sake of getting something done and/or building up company infrastructure, pick a popular one or the one the company already uses.

Personally I'd avoid EJB when starting out unless you know you'll be running in a full app server. At least with EJB3 the major pain points are gone.

I'd learn Spring, but it's not strictly necessary--it just makes a lot of things so much easier. But it's lower on the list, IMO, because it's an additional layer of complexity, even though it can be used in very small, unobtrusive ways at the beginning. It can easily be bolted on to an application later.

I'd learn a unit testing framework, JUnit and TestNG being the major players (as far as I know). I prefer TestNG, but JUnit is more popular.

I'd also scope out many of the popular ancillary libraries, like the Apache Commons libraries (in particular, commons-lang, commons-collections, and commons-io). There are a couple of other great collections libraries that IMO are actually better (Google's and Glazed Lists come to mind) that are handy to have in the toolkit. These APIs make programming in Java noticeably less painful (and that's saying something).

One thing about Java is that while Java-the-language is (relatively) small, Java-the-ecosystem is *huge*, dare I say daunting. It's easy to get lost and/or overwhelmed. Pick something to focus on, if something else wanders into the picture, make a note of it, move on, and come back to it later. Getting lost in a maze of twisty little passages, all alike, is common, and frustrating, so take it a piece at a time.
I agree. Here's the link:
subject: Beyond Core Java
jQuery in Action, 3rd edition