Are you looking for a hands-on approach to learning how to program? This book uses a mixture of Java and Alice3, a 3D programming environment, to bring abstract fundamental programming concepts to life.
Lots of typos, not very clear as far what the heck you're doing, but still a fun experience all the way through. I now understand how badly I would do as any sort of programmer, thanks to this book!