Well learning Java Programming is an easy-to-follow but step-by-step process The main obstacle, when it comes to learn object-oriented programming is the volume of interdependent detail that needs to be learned before even the simplest program can be created.
If you can use a spiral approach, eliminate the extraneous details early on and stresses on object concepts , I hope that will provide a base and help you become an expert Java programmer.
And if you really want to master Java, it's not enough to know the code. You must begin to think like a programmer… avoid the traps and pitfalls of commonly misunderstood subtleties of the language and focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io