Java has one of the most extensive amounts of documentation out of all the languages I've worked with. I learned by just reading up on the syntax in a reference book and looking at a lot of code. Do plenty of recreational programming and check out Project Euler a lot. I've personally never taken a formal class for Java, but I'll be going into AP Comp Sci when school starts in a week, and it really doesn't teach all that much. It might be harder for people that haven't done another programming language, but it might just be better to start with a large, extensive language like Java.