I’m learning Java right now but I’m wondering if there is a “hierarchy of tree” in learning Java. Let me explain by giving an example,
So, beginner level in Java should start:
Java for dummies, etc…
Intermediate level in Java should start:
Ant, JDBC, Hibernate, Swing, Eclipse, etc…
Advance level…
J2EE, etc..
Also, it would be nice if there is a document that shows the interconnection between the topics. For example, it would be preferred to learn JDBC first before Hibernate…
You could do it the way sun would like you to learn through the Java Certifications.

(source: oracle.com)