If you are completely new to programming, I would definitely recommend attending a programming course. If you are already familiar with basic programming skills, there are awful number of resources and books that will help you self learn at your own pace. In this sense, I would recommend you to pick up Head First Java and Head First JSP & Servlets.
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
I Agree that, there are lot of useful online resources, so that we can self learn it easily, but, its also true that, there are equal number of tutorials, which are very bad/teach bad practices, so what i feel is, if the person is really new to technology, its always best to attend an course, so that (s)he will be able to distinguish between bad and good resources..