Myself learned alot by reading Stackoverflow solutions to my problems. You can find there fully working examples, some of them fully commented so you can easily learn what a specified line of code means. You should really start with Java fundamentals (simple algorithms, collections...