Having purchased and enjoyed 'How To Think Like A Programmer: Problem-solving for the Bewildered' by Paul Vickers I purchased this book thinking it was a different book completely which I think would be a fair assumption to make seeing as Amazon are offering an reduced price if you buy both books. What it actually is, in fact, is an extended version of 'Problem solving for the Bewildered'.
The book itself is great, I match all the critera listed for whom the book is intended. I have being trying to learn Java, as both part of a uni course and now as a personal mission in my own time, and although I understood the syntax etc I couldn't quite get a grasp on the reasoning behind some of the logic and why programs are contructed the way that they are. This book explains all.
I recommend that if you are new to programming you would be wise to read this book first and then you will have a greater understanding of the logic behind programming which makes it easier to learn and apply a language to it.
I don't recommend that you buy both books, you'll be wasting your money, just buy this one