I taught myself and I am now a pretty good programmer. I did both the Head First and Murach java books (and both
JSP books), and the Joshua Bloch's book for background in more advanced topics. I also have some other specialised books on java and xml and ajax books and while useful less useful than the others. I also uses the forums, particularl javaranch, which have been invaluable.