Code School teaches web technologies in the comfort of your browser with video lessons, coding challenges, and screencasts.
A recurring prejudice in the forums where the cool kids hang out (Hacker News, Reddit, etc.) is against Java, the language. The oft-repeated sentiments are that Java is verbose and fading in popularity. While I accept the first descriptor, I can find little evidence to support the latter.
Java certainly can be verbose. Until a year and a half ago, when Java 7 came out, a simple task such as writing to a file required a lengthy multi-step process, laden with "ceremony." In response to this pervasive wordiness, there sprang up several scripting languages, which were purpose-designed to spare developers from long syntactical passages to communicate a simple action: NetRexx, Groovy, Scala, and others. I'm a fan of Groovy and use it in my own projects, but mostly for the additional capabilities it provides (optional typing, closures, method injection, metaprogramming, and so on) rather than its concision.