0

I started developing Java EE about 2 years ago. I have learned how to use some tools and frameworks like ejb3, spring, hibernate, and ...

But to be honest, I am more like an ocean with an inch depth. Sometimes I feel I don't know anything basic about Java EE.

For example, I find out know how to define EJB or spring beans, but I really don't know what exactly they are, and when I should use them, or I don't even know the structure of an application, workspaces, where I should put my libs in both development and deployment environments, what are build paths and dependencies of projects together.

In fact, I have just used ready-to-use environment made by senior developers, and just put some features to them. So, I decided to forget my university degree, work experience, all frameworks and techniques I know and everything else, and start learning basics just like a novice.

Now I ask all you most experienced guys, where should I start? What are the steps I should pass one by one?

I don't want to learn more frameworks, core-programming, DS, DB. I want to learn what I have learnt before in more details and depth.

Arjan Tijms
  • 37,782
  • 12
  • 108
  • 140
Alex Hero
  • 57
  • 1
  • 4
  • 2
    You an start with the Oracle tutorial http://docs.oracle.com/javaee/6/tutorial/doc/ – AurA Sep 05 '13 at 05:37
  • 2
    The first thing to know is that it has been called JavaEE (JEE) for several years now –  Sep 05 '13 at 05:51
  • Solutions are easier to understand if you understand the problem they're trying to solve. As to the EJB and Spring, see also http://stackoverflow.com/questions/18369356/when-is-it-necessary-or-convenient-to-use-springjsf2-or-ejb3jsf2-or-all-of-the/18379228#18379228 In the future try to ask a bit more specific question, otherwise this is food for a discussion forum / chatbox. – BalusC Sep 05 '13 at 18:02
  • There are several ways to learn Java EE. Start with [Java EE tutorial](http://docs.oracle.com/javaee/7/tutorial/doc/). You can also start with a self-paced Java EE 6 hands-on lab at [http://bit.ly/javaee6-glassfish-hol]. A Java EE 7 version of the same is at [http://glassfish.org/hol]. The best approach would be to build a typical web application and identify what Java EE components can be used to serve the needs. You can also look at a collection of samples at [https://github.com/arun-gupta/javaee7-samples]. Feel free to reach out directly if you have any specific questions. – Arun Gupta Sep 05 '13 at 21:02

1 Answers1

2

Many learn in what I think of as a helix. You start by skimming the surface and gradually dig deeper as you enquire into details. And very often we have a job to do in the meanwhile, so we do some things without understanding a lot of detail - it's a black-box mentality, and given how much there is to learn, working in abstractions is probably the only way to cope. So I would not be unduly concerned that you don't understand everything right now. The positive thing is that you want to learn the "why" of what you're doing.

I'd caution not to discard everything you know, rather use it to illuminate what you are learning. When trying to understand EJBs, you may discover that they do, say, transactions. Now unless you have some previous knowledge of transaction, commiting and rolling back, that will mean little. But if you've previously studied transactions then you can understand what EJBs are doing concerning transactions.

As to a curriculum for study, that's too big a topic for this answer. I'd make two basic suggestions: First distinguish between "house style" and the basic concepts. Why certain JARs are put in certain locations is a "house style" there are probably other places that would work too, but the senior guys picked this one, probably for good reason, and that reason may be interesting. More important intially is what's in those JARs. Get a clear idea of what pieces of your application are intrinsic to Java EE, what is your "house" framework and libraries and what is the true Business Logic. Identify the generic Java EE, or Spring pieces: Servlets, JPA Objects or whatever and study one. Understand what each piece doing for you.

My final recommendation, find some time to build a little application of your own using just the raw Spring or Java EE framework. Work end-to-end, from Screen to DB one layer at a time, (or from DB to Screen, pick a direction.)

Arjan Tijms
  • 37,782
  • 12
  • 108
  • 140
djna
  • 54,992
  • 14
  • 74
  • 117