How to Design Programs 2E
http://www.ccs.neu.edu/home/matthias/HtDP2e/
This book is much more than the intro to programming that it appears to be. It is a foundational approach for producing robust programs, regardless of your implementation language or level of experience.