Are you a well-versed Java coder, but not so practiced in the new 'dynamic' languages that run on the JVM? If so, I'd like to recommend a book that can help ease the transition into the dynamic world.
The book is called "Groovy for Domain-Specific Languages" by Packt. (It can be found here, don't miss the free chapter.) The book is really dual-purpose: It teaches Groovy from a Java-centric point of view, and it provides many best practices in DSL construction.
'DSL', in case you've been living in a cave the last several months, stands for "Domain Specific Language" or user-centric mini-language. There are several new books on the market or about to hit the market, it's a pretty hot topic in the dev-o-sphere.
To a Java coder, dynamic language features might seem a little odd. Meta-programming, Closures, and the invocation of methods that haven't yet been declared can take some getting used to. These strange new constructs appear to be here for real, at least if you are needing to write a DSL.
I'd call this book a 4-star-out-of-5. Your mileage may vary, but I think any Java coder looking into Groovy should give it a look.