This question I am asking because I couldn't find any source which gives complete overview of java development. I just want to know where java technology currently in market & what is preferable for development !

Java always remain top programming language for development point of view. However, java is combo of, j2ee, j2me, jsp, jsf, spring, other frameworks, ui components, jndi, networking tools and various other "J" are there !

However, learning java is definitely dependent on the development requirement, but still, to be a well-experienced java developer, what is the organised way of learning java? What is preferable in current technology ? and what is deprecated, currently ?

  • 3
    Java is very large. Any "complete overview" isn't. – user1249 Jan 8 '11 at 12:45
  • To answer this question you need to tell you us a bit about your backourd? Are you new to programming, OOP, etc – Lukasz Madon Jun 20 '11 at 19:12
  • Something over ten years ago, I bought O'Reilly's Java in a Nutshell - all four volumes. I suspect Java hasn't become simpler and more compact since. – David Thornley Jun 20 '11 at 19:59
  • Java is an object oriented language. So if you learn OOP, you'll quickly grasp java: Take the "Master Object Oriented Design" course on eliminatecodefear.com - One of the best resources for learning practical object oriented design and development with HW assignments – Tazo Man Feb 8 '16 at 4:33

Before you chose your framework/library, I suggest you start by simply learning the language and starting to code simple apps: this book is very readable and full of real-life scenarios, and might be a good starting point.

Now, it seems that you are interested in building applications for the web so, once you get to the servlets, try giving yourself some simple tasks (porting to Java an existing php-based application of yours might be one) in order to find your ideal approach - Java can be a really flexible language, although many Java developers avoid exploring its full potential.

The framework you should choose really depends on how you prefer to organize your code independently from any framework. For instance, if you find yourself using Java as a pure OO language and you are comfortable with MVC approaches you might want to consider Spring (pushing it just because I like it).

Anyway, for now, don't worry about the jAlphabet jSoup: browsing for technologies you'll want to have a concrete idea of what they are for; to obtain it, you'll have to start practically using Java.


Java is a big world and there are many people that develop on one side and have never seen other parts. The parts of the technology are used all over the place. If you are learning it, just start with the basics first. Then decide what area you might want to focus on (Web Apps, Gaming, Mobile Apps, Business Apps that access databases, etc.) One you have a project or task you are working, then start learning details about the Java pieces that apply to your situation.


The most organized way to learn Java is to start with the basics, they are pretty much the mortar that holds the advanced applications. Start with simple applications then move on to advanced ones, in that order. I had a hard time learning C++ because i hurriedly skipped over the basics in a rush to build the cool stuff that my friends where working on. Take it easy and remember that one chunk understood is better than a bunch of haphazard and minced pieces


Its important to distinguish between Java, the language, and J2SE/J2EE the frameworks. Learn java by using it, its tiny, and will literally take a couple of days.

You don't need to 'learn' the framework (The thousands of classes and methods and what they do)

Noone could possibly learn the framework in its entirety, even after many years of using it. The real skill is is knowing what sort of things might be in there, how to find them, and how to use them.

Many would be programmers miss this distinction, and cannot understand how we possibly remember all this stuff. The answer is we don't.