Learning how to write code in Java has never been simple. Hereto a short list of recommended movies you better watch before you start learning Java.
Learning OOP is one of the biggest obstacles. Matrix is the best movie to start with. The program running on the machines servers creates a sophisticated virtual reality. When Neo understands the program that creates the virtual reality he starts calling various methods on various objects. When agent Smith fires with his gun Neo invokes the setSpeed() function on the very specific object that represents the bullet. Neo pass over the value 0 and the bullet stops.
Learning about objects serialization is fairly simple as soon as you understand that Start Track beam me up scotty mechanism was implemented in Java.
Learning how to develop a TCP/IP client server application can be very simple as soon as you understand that the star gates implementation in Stargate Atlantis, Stargate SG-1 and Stargate Universe is based on using plain simple Socket objects. Everything that goes into one socket goes out from the other connected one and vice verso.
Learning design patterns has started in the 16th century. Architectural construction problems eventually lead to patterns we find all over.